[英]Filter AJAX Response for DataTable
我有一個DataTable函數。 parentObjData
來自其他地方,應該過濾此DataTable
以僅包含idea_id
等於parentObjData
記錄。
function BuildExampleDataTable(parentObjData, tableCounter) {
oInnerTable = $("#example_" + tableCounter).DataTable({
autoWidth: true,
serverSide: true,
processing: true,
ajax:
{
url: "/platform/api/?format=datatables",
type: "get",
data: function (d) {
var searchData =
{
idea_id: parentObjData,
draw: d.draw,
length: d.length,
start: d.start,
order: d.order,
columns: d.columns,
orderbyfield: d.columns[d.order[0].column].data
};
d.sData = JSON.stringify(searchData);
return d.sData;
}
},
columns: [
{ data: 'idea_id', name: "idea_id.id"},
{ data: 'comment' },
],
});
}
/platform/api/?format=datatables
響應:
{"data":[{"idea_id":1,"comment":"test comment"},{"idea_id":1,"comment":"test comment again"},{"idea_id":2,"comment":"another test comment?"}],"recordsFiltered":3,"recordsTotal":3,"draw":1}
parentObjData
正確到達函數,但未過濾DataTable(它顯示所有三個記錄)。 如何更改ajax
調用的data
部分以過濾DataTable?
這是我的代碼,您可以按照它
"ajax": {
"url": contextRoot + "manage/callbackMessage/datatables",
"data": function (d) {
var req = {
"dir": "",
"colName": "",
"draw": d.draw,
"length": d.length,
"start": d.start
};
var queryReq = {
"idea_id": parentObjData
};
var columns = d.columns;
var order = d.order;
if (order.length > 0) {
var orderFirst = order[0];
var colIndex = orderFirst.column;
req.dir = orderFirst.dir;
req.colName = columns[colIndex].name || columns[colIndex].data;
}
return $.extend({}, req, queryReq);
}
}
在您的服務器代碼上,您可以根據需要解析dir
colName
draw
和idea_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.