1

好吧,我知道使用表单执行此操作的代码以及构建此表单的 html 代码

但我需要的是通过具有预定义的 max - min vars 的按钮来启动此功能。

有什么想法/建议吗?

4

2 回答 2

4

$.fn.dataTableExt.afnFiltering var 是一个过滤函数数组。它们在您调用方法 fnDraw() 或初始化程序 dataTable() 时执行。

如果要在单击按钮时执行,则必须执行以下操作:

  • 为调用 fnDraw() 方法的按钮的“单击”操作创建一个侦听器
  • 创建您自己的过滤函数,如示例(使用您的预定义值)并将其推送到 $.fn.dataTableExt.afnFiltering 数组中。

例如:

$(document).ready(function(){
  /* Initialise datatables */
  var oTable = $('#example').dataTable();

  $("#mybutton").click(function() {
    //Creating of our own filtering function
    $.fn.dataTableExt.afnFiltering.push(
        function(oSettings, aData, iDataIndex) {
           //Only shows columns with a Engine between 2 and 5
           var engineColumn = parseInt(aData[3]);
           if (engineColumn >= 2 && engineColumn <= 5)
               return true;
           return false;
        }

    );
    //Update table
     oTable.fnDraw();
     //Deleting the filtering function if we need the original table later.
    $.fn.dataTableExt.afnFiltering.pop();
  });

});

您可以在此链接中查阅完整的功能示例:示例

我希望它对我的英语有用和抱歉。

编辑:我对我原来的回答做了一些改变,因为我做了一些错误的假设。我的道歉。

于 2013-09-23T11:52:04.450 回答
3

看起来 DataTable 的 API 已修改,当我更改时,您的示例运行正常

$.fn.dataTableExt.afnFiltering.push(...

$.fn.DataTable.ext.search.push(...

和 pop() 类似;

于 2014-09-10T14:54:24.947 回答