javascript - jquery 数据表过滤行

标签 javascript jquery datatable datatables

您好,我有一个 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 回调但处于不同状态的数据(例如"new"表、“旧”表等)。如何在不为呈现的每个表一次又一次地请求相同的 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,
        });

    }
  });
}

关于javascript - jquery 数据表过滤行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37679946/

相关文章:

javascript - 如何在 Google Fusion Table 的同一个表/层上构建 1 个以上的下拉选择器菜单?

jquery - CSS:没有弹出文本

jquery - 如何使用 jQuery 在 div 中动态添加 div。它也应该首先显示?

javascript - 更改原始页面并使用一个链接打开一个新页面 - iOS 8.3

python - 如何使用 Pandas 将字符串转换为数据表excel?

javascript - JSP页面表单验证: 2 forms and 2 scripts

javascript - PHP/JS : Summarize ajax requests

javascript - 调用 jQuery 插件而不指定任何元素

R Shiny DataTable如何防止包含超链接的列中的行选择/取消选择

c# - 如何在 WPF 中显示表格