我知道这个问题已被多次询问,但我已经尝试了每个解决方案,但它对我不起作用。
我有下一个脚本:
var table = $('.dataTable').DataTable( {
"dom": 'tip',
"lengthMenu": [20],
"ajax": 'myUrl',
"sAjaxDataProp":"",
"columns" : [
{"data" : "data.employee_num"},
{"data" : "data.name"},
{"data" : "data.user"},
{"data" :
function(row){
return row.data.food!== "1" ? "Yes" : "No";
}
}
]
});
JSON结构是这样的:
[
{
"data": {
"employee_num": "X",
"name": "XXXX",
"user": "XXXX",
"status ": "X",
}
},
{
"data": {
"employee_num": "Y",
"name": "YYYY",
"user": "YYYY",
"status ": "Y",
}
}
]
它工作正常,但我需要根据某个值过滤一些行。例如,在JSON中我有data.status
,它可以是1或2.我需要的是,如果raw的状态为2,则必须删除所有行。我尝试使用filter()
和rows.remove();
并且两者都没有用(或者至少我不知道我是否正确使用了它)
我怎么能做到这一点?
答案 0 :(得分:0)
好的,这是根据值(正确的方法)删除行的方法:
var table = $('.dataTable').DataTable( {
"dom": 'tip',
"lengthMenu": [20],
"ajax": 'myUrl',
"sAjaxDataProp":"",
"columns" : [
{"data" : "data.employee_num"},
{"data" : "data.name"},
{"data" : "data.user"},
{"data" :
function(row){
return row.data.food!== "1" ? "Yes" : "No";
}
}
],
// Answer
"createdRow": function( row, data ) {
if (data["data"]["status"] === "2" ) {
table.row(row).remove().draw();
}
}
});