datatables之jQuery DataTable 过滤之如此困惑

lexus 阅读:56 2024-02-27 23:08:18 评论:0

我是在 https://datatables.net/ 上找到的 jQuery dataTables 插件的新手

我正在尝试为表实现自定义过滤器:

基本上,当我单击一个按钮时,自定义过滤功能将测试所有行的列 #1(数值)的值,如果列中的值 < 50 行,则该行保留,否则该行被隐藏.

这个概念应该很简单,但是我似乎找不到正确的 API 使用方法:

  • column.filter() 返回一个列值数组
  • column.search() 只能接受文本数据(不是函数)

  • 有什么API可以实现这个效果?

    有没有类似下面的内容?

    var api = $('#table').DataTable(); 
     
    api.column(1).data().somefilterfunction(function (val, ind) { 
        return parseFloat(val) < 50; 
    }).draw(); 
    

    请您参考如下方法:

    你在文档中看到过这篇文章-> https://datatables.net/examples/plug-ins/range_filtering.html ??

    您可以即时创建自定义过滤功能,由按钮触发:

    <button id="filter">filter < 50</button> 
    

    脚本 :

    $("#filter").click(function() { 
        $.fn.dataTable.ext.search.push( 
            function( settings, data, dataIndex ) { 
                return parseFloat(data[0])<50 
                    ? true 
                    : false 
            }      
        ); 
        table.draw(); 
        $.fn.dataTable.ext.search.pop(); 
    }); 
    

    演示 -> http://jsfiddle.net/dpwgqs2o/

    请注意,过滤器是在单击处理程序本身内部创建的,并在绘制表格后立即再次删除。这使得过滤器是临时的,即当用户单击列标题时,过滤器被清除。如果您想要永久过滤器,请将过滤器设为全局过滤器,不要将其删除。


    标签:jquery
    声明

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    关注我们

    一个IT知识分享的公众号