检查CheckboxGroup ExtJS组件中的各种复选框

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,23,在第二时间- 2,45.

所以真正的问题是:我如何循环复选框组项并选中/取消选中复选框?

顺便说一句,我尝试了下一个解决方案,但没有:

oCheckboxGroup.items.each(function(oEl) {
    oEl.checked = true;
});
Run Code Online (Sandbox Code Playgroud)

谢谢.


UPD

找到答案.问题将在2天内结束,当我被允许接受我自己的答案时,或者更早,如果其他人正确回答=))

bal*_*oke 6

找到解决方案 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)

感谢所有试图帮助我的人,希望这个答案能节省一些时间;)