2016-08-15 78 views
0

将我的整个模型从下拉列表传递到JavaScript更改事件的最佳方式是什么?我花了几个小时在这个没有运气将模型传递给来自Kendo的JavaScript更改事件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帮助创建下拉列表中的模型actally不绑定。辅助输出的等价物将只是用于生成包含数据项的html的JavaScript代码。但是,您可以得到的数据项的信息,您将需要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的细节

另一种办法是通过整个模型到客户端并使用kendo JavaScript进行绑定,请参阅sample

+0

谢谢!这已经流露出一些光芒!非常感激!因此,没有办法通过完整的模型,而是最好从输入属性中检索数据,就像您演示的那样,欢呼! – MCSD