0

我正在为 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);
    },

我的问题是,与典型的下拉列表一样,我想存储值而不是文本。我的组合框中的选项如下所示:

价值 | 正文 1 | 《测试》2 | “不一样的考验”

问题是传递给 _onInputWidgetChanged 处理程序的值始终是组合框的文本值,即“测试”或“不同的测试”

我怎样才能访问价值呢?正如我所说,这是我第一次使用 dojo 和 dijit,所以我可能在这里遗漏了一些基本的东西。

提前感谢艾尔

4

1 回答 1

1

问题ComboBox是它的值不需要是下拉菜单中的一个条目(因此,也不能保证是一个)。将其视为具有自动建议功能的文本框 - 用户可以使用菜单来加快流程,但文本框的值是自由格式的,并且报告为用户在其中输入的任何内容。

如果您希望用户被要求从菜单中选择一个条目,您应该FilteringSelect改用它,它将报告关联商店项目的 ID(或关联option标签的value)作为其值。与 的自由形式性质相反ComboBoxFilteringSelect可以将其视为具有预先输入功能的菜单。

于 2013-09-28T01:43:41.567 回答