簡體   English   中英

過濾DataTable的AJAX響應

[英]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 drawidea_id

https://datatables.net/reference/option/ajax.data的更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM