以编程方式触发选择事件

r3t*_*try 3 c# asp.net-mvc kendo-ui

我有一个kendoUI下拉列表定义如下:

 @(Html.Kendo().DropDownList()
                  .Name("EditGroupSelector")
                  .BindTo(Model.Groups)
                   .Events(
                    events => events
                        .Select("onEditGroupSelected")
                   )
            )
Run Code Online (Sandbox Code Playgroud)

我知道当我调用api时,select事件不会被触发,如下所示:

editGroupSelector.select(0);
Run Code Online (Sandbox Code Playgroud)

手动选择第一项后,我想手动触发选择事件:

editGroupSelector.trigger("select");//api calls dont trigger events -> trigger it manually
Run Code Online (Sandbox Code Playgroud)

这会调用事件,但在事件处理程序中,我没有事件,因此无法获取新选择的值:

function onEditGroupSelected(e) {
    var nameOfGroup = e.item.text();//e.item does not exist when triggered manually
}
Run Code Online (Sandbox Code Playgroud)

我如何触发事件,以便我可以在我的事件处理程序中实际使用"e.item"?

Ona*_*Bai 12

jQuery trigger函数有一个可选参数作为参数.您需要手动添加它,使其与自动调用兼容.你应该添加(至少)item.

例:

如果id你的dropDownListdropdownlist你可以创建如下参数:

dropDownList.select(3);
dropDownList.trigger("select",
        { item: $("li.k-state-selected", $("#dropdownlist-list")) }
);
Run Code Online (Sandbox Code Playgroud)

注意:非常重要的是要注意list装饰器(open dropDownList)不是由id您定义的(例如dropdownlist)标识的,而是id后面的-list(Ex :) dropdownlist-list.这就是jQuery选择器的原因$("li.k-state-selected", $("#dropdownlist-list")