【问题标题】:How to Source YADCF Select Filter Options with Response Array如何使用响应数组获取 YADCF 选择过滤器选项
【发布时间】:2019-04-30 00:21:37
【问题描述】:

这是一个 JSFiddle:https://jsfiddle.net/5sgc03my/。我有一个带有几个 YADCF 过滤器的 DataTable:

var oTable = $('#example').DataTable({
    "serverSide": true,
    "ajax": {"url": "/platform/activities/?format=datatables",
         "dataSrc": function(json){
           yadcf_data_1 = json.options.activity_type
           console.log(yadcf_data_1)
           return json.data;
          }
        },
});
console.log(yadcf_data_1)

yadcf.init(oTable,
      [
        {
          column_number : 0,
          filter_type: "range_date",
        },
        {
          column_number : 1,
          filter_type: "select",
          select_type: "select2",
        },

/platform/activities/?format=datatables 返回此响应:

{"recordsTotal":23286,"recordsFiltered":23286,
"data":[{"id":104,"activity_type":"Option 1",}],
"draw":1,
"options":{"activity_type":[{"label":"Option 1","value":1},
                            {"label":"Option 2","value":2},]}}

目前,activity_type 列(第 1 列)的过滤器仅返回 Option 1,因为这就是表中可用的全部内容。因此,我想将过滤器指向 Ajax 响应的 options 部分中的 activity_type 数组。我知道可以为每个过滤器设置 data 选项,但我不确定如何将其指向 key:value 数组。当我将console.log(yadcf_data_2); 放在DataTable 构造之外时,它只会打印undefined。这是在 ajax 函数中的控制台调用之前打印的。

如何将 YADCF 绑定到 activity_type 数组?

【问题讨论】:

    标签: javascript jquery datatables django-rest-framework yadcf


    【解决方案1】:

    看看yadcf showcase server page,你应该把yadcf_data_0 / yadcf_data_1recordsTotal/data一起发送出去

    您也可以在 yadcf 代码中调试 xhr event 以查看发生了什么

    //如果你想用值填充你的 select / auto_complete 过滤器

    //您必须在当前的 JSON 中添加以下属性 yadcf_data_0 / yadcf_data_1 / etc'

    //其中每个属性都包含一个字符串列表

    //例如:

    //"yadcf_data_0":["KHTML","Webkit","Trident","Misc","其他浏览器","Tasman","Presto","Gecko"],

    //"yadcf_data_1":["Nintendo DS 浏览器",

    【讨论】:

    • 首先,感谢您制作了出色的产品。因此,对于 Django,我使用了一个帮助程序库,它将 API (DRF) 转换为 DataTables 所需的格式。该库提供options 属性以将额外数据传递给服务器。换句话说,有没有办法将我的回复中的options 部分转换为可以输入 yadcf_data_0 等的内容?
    • 如果没有调试测试页面的链接就无法判断,我建议你在我告诉你的那个 xhr 代码中设置一个断点,看看那里可以做什么
    • jsfiddle.net/1xsfqgpu/10 - 这不完全有效,我无法弄清楚为什么数据没有流入表格,但这是一个开始。
    • 好的,当你有一个可行的例子时告诉我,我会看看
    • 好吧 - 这是一个工作示例:jsfiddle.net/5sgc03my。过滤器当前正在从表本身中提取,我想知道如何从 activity_type 字典列表中提取。我的想法是为我要过滤的每个字段包含一个字典列表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2017-05-14
    • 2016-10-31
    • 2020-07-21
    • 2011-10-27
    • 2015-06-24
    • 2021-04-02
    相关资源
    最近更新 更多