数据表设置默认选项

时间:2015-12-18 11:42:52

标签: javascript datatables-1.10

这是我初始化dataTable

的方法
$('#example').dataTable( {
  "columnDefs": [ {
      "targets": 0,
      "searchable": false
    } ]
} );

我可以做下面的事吗?

var mytable = $('#example').dataTable();

mytable.columnDefs({
  "columnDefs": [ {
      "targets": 0,
      "searchable": false
    } ]
} );

这是因为我想在js文件中定义一个默认初始化,我在页面中包含dataTables,但仍然可以修改一些选项,以便能够为每页定制一些东西。

2 个答案:

答案 0 :(得分:1)

我可以看到这样做的一种可能方式是:

用以下内容替换数据表的初始化:

var mytable;
function initialiseSpecificDatatable(options) {
    mytable = $('#example').dataTable(options);
    return mytable; // Return table so locally you can use it
}

然后,无论您指定/更改选项

var table = initialiseSpecificDatatable({
    "columnDefs": [{
        "targets": 0,
        "searchable": false
    }]
});

如果要重新创建表格,可能需要在创建函数中添加.destroy()。为此,只需添加:

try {
    $(mytable).DataTable().destroy(); //Note capital D to return a DataTable API (See API docs)
} catch (e) {
    // Fails if the table was not a DataTable at the time
}

initialiseSpecificDatatable函数的开头。

答案 1 :(得分:1)

我发现

This用于设置默认值,并将用作解决我的问题的方法。 (检查用于合并对象内容的jquery extend的使用)

// Disable search and ordering by default
$.extend( $.fn.dataTable.defaults, {
    searching: false,
    ordering:  false
} );

// For this specific table we are going to enable searching except on first (0th) column
// (ordering is still disabled)
$('#example').DataTable( {
    searching: true,
    columnDefs: [{
        "targets": 0,
        "searchable": false
    }]
} );

由于