Kendo UI kendoDropDownList 并以编程方式触发选择回调
2012-11-14
4295
我有一个输入字段,我已将其转换为 kendoDropDownList。传入其选项的是一个选择回调,当用户选择新值时,它会执行一些操作。
例如
$("#MyDropDownList").kendoDropDownList({
optionLabel: "Choose...",
dataTextField: "MyTextField",
dataValueField: "MyValueField",
dataSource: myDataSource,
select: function (e) {
// Do some stuff
}
});
只要用户通过 GUI 选择值,此位就可以正常工作。选择值时需要发生的事情会发生。
如果我需要从代码中更改选择,就会出现问题。我有类似以下内容:
// Select dropdown entry by index
$("#MyDropDownList").data("kendoDropDownList").select(0);
当我这样做时,我的选择回调不会被调用。我在这里做错了什么吗?或者我应该将选择时发生的代码放入它自己的函数中,并在需要触发时自己调用它?
1个回答
是的,调用 Kendo UI API 方法不会触发事件。这是整个框架的设计决策(只有一个例外,即 Window 小部件)。您应该在调用 API 后手动调用事件处理程序。
这样做的原因是,在验证新选择后,您可以在 select 事件处理程序中选择其他项目。如果小部件触发了 select 事件,则这是不可能的(这会导致无限的触发器处理程序循环)。
Alex Gyoshev
2012-11-14