KTDatatable(Metronic)中的服务器端分页
Server side pagination in KTDatatable (Metronic)
我是 Metronic 的 KTDatatable 新手。
我正在尝试在 Metronic 仪表板中使用服务器端分页,我正在解析 KTDatatable 中的数据,但我找不到解析从 [=27] 返回的数据的方法=] 并查看页数和每页 URL.
到目前为止我能写的代码是:
data: {
type: 'remote',
source: {
read: {
url: dataURL,
method: 'GET',
contentType: 'application/json',
map: function(data) {
var cards = data.cards.data;
var currentPage = data.cards.current_page;
var lastPage = data.cards.last_page;
return cards;
}
},
},
pageSize: 10,
serverPaging: true,
},
在这段代码中,我能够获得前十条记录,但是:
1- 我无法在 table.
中按照我想要的方式解析它们
2- 我无法显示页码,也无法为第二页或我想要的 (x) 页调用 API。
这些是我想做的事情。
提前致谢。
您可以返回 KT-Datatable 文档的末尾找到您想要的大部分答案KT-Datable documentation,但我会解释更多,希望它会更清楚。
所以来自 API (Json) 的 returned 值应该看起来有两个主要对象元和数据,它看起来像这样:
{
"meta": {
"sort": "desc",
"field": "IssueName",
"page": 1,
"pages": 2,
"perpage": "10",
"total": 11
},
"data": [
{
"IssueName": "******",
"CardNumber": "******"
},
{
"IssueName": "******",
"CardNumber": "******"
}
]
}
并且在从 API 获取响应值后,您应该只 return 数据表要解析的数据对象,因此映射函数应该如下所示:
map: function(data) {
return data.data;
}
它会自己处理元数据。
要将数据解析到列中,您应该使用与列定义数组中的数据相同的键名,因此在我的示例中我是这样使用的:
columns: [
{
field: 'IssueName',
title: columnsTitles.issue,
type: 'string',
},
{
field: 'CardNumber',
title: columnsTitles.card_number,
type: 'string',
},
]
每次数据表调用API它会发送更多的数据来帮助你给出正确的响应,数据将在一个数组的形状上(字段名称应该与钥匙):
[
"pagination" => array:4 [
"page" => "1"
"pages" => "2"
"perpage" => "10"
"total" => "11"
],
"sort" => array:2 [
"field" => "IssueName"
"sort" => "desc"
],
]
发送的数据与你要从API获取的分页和排序类型相关,你也可以添加过滤器,它们将存储在“查询”字段的数组中,并且你可以在后端处理它们。
我是 Metronic 的 KTDatatable 新手。
我正在尝试在 Metronic 仪表板中使用服务器端分页,我正在解析 KTDatatable 中的数据,但我找不到解析从 [=27] 返回的数据的方法=] 并查看页数和每页 URL.
到目前为止我能写的代码是:
data: {
type: 'remote',
source: {
read: {
url: dataURL,
method: 'GET',
contentType: 'application/json',
map: function(data) {
var cards = data.cards.data;
var currentPage = data.cards.current_page;
var lastPage = data.cards.last_page;
return cards;
}
},
},
pageSize: 10,
serverPaging: true,
},
在这段代码中,我能够获得前十条记录,但是:
1- 我无法在 table.
中按照我想要的方式解析它们2- 我无法显示页码,也无法为第二页或我想要的 (x) 页调用 API。
这些是我想做的事情。
提前致谢。
您可以返回 KT-Datatable 文档的末尾找到您想要的大部分答案KT-Datable documentation,但我会解释更多,希望它会更清楚。
所以来自 API (Json) 的 returned 值应该看起来有两个主要对象元和数据,它看起来像这样:
{
"meta": {
"sort": "desc",
"field": "IssueName",
"page": 1,
"pages": 2,
"perpage": "10",
"total": 11
},
"data": [
{
"IssueName": "******",
"CardNumber": "******"
},
{
"IssueName": "******",
"CardNumber": "******"
}
]
}
并且在从 API 获取响应值后,您应该只 return 数据表要解析的数据对象,因此映射函数应该如下所示:
map: function(data) {
return data.data;
}
它会自己处理元数据。
要将数据解析到列中,您应该使用与列定义数组中的数据相同的键名,因此在我的示例中我是这样使用的:
columns: [
{
field: 'IssueName',
title: columnsTitles.issue,
type: 'string',
},
{
field: 'CardNumber',
title: columnsTitles.card_number,
type: 'string',
},
]
每次数据表调用API它会发送更多的数据来帮助你给出正确的响应,数据将在一个数组的形状上(字段名称应该与钥匙):
[
"pagination" => array:4 [
"page" => "1"
"pages" => "2"
"perpage" => "10"
"total" => "11"
],
"sort" => array:2 [
"field" => "IssueName"
"sort" => "desc"
],
]
发送的数据与你要从API获取的分页和排序类型相关,你也可以添加过滤器,它们将存储在“查询”字段的数组中,并且你可以在后端处理它们。