2014-01-24 49 views
2

我是新来的这一切,并没有研究这个颇有几分,显然不“明白”。 我使用C#/。NET4.5 MVC4。KendoUI的DropDownList更改事件不会触发

我有一个下拉列表我填充,当我改变下拉值,我想触发一个事件..我相信改变事件(用下拉选择的值重定向到一个新的页面)

什么也没有发生(不触发事件)。
我尝试使用.Events语法剑道代码的一部分,但我得到一个错误(错误CS1977:没有首先它强制转换为委托或表达式树类型,则无法使用lambda表达式作为参数传递给动态调度操作)

我怕我不明白的流程,以及如何将事件绑定到行动,尽管阅读这十几个或更多的职位。 在此先感谢您的帮助。

以下是我在查看了(index.cshtml)

@model IEnumerable<cfcccDb.Models.matrix>

<form method="post">

@(Html.Kendo().DropDownList()

.Name("scorematrix") 
    .DataTextField("Text") 
    .DataValueField("Value") 
    .Value(ViewBag.SelectedMatrix) 
    .HtmlAttributes(new { style = "width:200px;" }) 
    .BindTo(@matrixlist) 
    ) 

</form>

<script>

$("#scorematrix").kendoDropDownList({ 

    change: function (e) { 
     var value = this.value(); 
     alert("value = " + value); 
    } 

}) 

</script>

+0

仅供参考,我有关闭paren不显示在ddl代码中,我有“;”即使不在这里显示,关闭paren之后,这样就不是问题了 – user3232713

回答

2

随着MVC的包装,你应该这样做来改变事件绑定:如果你想在JS change事件绑定

@(Html.Kendo().DropDownList() 
    .Name("scorematrix") 
    .DataTextField("Text") 
    .DataValueField("Value") 
    .Value(ViewBag.SelectedMatrix) 
    .HtmlAttributes(new { style = "width:200px;" }) 
    .BindTo(@matrixlist) 
    .Events(e => e.Change("dropdownlist_change"))) 

<script> 
    function dropdownlist_change() { 
     //Handle the change event 
    } 
</script> 

,你可以这样做:

$("#scorematrix").data("kendoDropDownList").bind("change", function (e) { 
    //Handle the change event 
}); 
相关问题