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 ハンドラーに渡される値が常にコンボボックスのテキスト値、つまり「テスト」または「別のテスト」であることです。

代わりに値にアクセスするにはどうすればよいですか? 私が言ったように、道場と dijit を扱うのはこれが初めてなので、ここで何か基本的なことが欠けているかもしれません。

前もってありがとうアル

4

1 に答える 1

1

重要なComboBoxのは、その値がドロップダウン メニューのエントリである必要はないということです (したがって、ドロップダウン メニューのエントリであるとは限りません)。autosuggest を備えたテキストボックスと考えてください。ユーザーはメニューを使用してプロセスを迅速に処理できますが、テキストボックスの値は自由形式であり、ユーザーが入力した内容がレポートされます。

ユーザーがメニューからエントリを選択する必要がある場合は、FilteringSelect代わりに を使用する必要があります。これは、関連付けられたストア アイテムの ID (または関連付けられたoptionタグのvalue) をその値として報告します。の自由形式の性質とは対照的に、 はComboBox先行FilteringSelect入力機能を備えたメニューと考えることができます。

于 2013-09-28T01:43:41.567 に答える