1

フォームでそれを行うためのコードと、このフォームを作成するための HTML コードを知っています。

しかし、私が必要とするのは、事前に定義された最大 - 最小変数を持つボタンを介してこの関数を開始することです。

アイデア/提案はありますか?

4

2 に答える 2

4

$.fn.dataTableExt.afnFiltering 変数は、フィルタリング関数の配列です。メソッド 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 に答える