2016-01-05 4 views
0

Я использую ListView Kendo UI, используя привязки MVVM. Определение ListView выглядит как:Получить выбранную запись из ListView

<tbody id="listview" data-role="listview" 
     data-template="ListItemTemplate" data-selectable= "true" 
     data-bind="source:categoriesDataSource, events:{change:onListChange}"> 

в строках ListView являются <tr> строкой, присоединенной к следующей модели вида:

var viewModel = kendo.observable({ 
    categoriesDataSource: new kendo.data.DataSource({ 
    data: @(Html.Raw(JsonConvert.SerializeObject(Model.ItemCategories))) 
    }) 
}); 

Я преобразование массива JSON объекты непосредственно; это отлично работает. Однако у меня также есть событие изменения, которое выполняется правильно, но я не знаю, как захватить значения текущей выбранной записи. Есть ли способ получить это из базового источника данных? Я пытался следующим обработчик событий в модели представления, что код выполняется, но значения не являются выбранной записью:

onListChange: function(e) { 
       this.set("ID", e.data.ID); 
       this.set("ParentItemCategoryTypeID", e.data.ParentItemCategoryTypeID); 
       this.set("Code", e.data.Code); 
       this.set("Name", e.data.Name); 
       this.set("IsActive", e.data.IsActive); 
       this.set("Sequence", e.data.Sequence); 
} 

Как получить значение выбранной записи?

ответ

1

Взгляните на это я сделал для и

onListChange: function(e) { 
    var index = e.sender.select().index(); 
    var item = e.sender.dataSource.view()[index]; 
    console.log(item); // item here is the currently selected list item (ObservableObject)) 
} 
+0

Спасибо! Мне пришлось изменить это на e.sender, как только я это сделал. В этом случае это не было ссылкой на список, а на модель представления. Используя e.sender, я получил ссылку на список. –

+0

Хорошо, хорошо. Я исправлю свой ответ. –

Смежные вопросы