对于我的Kendo数据源,生成的json有一列“ TotalRecords”,我如何将此总数设置为Kendo数据源的总数,以便服务器分页可以正常工作。我的代码如下:
var iDataSource = new kendo.data.DataSource({
transport: {
read:
{
url: service_URL + "GetUnconfirmedppointments",
datatype: "json",
type: "GET"
},
parameterMap: function (options) {
return {
appointmentNos: Appointment_Number.value,
loadNumbers: Load_Number.value,
purchaseOrders: Purchase_Orders.value,
dateFrom: Date_From.value,
dateTo: Date_To.value,
warehouse: warehouses.value,
carrierId: cr_carrier_id,
sortColum: getOrderBy(options.sort),
sortDirection: getOrderDir(options.sort),
pageSize: options.pageSize,
pageNumber: options.page
};
}
},
schema: {
model: {
fields: {
APP_APPOINTMENT_ID: { type: "number" },
APPOINTMENT_DATE: { type: "date" },
LO_LOAD_NUMBER: { type: "number" }
}
}
},
pageSize: 5,
total: function (response) {
return response[0].TotalRecords;
},
serverPaging: true,
serverFiltering: true,
serverSorting: true
});
即使我提供了硬编码的总记录数,当前实现也不起作用,当将此数据源绑定到网格时,总计数仅显示json返回的记录数,即页面大小。
最佳答案
我认为您的总数在每条记录上?如果不是,您可以做...
schema: {
total: "TotalRecords"
}
理想情况下,您的JSON应该这样构造...
{ data:[...], total: 100 }
但是,如果无法从服务器那样发送架构,则可以解析该架构。如果将总计数附加到每条记录,则可以添加一个字段来保存它并在解析中填充它。
schema: {
parse: function(data) {
// assign top level array to property
data.data = data;
// assign the count off one of the fields to a new total field
data.total = data.data[0].TotalRecords;
return data;
}
}
关于jquery - kendo数据源服务器分页和JSON中的Total,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14739394/