5

サーバー側のカスタム フィルタリング、検索、および並べ替えでデータ テーブルを使用しています。

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新しい API オブジェクトではなく、「古い」jQuery オブジェクトで動作していると想定しているためです。ただし、メソッドを介して新しい 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 が 2 回初期化されることはありません (dataTables でチェックされます)。

于 2014-10-08T10:23:08.747 に答える