jquery数据表通用ajax调用

vqlkdk9b  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(309)

我使用jquery datatables的代码如下:

$table.DataTable({
    lengthMenu: [10, 25, 50, 100],
    processing: true,
    paging: true,
    ajax: {
        type: "GET",
        url: '',
        data: function(d) {

        },
        dataSrc: function(json) {
            //some logic
            return json.items;
        },
        error: function(jqXHR) {

        }
    },
    "columns": [//my columns]
});

我想要的是使ajax请求通用化,如下所示:

$table.DataTable({
    lengthMenu: [10, 25, 50, 100],
    processing: true,
    paging: true,
    ajax: ajaxForDataTable(url, methodType, function (d) { }, dataSrcCallback),
    "columns": [//my columns]
});

function ajaxForDataTable(url, methodType, dataCallback, dataSrcCallback) {
    $.ajax({
        type: methodType,
        url: baseUrl + url,
        data: dataCallback,
        dataSrc: dataSrcCallback,
        error: function (jqXHR) {}
    });
}

function dataSrcCallback() {
}

上面的代码工作正常,并从服务器获得响应,但从未调用datasrccallback(我在处理数据),因此datatable从未填充数据(空)。由于我在多个页面上使用此表,如果我更改任何逻辑,我必须在所有页面上进行更改。有谁能告诉我我做错了什么,这样我就可以纠正它,让它为我工作?

tmb3ates

tmb3ates1#

请看以下文档:https://datatables.net/reference/option/ajax .
假设将一个函数传递给ajax参数,并使用要传递给datatable的数据调用回调方法。

$('#example').dataTable( {
  "ajax": function (data, callback, settings) {
    callback(
      JSON.parse( localStorage.getItem('dataTablesData') )
    );
  }
} );

相关问题