Můj tabulátor 5.0 tabulka funguje. Ale když jsem se pokusil pomocí dálkového stránkování nefunguje vůbec.
var table = new Tabulator("#account-tran-detail-table", {
pagination:true,
paginationMode:"remote", //if this line is commented out then it works fine without pagination
paginationSize: 12,
dataSendParams:{
page: "page",
size: "page_size",
},
dataReceiveParams:{
last_page:"total_pages",
} ,
ajaxResponse:function(url, params, response){
return response.results; // return the array of table items
},
});
table.on("tableBuilt", function(){
table.setColumns(columns);
});
function generateReport () {
table.clearData();
var columns = [
{title:"id", field:"id", headerFilter:false, visible:false, download:true},
{title:"name", field:"name", headerFilter:false, visible:false, download:true},
];
var gender = "m";
var url = "/api/v1/myendpointname/";
var append_params = "?gender=" + gender;
$("#tableBuilt").destroy;
table.setData(url + append_params);
};
Odpověď vypadá takto:
{
"count": 10,
"total_pages": 3,
"next": "http://localhost:8000/myendpointname/?gender=m&page=2&size=3
"previous": null,
"results": [
{
"id": 1,
"gender": "m",
"name": "abc",
},
{
"id": 2,
"gender": "m",
"name": "def",
},
{
"id": 3,
"gender": "m",
"name": "ghi",
},
]
}
Můžete vidět, kde se ptám tabulátor číst "total_pages" namísto default "last_page" pomocí "dataReceiveParams". A můžete také vidět, kde se ptám tabulátor poslat "page_size" namísto default "velikost" pomocí "dataSendParams" generovat žádost.
Mám dvě varování . . .
Remote Pagination Error - Server response missing 'undefined' property Page.js:707:11
Remote Pagination Error - Server response missing 'undefined' property Page.js:754:11
Následuje chyba.
Data Loading Error - Unable to process data due to invalid data type
Expecting: array
Received: undefined
Data: undefined
Kód odkazuje varování:
707: console.warn("Remote Pagination Error - Server response missing '" + this.dataReceivedNames.last_page + "' property");
754: console.warn("Remote Pagination Error - Server response missing '" + this.dataReceivedNames.data + "' property");
Tak se mi zdá, že tabulátor není "vidět" "total_pages" část odpovědi. Proč je to ne pomocí "defaultReceiveParams"? Mohlo by to být kvůli mé ajaxResponse funkce vrátí odpověď.výsledky a proužky zbytek odpovědí pryč?
(Stejné chování pro Chrome a Firefox)