开发者问题收集

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