嗨,我有一个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,
});
}
});
}