初始化后更改数据表的设置

Gom*_*iya 5 datatable jquery

我有一些设置的数据表,

 $(tblCategory).dataTable({
            "bPaging": true,
            "sPaginationType": "full_numbers", //
            "bPaginate": false, // shows both next prvious and show 10,20,30 entries
            "sdom": 't',
            "bprocessing": false, //
            "sAjaxSource": "PM_MasterHelper.ashx?m=pmcfl&UserCode="+UserCode,
            "bFilter": false, // search btn avail
                "bDestroy": true
}
Run Code Online (Sandbox Code Playgroud)

现在,当我单击html输入按钮时,我想更改或添加“ bInfo”:true,“ bPaginate”:true之类的设置。

请帮助我实现这一目标。

尝试1:我尝试了以下方法,但它不会影响数据表。

 oTable = $("tblCategory").dataTable();
 var oSettings = oTable.fnSettings();
 oSettings.bInfo= true;
oSettings.bPaginate = true;
Run Code Online (Sandbox Code Playgroud)

kgi*_*kis 5

根据文档

简而言之,DataTables 不允许在初始化时间以外的任何时间更改初始化选项。初始化后对表的任何操作都必须通过 API 完成

解决方案是销毁该表:

table = $('#example').DataTable( {
    paging: false
} );

table.destroy();

table = $('#example').DataTable( {
    searching: false
} );
Run Code Online (Sandbox Code Playgroud)

您还可以这样做:

table = $('#example').DataTable( {
    destroy: true,
    searching: false
});
Run Code Online (Sandbox Code Playgroud)

这会产生一些性能后果,并且还会重置分页。


小智 5

您应该重新初始化数据表:

//Default Options Object
var tableOptions = {
        'bPaginate': true,
        'searching' : true
    };
//The table has already been initialized
var table = $("#ExampleTable");
  tableOptions.bPaginate = true;
  table.DataTable().destroy()
  table.DataTable(tableOptions);
Run Code Online (Sandbox Code Playgroud)


小智 -2

将数据表存储在变量 var tableCategory = $j(tblCategory).dataTable(... 中,然后更改设置对象的属性