我正在为EPiServer编写我的第一个dijit控件。在我的模板中,我使用的是dijit.form.ComboBox。
我已将事件处理程序附加到“onChange”事件,如下所示:
postCreate: function () {
// call base implementation
this.inherited(arguments);
// Init textarea and bind event
this.inputWidget.set("intermediateChanges", this.intermediateChanges);
this.inputWidget.set("store", this.store);
this.connect(this.inputWidget, "onChange", this._onInputWidgetChanged);
},
然后在我的事件处理程序中我有:
_onInputWidgetChanged: function (e) {
alert(e.id);
this._updateValue(value);
},
我的问题是,与典型的下拉列表一样,我想存储Value而不是Text。我的组合框中的选项如下:
价值|文本 1 | “测试” 2 | “另一种测试”
问题是传入_onInputWidgetChanged处理程序的值始终是组合框的文本值,即“测试”或“不同的测试”
如何才能访问Value?正如我所说,这是我第一次与dojo和dijit合作,所以我可能会遗漏一些基本的东西。
提前致谢 人
答案 0 :(得分:1)
关于ComboBox
的问题是它的值不需要是下拉菜单中的条目(因此,也不能保证是一个条目)。可以将其视为具有autosuggest的文本框 - 用户可以使用该菜单加快进程,但文本框的值是自由形式的,并且报告为用户输入的内容。
如果您希望要求用户从菜单中选择一个条目,您应该使用FilteringSelect
,而是报告相关商店商品的ID(或关联的option
代码#39; s value
)作为其价值。与ComboBox
的自由格式性质相反,FilteringSelect
可以被视为具有提前输入功能的菜单。