0

誰でもjQueryデータテーブルのライフサイクルを説明できますか?

smeページでデータテーブルを閉じて再度開くという問題があります(データテーブルの再初期化)。2回目のデータテーブルを開くと、フィルターが機能しなくなります。

エラーが発生します:

TypeError: oSettings is null
if ( !oSettings.oFeatures.bFilter )

この問題を解決する方法がわかりません。

更新 1:

var oTable;
function datatable() {
oTable = jQuery('#tabela').dataTable({
    "oLanguage": {
        "sSearch": "Search:",
        "sInfoFiltered": '' 
    },
    "bDestroy": true,
    "bStateSave": false,
    "bJQueryUI": true,
    "sPaginationType": "full_numbers",
    "aLengthMenu": [[15, 25, 50, 100, -1], [15, 25, 50, 100, "all"]],
    "iDisplayLength": -1,
    "fnRowCallback": function( nRow, aData, iDisplayIndex ) {
        $(nRow).addClass('gradeA');
        return nRow;
    }
}).columnFilter({
    aoColumns: [
        null,
        null,
        null,
        { type: "checkbox", values: ['BGD','BGDS','NS','NSS','LE','LES'] }
    ]
});
}

function datatable_delete() {
oTable.fnFilterClear(); 
oTable.fnDestroy();
}

Function datatable() リンクをクリックすると呼び出されます。次に、テーブルが同じページに開きます。閉じるボタンで、テーブルが閉じ、datatable_delete() 関数が呼び出されます。私たちはまだ同じページにいます。リンクをクリックしてテーブルを開くと、前述の問題が発生します。

4

1 に答える 1

0

これを試して

function datatable_delete() {
  oTable.fnSettings().aoRowCallback = [];
  oTable.fnSettings().aoDrawCallback= [];
  oTable.fnDestroy();
}
于 2014-09-10T13:34:22.587 に答える