【问题标题】:yadcf_data not populating select filteryadcf_data 未填充选择过滤器
【发布时间】:2016-02-10 14:22:01
【问题描述】:

我正在使用服务器端处理并尝试填充选择过滤器。 我正在使用自定义数据表fnServerData 函数(elastic-datatables 的修改版本)来使用弹性搜索。我的fnCallback 函数如下所示:

fnCallback({
    'draw': parseInt(draw),
    'recordsTotal': response.hits.total,
    'recordsFiltered': response.hits.total,
    'data': dataSet,
    'yadcf_data_2': [{
        value: "Trident",
        label: "Trident Eng'"
    }, {
        value: "Tasman",
        label: "Tasman Eng'"
    }]
});

现在我只是使用从您的示例响应中获取的虚拟值(也尝试了字符串列表而不是值/标签对象的更简单选项),但选择过滤器仍然有 0 值可供选择(列索引是正确的)。 知道自定义回调是如何搞砸的吗?

不用我修改就可以看到整个功能here

数据表设置:

var table = $('#datatable').DataTable({
        "serverSide": true,
        "processing": true,
        "bStateSave": true,
        "responsive": true,
        "deferRender": true,
        "scrollX": true,
        "sDom": 'lrtip',
        "lengthMenu": [
            [10, 25, 50, 100],
            [10, 25, 50, 100]
        ],
        "pageLength": 10,
        "order": [
            [1, "asc"]
        ],
        "columns": [...],
        'fnServerData': $.fn.dataTable.elastic_datatables({
            index: index,
            type: type,
            client: client
        })
    });

yadcf.init(table, [{
        column_number: 0,
        filter_type: "range_date",
        datepicker_type: 'bootstrap-datetimepicker',
        filter_plugin_options: datetimepickerOptions
    }, {
        column_number: 1,
        filter_type: "text",
        text_data_delimiter: ","
    }, {
        column_number: 2,
        filter_default_label: "Select Filter"
    }, {
        column_number: 3,
        filter_type: "text",
        text_data_delimiter: ","
    }]);

【问题讨论】:

  • yadcf 可以监听数据表events,所以 yadcf_data_XYZ 值仅在xhr 事件中处理,我不知道如何监听 fnCallback,如果有办法让我知道。
  • 我刚刚使用 .on('xhr.dt', fun...) 检查了 xhr 事件,并且 json 对象确实包含 yadcf_data_2 以及我提供给回调的所有其他信息。不过还是什么都没有。
  • 您应该在 yadcf 中调试 xhr.dt 事件 kistener 并尝试找出那里发生的事情(可能由于某种原因它被覆盖)请参阅此处的代码 github.com/vedmack/yadcf/blob/master/…
  • isDOMSource(oTable) 在我的情况下是正确的。不知道这意味着什么,但我的表肯定是在初始 dom 中。
  • 这意味着我没有在听 xhr 事件,因为缺少 serverSide: true。将看到如何检测你的情况。请发布您的数据表设置

标签: yadcf


【解决方案1】:

0.9.0.beta.1 中添加了对此的支持,所以它现在应该可以工作了

【讨论】:

  • 谢谢。它可以工作,但是从 0.8.9 版开始,yadcf 在启动时给了我一个错误,所以我使用的是旧版本(0.8.8.beta5)。我截图了。不确定它会破坏什么,但例如分页不起作用。 Screenshot
  • 请在 github 上使用相关数据打开一个问题(截图/行代码/示例如果可能/dt 设置/yadcf 设置)
猜你喜欢
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多