简体   繁体   English

数据表 YADCF 服务器端过滤器类型

[英]Datatable YADCF server side filter type

I am using yadcf column filters to a server side DataTables.js request.我正在对服务器端 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
        },
     ]

Request give me请求给我

columns[X][search][value]

columns[X][search][name] like this but I want to get column yadcf column attribute filter_type . columns[X][search][name]像这样,但我想获得列 yadcf 列属性 filter_type 。

This data help to search for contains search or equals search此数据有助于搜索包含搜索或等于搜索

How is it get?它是如何得到的? or change scripts.或更改脚本。

Version 0.9.3版本 0.9.3

I send mail to Daniel Reznick (yadcf writer)我发送邮件给 Daniel Reznick(yadcf 作家)

Daniel Reznick answers :丹尼尔·雷兹尼克回答:

I think you could achieve it by using some datatables "pre XHR" event / hook in which you can modify the XHR request before its being sent to server, but IMO since this is being initialized only once (when you write your JS code) I guess you can do it "hard coded" on server我认为您可以通过使用一些数据表“pre XHR”事件/钩子来实现它,您可以在其中修改 XHR 请求,然后再将其发送到服务器,但 IMO 因为这仅被初始化一次(当您编写 JS 代码时)我猜你可以在服务器上“硬编码”

My Code like this我的代码是这样的

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" },

] ]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM