2

我有一个以编程方式创建的 CheckedMultiSelect。

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

到现在为止还挺好。多选已创建。现在,我使用多选打开网页,选中一些复选框并使用 Chrome 控制台:

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

[4, 3] 是一个检查值数组。

我的下一步是取消选中以前选中的框并再次使用 Chrome 控制台:

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

这就是问题发生的地方。'set' 功能不起作用。未选择框。

我什至试过

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

有任何想法吗?

4

1 回答 1

5

好的,我在这里找到了答案。

但是,dijit.form.Select 有一个重要的限制:它的实现方式不能很好地处理非字符串项目标识。特别是,通过 select.set("value", id) 以编程方式设置小部件的当前值将不适用于非字符串(例如数字)身份。

解决方案是将商店中的 id 转换为字符串并使用

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