Используя Kendo ListView и, когда моя страница перезагружается, если выбор сделан, мне нужно, чтобы мой код автоматически выбирал элемент ListView, который был ранее выбран. Я могу получить Kendo DataItem путем итерации по коллекции данных, но когда я делаю listView.select (item), пользовательский интерфейс не отображает ничего как выбранное.Выберите Kendo UI ListView Item
Вот мой список вид:
$("#listview").kendoListView({
dataSource: coverages,
template: kendo.template($("#listTemplate").html()),
selectable: true,
change: function() {
var index = this.select().index();
dataItem = this.dataSource.view()[index];
if (selectedCoverageCode == null) {
selectedCoverageCode = dataItem;
}
onCodeChanged(categoryId, planId, dataItem);
}
});
И вот мой код, чтобы установить ранее выбранный элемент:
function setSelectedCoverageCode(code) {
var listView = $("#listview").data("kendoListView");
var dataSource = listView.dataSource.view();
if (listView) {
$.each(dataSource, function(index, item) {
if (item.Code === code) {
listView.select(item);
selectedCoverageCode = item;
}
});
}
}
Мне нужен DOM объект не является источником данных DataItem, я считаю. Вышеуказанная функция setSelectedCoverageCode запускает событие Change, но фактический элемент не выбран в этой точке DOM.
Как это сделать, чтобы я мог отображать элемент как уже выбранный, когда происходит перезагрузка? Предложения?
Благодаря
Код, который я передаю, является значением DataItem. Как я могу получить весь DataItem из источника данных, просто имея значение? – Encryption
вы можете просто прокрутить элементы данных и найти их. Используйте 'dataSource.view()', чтобы получить массив элементов из источника данных. – CodingWithSpike
Отлично. Работает хорошо. Благодарю вас. – Encryption