bal*_*oke 1 javascript checkbox extjs extjs4
我正在寻找解决方案如何检查Ext.form.CheckboxGroup已经渲染的组件中的项目并包含一组项目.
该组件的代码是:
var oCheckboxGroup = new Ext.form.CheckboxGroup({
columns: 2,
vertical: true,
items: [
{boxLabel: "Value 1", inputValue: 1},
{boxLabel: "Value 2", inputValue: 2},
...
{boxLabel: "Value N", inputValue: N}
]
});
Run Code Online (Sandbox Code Playgroud)
通过单击按钮,该组件将显示在模态窗口中,因此我必须根据要修改的记录重新检查checkboxgroup中的项目.
例如,当我将向窗口第一次我必须预先检查项目1,2和3,在第二时间- 2,4和5.
所以真正的问题是:我如何循环复选框组项并选中/取消选中复选框?
顺便说一句,我尝试了下一个解决方案,但没有:
oCheckboxGroup.items.each(function(oEl) {
oEl.checked = true;
});
Run Code Online (Sandbox Code Playgroud)
谢谢.
UPD
找到答案.问题将在2天内结束,当我被允许接受我自己的答案时,或者更早,如果其他人正确回答=))
找到解决方案 Sencha说:
setValue(Object value):Ext.form.CheckboxGroup
设置组中所有复选框的值.期望的格式是与组中复选框的名称对应的名称 - 值对的对象.每对可以有一个或多个值:
- 单个布尔值或字符串值将传递给具有该名称的复选框的setValue方法.有关可接受的值,请参阅Ext.form.field.Checkbox.setValue中的规则.
- 字符串数组值将与具有该名称的组中复选框的inputValue匹配; 将检查其inputValue存在于数组中的复选框,并且将取消选中其他复选框.
所以我只是name: "cbgroup"在checkbox配置中添加了属性,然后我使用了类似的构造
// first time
oCheckboxGroup.setValue({
cbgroup: [1, 2, 3]
})
// second time
oCheckboxGroup.setValue({
cbgroup: [2, 4, 5]
})
Run Code Online (Sandbox Code Playgroud)
感谢所有试图帮助我的人,希望这个答案能节省一些时间;)