2
使用Kendo ListView,當我的頁面重新加載時,如果已經做出選擇,我需要讓我的代碼自動選擇先前選擇的ListView項目。我能夠通過迭代數據源集合獲得Kendo DataItem,但是當我做listView.select(item)時,UI不會顯示任何選中的內容。選擇Kendo UI ListView項目
這裏是我的列表視圖:
$("#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 2015-03-13 17:40:47
你可以循環訪問數據項並找到它。使用'dataSource.view()'從數據源中獲取項目數組。 – CodingWithSpike 2015-03-13 17:59:22
完美。效果很好。我在這一張上留下了一片空白,謝謝。 – Encryption 2015-03-13 18:14:59