当前位置: 首页 > 知识库问答 >
问题:

Datatables日期范围筛选器不工作

胡安怡
2023-03-14

我正在尝试添加一个带有日期范围筛选器的服务器端datatable实现。筛选器不筛选任何数据。我不知道它坏在哪里。需要你帮我弄清楚我错在哪里。

这是剧本。


    $(document).ready(function() {
                    'use strict';
                    var dataTable = $('#employee-grid').DataTable({
                        "processing": true,
                        "serverSide": true,
                        "sScrollY": "300px",
                        "iDisplayLength": 25,
                        "bJQueryUI": true,
                        "bStateSave": true,
                        "ajax": {
                            url: "employee-grid-data.php", // json datasource
                            type: "post", // method  , by default get
                            error: function() { // error handling
                                $(".employee-grid-error").html("");
                                $("#employee-grid").append('No data found in the server');
                                $("#employee-grid_processing").css("display", "none");

                            }
                        },
                        "tableTools": {
                            "sSwfPath": "swf/copy_csv_xls_pdf.swf",
                            "aButtons": [

                                {
                                    "sExtends": "collection",
                                    "sButtonText": "Export",
                                    "aButtons": ["csv", "xls", "pdf", "print"]
                                }
                            ]
                        }
                    });
                    function myCustomFilterFunction(filterVal, columnVal) {
                        var found;
                        if (columnVal === '') {
                            return true;
                        }


                        if (found !== -1) {
                            return true;
                        }
                        return false;
                    }
                    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: 2,
                        filter_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: 4,
                        filter_container_id: 'external_filter_container_4',
                        data: [{
                            value: '1',
                            label: 'Yessss :)'
                        }, {
                            value: '0',
                            label: 'Noooo :('
                        }],
                        filter_default_label: "Select Yes/No"
                    }], {
                        externally_triggered: true
                    });






                });

这是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>

共有1个答案

惠诚
2023-03-14

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

01/05/2017-YADCF_DELIM-20/05/2017

因此您必须使用以下方法对其进行拆分:

searchText.Split(new string[] { "-yadcf_delim-" }, StringSplitOptions.None)
 类似资料:
  • 我现在有一只熊猫。数据帧,它有一个和一组值。 我想排除给定

  • 所有人。这是一个带有elasitcsearch文档url的简单测试代码

  • 我试图构造一个ElasticSearch查询,但没有得到预期的结果。任何帮助都将不胜感激! 映射详细信息: null null 目前,每个嵌套的轮班文档都包含一个嵌套的calendarBlock文档,其中包含开始和结束日期时间字段,以及一个可以注册该轮班的最大志愿者人数字段。 查询 我试图构造的查询是经过筛选的查询。从Web上的窗体传入查询字符串。然后,我需要以编程方式将至少三个筛选器附加到这个查

  • 我使用的是jquery数据表。我在做日期范围筛选。当我选择“最小日期”和“最大日期”时,结果是数据表上没有筛选数据。我用了剧本 null null null null 日期格式为YYYY-MM-DD。每次我用日期范围搜索时,结果不会出现在数据表中。请帮帮我,我哪里做错了。谢谢。

  • 我需要使用过滤器从elasticsearch获得结果(日期范围) 这是我的疑问, 运行此查询时,我收到一个错误“no[query]registered for[filtered]”。我遵循elasticsearch页面上过滤查询文档中给出的格式。 https://www.elastic.co/guide/en/elasticsearch/reference/1.4/_executing_filte

  • 我试图在表中使用日期选取器添加和删除行。默认情况下,日期选取器不起作用。但是我点击了添加行按钮,它已经工作了。我找不到解决方案。 请参考小提琴位置。