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

时间:2016-02-12 11:34:09

标签: jquery datatable

我有一些带有一些设置的数据表,

 $(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
}

现在我想改变或添加像" bInfo":true," bPaginate"的设置:true,当我点击html输入按钮时。

请帮助我实现这一目标。

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

 oTable = $("tblCategory").dataTable();
 var oSettings = oTable.fnSettings();
 oSettings.bInfo= true;
oSettings.bPaginate = true;

4 个答案:

答案 0 :(得分:3)

根据documentation

  

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

完成

解决方案是破坏表格:

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

table.destroy();

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

你也可以这样做:

table = $('#example').DataTable( {
    destroy: true,
    searching: false
});

这有一些性能影响,它也会重置分页。

答案 1 :(得分:3)

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

//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);

答案 2 :(得分:0)

在应用新选项之前,您需要执行DataTable().destroy(),例如:

oTable = $("tblCategory").DataTable();
var oSettings = oTable.fnSettings();
oSettings.bInfo= true;
oSettings.bPaginate = true;
oTable.destroy();
$("tblCategory").DataTable(oSettings);

此外,您需要将DataTable()与大写字母D一起使用。

答案 3 :(得分:-2)

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