C# 以编程方式触发选择事件

C# 以编程方式触发选择事件,c#,asp.net-mvc,kendo-ui,C#,Asp.net Mvc,Kendo Ui,我有一个kendoUI下拉列表,定义如下: @(Html.Kendo().DropDownList() .Name("EditGroupSelector") .BindTo(Model.Groups) .Events( events => events .Select("onEditGroup

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

 @(Html.Kendo().DropDownList()
                  .Name("EditGroupSelector")
                  .BindTo(Model.Groups)
                   .Events(
                    events => events
                        .Select("onEditGroupSelected")
                   )
            )
editGroupSelector.select(0);
我理解,当我按如下方式调用api时,不会触发select事件:

 @(Html.Kendo().DropDownList()
                  .Name("EditGroupSelector")
                  .BindTo(Model.Groups)
                   .Events(
                    events => events
                        .Select("onEditGroupSelected")
                   )
            )
editGroupSelector.select(0);
手动选择第一项后,我想手动触发select事件:

editGroupSelector.trigger("select");//api calls dont trigger events -> trigger it manually
这将调用事件,但在eventhandler中,我没有我的事件,因此无法获取新的选定值:

function onEditGroupSelected(e) {
    var nameOfGroup = e.item.text();//e.item does not exist when triggered manually
}
如何触发事件,以便在事件处理程序中实际使用“e.item”?

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

示例:

如果
dropDownList
id
dropDownList
,则可以按如下方式创建参数:

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

注意:需要注意的是,
列表
装饰器(打开下拉列表)不是由您定义的
id
标识的(例如
dropDownList
),而是由
id
后跟
-list
(例如:
dropDownList list
)标识的。这就是为什么jQuery选择器是
$(“li.k-state-selected”、$(“#dropdownlist list”)

您是否知道,如果要获取所选项目的
文本,可以执行
editGroupSelector.text()
如果您手动或自动选取值,则两者都有效?哦,谢谢。我不知道!关于
完整性的问题,我添加了一个示例,说明如何模拟事件,以防您(或其他人)需要它,以及如何将该项添加到触发器(“选择”)?参见答案中的示例。阅读注释。感谢示例和解释-这一个对我帮助很大!