【问题标题】:jquery Datatables filter rowsjquery Datatables过滤行
【发布时间】:2016-10-07 09:22:12
【问题描述】:

您好,我有一个 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",
        }
        }]
   });
});

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

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

【问题讨论】:

    标签: javascript jquery datatable datatables


    【解决方案1】:

    您可以使用一个 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,
            });
    
        }
      });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-21
      • 2014-10-12
      • 2015-08-04
      • 2012-10-18
      • 2015-08-27
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      相关资源
      最近更新 更多