Я вижу некоторые ошибки, которые необходимо исправить, прежде чем ваша сетка заработает.
Прежде всего, schema
, pageSize
, serverPaging
на неправильном уровне отступа, он должен быть включен тот же уровень, что и transport
не внутри него.
transport: {...},
schema: {...},
serverPaging: ...,
pageSize: ...
Каждая сетка должна иметь свойство dataSource, чтение будет вызвано автоматически и данные будут заполнены, вам не нужно устанавливать данные в сетку или вызывать read()
функция:
$('#grid').kendoGrid({
dataSource: {
transport: {
read: {...}
}
}
});
В вашем случае я предполагаю, что vm является сеткой, поэтому вам нужно установить dataSource:transactionHistoryGridDS,
проверить примеры ссылок ниже
Если вам нужно отправить данные с запросом, используйте parameterMap
:
$('#grid').kendoGrid({
resizable: true,
filterable: true,
sortable: true,
pageable: {
pageSize: 10,
refresh: true,
pageSizes: [5, 10, 20, 100, 500, 1000]
},
dataSource: {
pageSize: 10,
serverPaging: true,
serverFiltering: true,
transport: {
read: {
url: 'url',
type: 'POST',
dataType: 'JSON',
contentType: 'application/json'
},
update: {...},
destroy: {...},
parameterMap(data, type) {
switch (type) {
case 'read':
let request = {};
request.page = data.page - 1;
request.page_size = data.pageSize;
request.sort = data.sort;
request.filter = data.filter;
return JSON.stringify(request);
case 'destroy':
return kendo.stringify(data);
default:
break;
}
}
}
}
});
Существует два способа получения данных из запроса kendo dataSource
, первый - с помощью функции complete
, которая вызывается по завершении запроса и ответа. Второй - обещание на каждый запрос источника данных.
Первый пример: завершенный вызов
Второй пример: вызов обещания