2

プログラムで作成された CheckedMultiSelect があります。

new dojox.form.CheckedMultiSelect({
        id: 'products',
        name: 'products',
        multiple: true,
        readOnly: false,
        store: store,
    },'products').startup();

ここまでは順調ですね。マルチセレクトが作成されます。ここで、複数選択で Web ページを開き、いくつかのチェックボックスをオンにして、Chrome コンソールを使用します。

var productSelect = dijit.byId("products");
productSelect.get('value');
[4, 3] 

[4, 3] は、チェックされた値の配列です。

次のステップは、以前にチェックしたボックスのチェックを外し、Chrome コンソールを再度使用することです。

productSelect.set('value', [4, 3]);

そして、問題が発生したのはここです。関数「設定」が機能していません。ボックスが選択されていません。

私も試してみました

productSelect.set('value', ['4', '3']);

何か案は?

4

1 に答える 1

5

わかりました、ここで答えを見つけました。

ただし、dijit.form.Selectには重要な制限があります。これは、文字列以外のアイテムIDを適切に処理しないように実装されています。特に、select.set( "value"、id)を介してプログラムでウィジェットの現在の値を設定することは、文字列以外の(たとえば数値の)IDでは機能しません。

解決策は、ストア内のIDを文字列にキャストして使用することです

productSelect.set('value', ['4', '3']);     
于 2013-02-10T11:37:24.970 に答える