jquery Datatables过滤行
Posted
技术标签:
【中文标题】jquery Datatables过滤行【英文标题】:jquery Datatables filter rows 【发布时间】: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 存储在一个变量中,但是对于异步进程,我不确定这将如何解决。
【问题讨论】:
【参考方案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,
);
);
【讨论】:
以上是关于jquery Datatables过滤行的主要内容,如果未能解决你的问题,请参考以下文章
如何将我的自定义 jquery 表行过滤与 datatables.net 集成?
jquery dataTables 插件可以在排序/过滤后尊重备用行颜色吗?
如何使用 jQuery DataTables 插件过滤带有特殊字符的结果?