嗨,我有一个DataTables DataTable对象,它通过ajax调用请求json数据。 json数据中的每个对象都有一个名为state的属性,该属性可以是多个值之一。最终,我想创建多个(数据)表,每个状态一个表,而不必让每个表一次又一次地通过ajax请求相同的数据。目前,我还没有设法使单个表过滤掉状态不正确的行,我想首先解决此问题。

DataTable对象定义如下:

$(document).ready(function () {
    var table = $('#example').DataTable({
        data: example,
        ajax: {
            url: "{{ callback_url }}",
            dataType: 'json',
            dataSrc: '',
        },
        createdRow: function (row, data, index) {
        },
        columns: [{
            data: "Type"
        }, {
            data: "State",
        }
        }]
   });
});


我想根据参数过滤来自ajax调用的数据(例如“ if(row.State =='new'){...};“)。我怎样才能做到这一点?数据表是否具有可以传递以过滤每一行的函数?

我确实需要几个表来显示来自相同ajax回调但处于不同状态的数据(例如“新”表,“旧”表等)。我如何才能做到这一点,而又不必一次又一次地为每个呈现的表请求相同的json数据?理想情况下,我可以将ajax存储在变量中,但是通过异步过程,我不确定这将如何实现。

最佳答案

您可以使用一个ajax来存储数据,然后创建每个数据表。

例:

$(document).ready(function () {
  var data = null;
  $.ajax(URL, {
    dataType: 'json',
    success: function(ajaxData){
        data = ajaxData;

      newData = data.filter(function(item){ return item.State == "New"});
      oldData = data.filter(function(item){ return item.State == "Old"});

      var newTable = $('#newTable').DataTable({
        data: newData,
        });

      var oldTable = $('#oldTable').DataTable({
        data: newData,
        });

    }
  });
}

07-24 19:26
查看更多