数据表日期范围过滤器不起作用

Datatables Date Range Filters not working

本文关键字:不起作用 过滤器 范围 日期 数据表      更新时间:2023-09-26

我试图添加一个服务器端数据表实现与日期范围过滤器。过滤器不过滤任何数据。我不知道哪里坏了。我需要你的帮助来找出我错在哪里。

是脚本。

<>之前$(文档)时函数(){使用严格的;var dataTable = $('#employee-grid')。数据表({"处理":没错,"服务端":没错,"sScrollY":"300 px","iDisplayLength":25日"bJQueryUI":没错,"bStateSave":没错,"ajax":{Url: "employee-grid-data.php",//json数据源类型:"post",//方法,默认为getError: function(){//错误处理$ (" .employee-grid-error ") . html (" ");$ (" # employee-grid")。append('在服务器中没有找到数据');$ (" # employee-grid_processing ") . css("显示","没有一个");}}," tableTools ": {:"sSwfPath swf/copy_csv_xls_pdf.swf","按钮":[{"sExtends":"集合","sButtonText":"出口","按钮":["csv","xls","pdf","打印"]}]}});函数myCustomFilterFunction(filterVal, columnVal) {var发现;if (columnVal === ") {返回true;}If (found !== -1) {返回true;}返回错误;}var oTable = $('#employee-grid').dataTable().yadcf([{]column_number: 0,filter_container_id:"external_filter_container_0",filter_type:"auto_complete",text_data_delimiter:"、"}, {column_number: 1、filter_container_id:"external_filter_container_1",filter_type:"auto_complete",text_data_delimiter:"、"}, {column_number: 2filter_container_id:"external_filter_container_2",filter_type:"auto_complete",text_data_delimiter:"、"}, {column_number: 3,filter_container_id:"external_filter_container_3",filter_type:"range_date",date_format:"mm/dd/yyyy"}, {column_number: 4filter_container_id:"external_filter_container_4",数据:[{值:' 1 ',标签:"是的:)"}, {价值:"0",标签:'不'}),filter_default_label: "选择是/否"}, {externally_triggered:真});});之前

和这里是Html

<div class="container">
          <div id="externaly_triggered_wrapper" class="">
            <div>
                <span>First name:</span>
                <span id="external_filter_container_0"></span>
            </div>
            <div>
                <span>Last name:</span>
                <span id="external_filter_container_1"></span>
            </div>
            <div>
                <span>Email:</span>
                <span id="external_filter_container_2"></span>
            </div>
            <div>
                <span>Date Filter:</span>
                <span id="external_filter_container_3"></span>
            </div>
            <div>
                <span>Newsletter:</span>
                <span id="external_filter_container_4"></span>
            </div>
          </div>
          <div id="externaly_triggered_wrapper-controls">
            <div>
                <input type="button" onclick="yadcf.exFilterExternallyTriggered(oTable);" value="Filter" class="some_btn general_btn">
                <input type="button" onclick="yadcf.exResetAllFilters(oTable);" value="Reset" class="some_btn general_btn">
            </div>
          </div>    
        <div class="container" style="width:760px !important;">
            <table id="employee-grid"  cellpadding="0" cellspacing="0" border="0" class="display" width="100%">
                    <thead>
                        <tr>
                            <th>First Name</th>
                            <th>Last name</th>
                            <th>Email</th>
                            <th>Date added</th>
                            <th class="ui-state-default" role="columnheader" tabindex="0" aria-controls="example1" rowspan="1" colspan="1" aria-label="Yes / No: activate to sort column ascending" style="width: 235px;">
                                <div class="DataTables_sort_wrapper" style="display: inline-block;">Yes / No<span class="DataTables_sort_icon css_right ui-icon ui-icon-carat-2-n-s"></span></div>
                                <div id="yadcf-filter-wrapper--example1-2" class="yadcf-filter-wrapper">
                                    <select id="yadcf-filter--example1-2" class="yadcf-filter " onchange="yadcf.doFilter(this, '-example1', 2, 'contains');" onkeydown="yadcf.preventDefaultForEnter(event);" onmousedown="yadcf.stopPropagation(event);" onclick="yadcf.stopPropagation(event);">
                                        <option value="-1">Select Yes/No</option>
                                        <option value="Yes">Yessss :)</option>
                                        <option value="No">Noooo :(</option>
                                    </select>
                                    <button type="button" id="yadcf-filter--example1-2-reset" onmousedown="yadcf.stopPropagation(event);" onclick="yadcf.stopPropagation(event);yadcf.doFilter('clear', '-example1', 2); return false;" class="yadcf-filter-reset-button ">x</button>
                                </div>
                            </th>
                        </tr>
                    </thead>
            </table>
        </div>

在服务器端,您获得的range_date的搜索文本中有一个分隔符,例如:

01/05/2017-yadcf_delim-20/05/2017

所以你必须用这样的方式分割它:

searchText.Split(new string[] { "-yadcf_delim-" }, StringSplitOptions.None)