使用ajax调用更改dataTable列的数量

Change dataTable columns quantity using the ajax call

本文关键字:dataTable ajax 调用 使用      更新时间:2023-10-19

我想使用Ajax在dataTable进行调用时接收的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之前使用的,所以当函数更改列数组时,为时已晚。

在没有第二个Ajax调用param的情况下,我如何才能做到这一点?只是使用dataTable调用。

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

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

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

你也可以通过承诺来做到这一点。