dataTables HTML5数据搜索单元格属性不起作用

时间:2016-05-08 03:12:34

标签: html5 datatables

基本上我正在尝试做类似这个例子的事情

https://datatables.net/examples/advanced_init/html5-data-attributes.html

我的代码在

下面
var dTable = $('#ajaxresults').DataTable({
    "order": [[1, "desc" ]],
    "sPaginationType": "full_numbers",
    "ajax": "/users.json",
    createdRow: function(row, data, index) {
        if(data[6]=="Special") {
            $(row).find('td').eq(0).attr("data-search", "Special");
        }
    }
});

然而,一旦数据集被加载到页面上并且我正在尝试搜索特别没有返回但是如果我在开发工具中查看它我可以清楚地看到数据搜索属性被设置为列,从我的阅读我认为我在初始化后添加了数据搜索列属性,这就是为什么搜索不起作用?但我已经搜索了整个文档,我没有看到其他方法来实现这个有没有人对此有任何想法?

P.S。我忘了告诉“特殊”这个词不会出现在任何刚刚作为数据搜索属性添加到某些用户的列中,所以它不是真的可见但应该可以通过数据搜索属性进行搜索。

1 个答案:

答案 0 :(得分:10)

如果列中的所有单元格在初始化表时都具有data-*属性,则HTML5 data-*属性将起作用。在每行之后注入data-search 并插入其所有单元格 - 这就是为什么data-search在这种情况下不起作用。

您可以使用渲染方法。

columnDefs : [
  { targets: [0], 
    render: function ( data, type, full, meta ) {
       if (type === 'filter') {
          return full[6] == "Special" ? "Special" : data
       } else {
          return data
       }
    }
  }
]

这将做同样的事情,返回" Special"对于col#0,当用户在搜索框中输入时,如果col#6 ==" Special"。