2016-08-11 18 views
0

データにバインドされた静的なデータがあります。次に、jquery datatable.netプラグインを使用してテーブルにページネーションを適用しました。外部行フィルタ後のJquery Datatableページ設定をリセットします

今、私は行を隠して表示する外部フィルタリングロジックを持っています。私はすべてのページのレコードをフィルタリングすることができました。しかし、フィルタリングされたレコードごとにページ番号(つまりページ番号)をリセットできないものがあります。すべてのページのレコードのみが消えますが、ページ番号はリセットされません。例えば以前は100レコードと10ページ(10レコード/ 1ページ)でしたが、フィルタリング後には30レコードしかないので、3ページしか表示されず、10ページすべてが表示され、一部のページは空白になります。すべてのヘルプは高く評価され

function initSorting() { 
var odatatable = $("#tblLoanPayment").DataTable({ 
    "sDom": '<p"top"><"bottom"><"clear">', 
    paging: true, 
    searching: false, 
    ordering: true, 
    select: false, 
    lengthChange: false, 
    pagingType: "full_numbers", 
    "oLanguage": { 
     "sInfo": "_START_ - _END_ of _TOTAL_", 
     "oPaginate": { 
      "sNext": ">", 
      "sPrevious": "<", 
      "sFirst": "<<", 
      "sLast": ">>" 
     } 
    }, 
    "aaSorting": [], 
    bInfo: false, 
    "columnDefs": [{ 
     "targets": [2, 3, 4, 5], 
     "orderable": false 
    }] 
}); 
return odatatable; 
} 

$(document).ready(function() { 
    checkNEnableButton(); 
    var odatatable = initSorting(); 
    $(".chosen-select").change(function() { 
     $('#tblLoanPayment').DataTable().destroy(); 
     //some add remove row logic here... 
     initSorting(); 
    }); 
}); 

は、私は次のコードを持っています。前もって感謝します。

+0

おそらくテーブルを再描画できます。odatatable.draw(); –

+0

しようとしていません:( –

+0

私のアドバイスは、物事をシンプルにして、表をonchangeで作成して破壊しないようにすることです。私はdocument.ready()で表を作成し、下線データを変更した後にdraw()を呼び出します。 –

答えて

1

私は答えとして私のコメントをします:私の助言は、物事を単純に保つことであり、&はテーブルを変更しないでください。私はdocument.ready()上にテーブルを作成し、下線データを変更した後にdraw()を呼び出します。私のアプリケーションで私がした方法は次のとおりです。

sortFilteredGridData(); 
table.clear(); 
table.rows.add(filteredGridData); 
table.draw(); 

フィルタされたグリッドデータはデータの配列です。

+0

ほとんどのシナリオでそれは動作しますが、私は静的なテーブルを持っています。私のフィルタリングは、テーブルのデータに基づいているのではなく、代わりに表示され、異なるロジックの行を表示します。 –

+0

table.rows()からテーブルの下線データにアクセスすることはできますが、データを取得して行を削除してテーブルを再描画できます。 –

+0

これは、table.rows()をフィルタリングしなければならないことを意味し、行を非表示にして明示的に表示すべきではありませんか? –

関連する問題