C# 以编程方式触发选择事件
我有一个kendoUI下拉列表,定义如下: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
@(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()
如果您手动或自动选取值,则两者都有效?哦,谢谢。我不知道!关于完整性的问题,我添加了一个示例,说明如何模拟事件,以防您(或其他人)需要它,以及如何将该项添加到触发器(“选择”)?参见答案中的示例。阅读注释。感谢示例和解释-这一个对我帮助很大!