я пытался это исправить, то, что я хочу сделать, это:Кендо Сетка C# - Выберите текущую страницу без обновления источника данных снова
У меня есть источник данных, который получает данные с сервера, когда я иду на сервер, я получить список элементов, затем я должен искать элемент, который я должен выбрать (этот элемент может быть на любой странице), после того, как у меня есть элемент и страница, на которой находится элемент (при условии, что каждая страница имеет 30 элементов), затем Я вызываю выражение LINQ, чтобы пропустить требуемый объем данных и принять 30. Наконец, я возвращаю этот список на стороне клиента.
Когда данные поступают на клиент, мне нужно «автоматически выбрать» выбранный элемент и изменить страницу, чтобы найти пользователя на правой странице, где находится выбранный элемент. У меня новая страница, пропустить, выбранное значение и все на стороне клиента снова.
Что вы предлагаете мне изменить страницу в источник данных kendo grid без вызова нового обновления и снова перейти на сервер?
Это как источник данных выглядит следующим образом:
return new kendo.data.DataSource({
serverPaging: true,
transport: {
read: {
url: URLController.Current().getURL('MyURL'),
contentType: 'application/json',
accepts: 'application/json',
type: 'POST'
},
parameterMap: function(data, type) {
if (data) {
return JSON.stringify(
{
data: jsonData,
pageSize: data.pageSize,
skip: data.skip,
take: data.take
});
}
}
},
schema: {
data: function (data) {
var dropDownData = JSON.parse(data);
gridElement.attr('data-model', JSON.stringify({ data: data }));
return dropDownData.Data;
},
total: function (data) {
var dropDownData = JSON.parse(data);
return dropDownData.total;
},
model: {
id: 'ID'
}
},
pageable: true,
pageSize: 30,
error: function(e) {
alert('Error ' + e);
}
});
Когда данные сетки ограничена я должен изменить страницу номер текущей страницы, а затем выберите текущий элемент.
grid.one('dataBound', function (e) {
var currentGridElement = this.element;
var currentModel = currentGridElement.attr('data-model');
var currentJsonData = parseDropDownDataJSONString(currentModel).data;
var gridDataSource = this.dataSource;
var selection = gridDataSource.get(currentJsonData.selectedValue);
if (selection != undefined) {
var row = currentGridElement.find('tbody>tr[data-uid=' + selection.uid + ']');
if (row != undefined) {
currentGridElement.attr('data-closeByChange', false);
gridDataSource.page(currentJsonData.pageNumber);
this.select(row);
dexonDropDownGrid.combobox().text(selection.DISPLAY);
}
}
var aaaa = 0;
});
Это как мой слушатель событий с привязкой к данным выглядит, когда я пытаюсь установить страницу снова вызывает сервер и я получил больше задержки, чтобы загрузить нужные данные.
Есть ли способ решить это?
Thanks