首页 > 解决方案 > 数据表 YADCF 服务器端过滤器类型

问题描述

我正在对服务器端 DataTables.js 请求使用 yadcf 列过滤器。

 yadcf.init(table, [
       {
                    column_number: 0,
                    filter_type: "text",
                    filter_default_label: "Search",
                    filter_reset_button_text: false
        },
        {
                    column_number: 1,
                    filter_type: "select",
                    filter_reset_button_text: false
        },
     ]

请求给我

columns[X][search][value]

columns[X][search][name]像这样,但我想获得列 yadcf 列属性 filter_type 。

此数据有助于搜索包含搜索或等于搜索

它是如何得到的?或更改脚本。

版本 0.9.3

标签: datatableserver-sideyadcf

解决方案


我发送邮件给 Daniel Reznick(yadcf 作家)

丹尼尔·雷兹尼克回答:

我认为您可以通过使用一些数据表“pre XHR”事件/挂钩来实现它,您可以在其中修改 XHR 请求,然后再将其发送到服务器,但是 IMO 因为它只被初始化一次(当您编写 JS 代码时)我猜你可以在服务器上“硬编码”

我的代码是这样的

var table = $("#datalist")
            .on('preXhr.dt', function (e, settings, data) {
                var yadcf = [];
                $('.yadcf-filter').each(function (data) {
                    input = $(this)
                    var col = {
                        "type": input.attr('type'),
                        "filter_match_mode": input.attr('filter_match_mode'),
                        "column_number": input.attr('id').replace('yadcf-filter--datalist-', '')  
                    }
                    yadcf.push(col);
                });
                data.yadcf = yadcf;
            })
          .DataTable({
            "ajax": {
                "url": "/url",
                "type": "POST",
                "datatype": "json"
            },




yadcf.init(table, [

            { column_number: 1, filter_type: "text", filter_default_label: "Contains Search", filter_reset_button_text: false, filter_delay: 500, filter_match_mode:"contains"},
            { column_number: 2, filter_type: "text", filter_default_label: "Exact Search", filter_reset_button_text: false, filter_delay: 500, filter_match_mode: "exact" },
            { column_number: 3, filter_type: "text", filter_default_label: "Starts With Search", filter_reset_button_text: false, filter_delay: 500, filter_match_mode: "startsWith" },

]


推荐阅读