KendoUI DropDownList未触发更改事件

时间:2014-01-24 16:19:04

标签: c# jquery asp.net-mvc-4 dom kendo-ui

我对这一切都很陌生,并对此进行了相当多的研究,显然并没有“得到它”。 我正在使用C#/。NET4.5 MVC4。

我有一个我填充的下拉列表,当我更改下拉值时,我想触发一个事件..更改事件我相信(重定向到具有下拉选择值的新页面)< / p>

没有任何事情发生(事件未触发) 我尝试使用.Events语法作为Kendo代码的一部分,但是我收到一个错误(错误CS1977:不能将lambda表达式用作动态调度操作的参数,而不先将其转换为委托或表达式树类型)

我害怕我不理解流程以及如何将事件绑定到操作,尽管已经阅读了十几篇关于此的帖子。 在此先感谢您的帮助。

以下是我在View(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>

1 个答案:

答案 0 :(得分:4)

使用MVC包装器,您应该这样做来绑定更改事件:

@(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>

如果要在JS中绑定change事件,可以执行以下操作:

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