以编程方式触发选择事件

时间:2013-01-23 15:23:22

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

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

 @(Html.Kendo().DropDownList()
                  .Name("EditGroupSelector")
                  .BindTo(Model.Groups)
                   .Events(
                    events => events
                        .Select("onEditGroupSelected")
                   )
            )

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

editGroupSelector.select(0);

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

editGroupSelector.trigger("select");//api calls dont trigger events -> trigger it manually

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

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

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

1 个答案:

答案 0 :(得分:12)

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

示例:

如果id的{​​{1}}为dropDownList,您可以按以下方式创建参数:

dropdownlist

注意:请注意dropDownList.select(3); dropDownList.trigger("select", { item: $("li.k-state-selected", $("#dropdownlist-list")) } ); 修饰符(open dropDownList)未被您定义的list标识(例如id}非常重要)但dropdownlist后跟id(例如:-list)。这就是jQuery选择器为dropdownlist-list

的原因