簡體   English   中英

無法使用服務器端分頁將數據加載到數據表中

[英]couldn't load the data to the datatable using server side pagination

我試圖為我的表實現服務器端分頁的概念(jQuery(v1.12.4),datatable(v1.10.15))

根據datatable服務器端分頁文檔

我已經啟用了服務器端分頁加工為真,並與阿賈克斯沿着指定的sPaginationType。

在“ 自定義數據源屬性”文章中 ,提到我們需要使用dataSrc Option作為字符串來從其他源屬性獲取數據,在本例中為demo,但它可以是任何值,包括通過使用嵌套屬性標准的點分Javascript對象表示法。

我已經根據上述要點使用了dataSrc,即基於我的json響應的“ dataSrc”:“ data”

但是,尚未加載數據。

我的表僅加載批准按鈕(我已在“列”部分中定義),其余列為空。 -確認數據未在表中呈現。

請參閱輸出2圖像

由於我使用了deferLoading,因此第一頁返回空數據。 請參考輸出1圖像。

我已提及以下所有文章

自定義數據源屬性dataSrc和分頁問題

數據表服務器端處理分頁問題

代碼片段如下所示,請幫助

$('#vschildtable').DataTable({
        "language": {
            "processing": "Please
            wait - LOADING SCAN Result...", "
            emptyTable " : "
            Currently no
            data found in this project " }, "
            bJQueryUI " : true, "
            paging " :
            true,
            "sPaginationType": "full_numbers",
            "processing ": true,
            "serverSide": true,
            "columns": [{
                    "defaultContent": "",
                    "visible": false
                }, {
                    "defaultContent": "",
                    "visible": false
                }, {
                    "defaultContent": ""
                }, {
                    "defaultContent": ""
                }, {
                    "defaultContent": ""
                }, {
                    data: null,
                    defaultContent: ' <
                        button type = "button"
                    class = "btn-approve label label-link bg-green " > Approve < /button>
                    ' } ], "deferLoading" : 57, "ajax" : { "url" : "emppage?empID=" +
                    encodeURIComponent(empID) + "&projectId=" +
                    encodeURIComponent(projectID) + "&subProjectId=" +
                    encodeURIComponent(subProjectID) + "&pageNo=" +
                    encodeURIComponent(offset),
                    type: 'POST',
                    datatype: "jsonp",
                    "dataSrc": "data"
                }
            });

傑森回應:

    [{
   "message":"SUCCESS",
   "data":"{\"data\":\[{\"projectId\":1,\"subProjectId\":1,\"empID\":765,\"empName\":\"Arjun\",\"empIDVersion\":\"1%3A4.1.4\",\"fkempID\":7781,\"tmpempID\":354999,\"noOfDept\":1,\"rowNo\":1,\"totalnoOfDept\":1},{\"projectId\":1,\"subProjectId\":1,\"empID\":765,\"empName\":\"Arjun\",\"empIDVersion\":\"4.0.18.1\",\"fkempID\":7781,\"tmpempID\":355000,\"noOfDept\":1,\"rowNo\":2,\"totalnoOfDept\":1},{\"projectId\":1,\"subProjectId\":1,\"empID\":765,\"empName\":\"Arjun\",\"empIDVersion\":\"4.2.1\",\"fkempID\":7781,\"tmpempID\":355001,\"noOfDept\":1,\"rowNo\":3,\"totalnoOfDept\":1}\]}"
}]

據我所知,服務器返回的數據中缺少信息。 在服務器端模式下運行時,DataTables期望來自服務器的某些特定數據( drawrecordsFiltered等)。 你可以在這里查看

此外,您應該將data屬性添加到columns數組中的每個對象,並指定要在該列中呈現的數據的名稱,即:

columns:[
    { data:'projectId'   }
    { data:'subPorjectId'}
    ...
]

這告訴DataTables在哪一列中顯示哪些數據。

希望能幫助到你!

暫無
暫無

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

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