2016-08-15 2 views
0

Каков наилучший способ передать всю мою модель из выпадающего списка на событие изменения JavaScript. Я потратил несколько часов на это, не повезлоPass Model to javascript change event from Kendo DropdownList

@model InputApp.DropdownModel 

@(Html.Kendo().DropDownListFor(m => m) 
     .Name(Model.Name) 
     .Text(Model.PlaceHolder) 
     .BindTo(Model.ListItems) 
     .DataTextField("Text") 
     .DataValueField("Value") 
     .Enable(Model.Enabled) 
     .Events(e => 
     { 
      e.Change("dropdown_change"); 
     }) 
     .HtmlAttributes(new {@id= Model.ID.ToString() }) 
) 



function dropdown_change() { 

} 

Любая помощь или просто указание на хорошие ресурсы будет оценена по достоинству.

Благодаря

ответ

0

Там нет никакого способа передать всю модель в обработчик JavaScript, потому что при использовании помощника ASP.Net, чтобы создать выпадающий список модель вынашивала не переплетена. Эквивалентом вспомогательного вывода будет только код JavaScript для генерации html с элементами данных. Однако вы можете получить информацию элемента данных, то вам нужно select событие вместо change:

.Events(e => 
{ 
    e.Select("onSelect"); 
}) 

И в JavaScript

function onSelect(e) { 
    var dataItem = this.dataItem(e.item); 
    console.log("event :: select (" + dataItem.Text + " : " + dataItem.Value + ")"); 
} 

См telerik demo подробности

Другим вариантом было бы передать всю модель на клиентскую сторону и привязать его с помощью JavaScript кендо, см. sample

+0

Спасибо за это! который пролил свет! Очень признателен! Таким образом, нет возможности передать полную модель, но лучше всего извлечь данные из входных атрибутов, как вы продемонстрировали, ура! – MCSD