您好我有一个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'){...};&#34 )。我怎样才能做到这一点?数据表是否具有可以传递以过滤每一行的函数?
我真的需要几个表来显示来自相同ajax回调的数据但是处于不同状态(例如" New"表," Old"表等)。如何在不为每个呈现的表一次又一次地请求相同的json数据的情况下执行此操作?理想情况下,我可以将ajax存储在变量中,但是使用异步过程我不确定这将如何解决。
答案 0 :(得分:2)
您可以使用一个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,
});
}
});
}