使用ajax调用更改dataTable列数量

时间:2016-03-31 14:12:07

标签: javascript jquery json ajax datatable

我想在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调用。

1 个答案:

答案 0 :(得分:1)

在ajax回调中初始化你的dataTable。

$.ajax({
//get your json params
}).done(function(response){
    $("#table").dataTable({response});
});

数据表作为draw()方法,强制在网页上绘制表格。

你也可以用承诺来做。