5

我正在使用具有自定义服务器端过滤、搜索和排序的数据表...为什么 columnFilter() 返回错误“TypeError: $(...).DataTable(...).columnFilter is not a function”

这是我使用 columnFilter 的方式:

var table = $('#item-table').DataTable({
    ajax: '<?= site_url("price_update"); ?>',
    serverSide: true,
    processing: true,
    paging: true
}).columnFilter();

我没有“.columnFilter()”的代码可以正常工作。

4

1 回答 1

11

使用时必须使用“ oldschool”dataTable()构造函数columnFilter。概念证明:

不起作用,产生与问题相同的错误:
columnFilter with 1.10.x 实例化为DataTable()-> http://jsfiddle.net/87kam74q/

作品
使用 1.10.x 实例化的 columnFilter dataTable()-> http://jsfiddle.net/LvL4vm8e /

原因是,columnFilter假设它正在使用“旧”jQuery 对象,而不是新的 API 对象。不过,您仍然可以通过该.api()方法访问新的 API,例如:

var table = $('#example').dataTable();
table.api().search('test').draw();

如果你不想通过table.api()使用新的AP,并坚持使用DataTable(),你可以通过放弃链接来达到同样的效果:

var table = $('#example').DataTable();
$('#example').dataTable().columnFilter({
    sPlaceHolder : 'head:before',
    aoColumns: [ { type: "text"},
                 { type: "text"},
                 { type: "text"},
                 { type: "text"},
                 { type: "text"}
               ] 
});

小提琴-> http://jsfiddle.net/qbr01oya/。这不会导致 dataTable 被初始化两次(dataTables 检查)。

于 2014-10-08T10:23:08.747 回答