我想在dataTable执行调用时使用Ajax重用的JSON参数更改dataTable中的列数。
所以我尝试了这个:
var columns = [
{data: "data1"},
{data: "data2"},
{data: "data3"}
];
$("#table").dataTable({
ajax: {
url: 'controller/get_table',
dataSrc: function (json) {
if (json.param) {
columns.push({data: "data4"});
columns.push({data: "data5"});
}
return json.data;
}
},
columns: columns,
...
但是我发现dataTable在dataSrc之前使用了数组列,所以当函数更改了columns数组时,为时已晚。
如何在没有第二次调用Ajax的情况下执行此操作?只需使用dataTable调用。
答案 0 :(得分:1)
在ajax回调中初始化你的dataTable。
$.ajax({
//get your json params
}).done(function(response){
$("#table").dataTable({response});
});
数据表作为draw()方法,强制在网页上绘制表格。
你也可以用承诺来做。