Extjs radiogroup fieldLabel不显示内部面板

时间:2014-01-13 06:12:14

标签: extjs radiobuttonlist

我正在使用ExtJs 2.3.0.

我有一个panel,里面有一个radiogroup,如下所示

var testPanel = {
          xtype: 'panel',  
          border: false,
          items: [ 
                    { fieldLabel: 'Please select ', 
                      xtype: 'radiogroup', 
                      id: 'id1', 
                      columns: 2, 
                      vertical: false
                    }
                 ],
                 items: [
                            { boxLabel: 'Yes', name: 'yes', inputValue: 'Yes', xtype: 'radio'},
                            { boxLabel: 'No', name: 'no', inputValue: 'No', xtype: 'radio' }
                        ]
         }

问题是 -
fieldLabel'请选择'的radioBox没有显示。我能够看到'是'/'不'radiobuttons。

当我将testPanel的xtype更改为'form'时,会显示标签。 但是,我不能使用'form'xtype。我只想使用'Panel'。

请让我知道为什么fieldLabel没有在面板内进行透析,以及为此做出任何解决方法。

1 个答案:

答案 0 :(得分:1)

首先,单个单选按钮必须是无线电组的项目。在这里,您已经在配置对象中复制了items个键,这意味着您实际上在面板中最终会有2个无线电,但没有无线电组。

然后,简单的面板不支持显示标签。您必须使用form panel

最后,您可能希望为群组中的所有广播提供相同的name,以便myForm.getForm().getValues()返回{myField: "Yes"}之类的内容(该值将取自inputValue })。

所以这就是你要做的事情:

Ext.ComponentMgr.create({
    xtype: 'form', // notice the changed xtype
    renderTo: Ext.getBody(),
    border: false,
    items: [{
        fieldLabel: 'Please select ',
        xtype: 'radiogroup',
        id: 'id1',
        columns: 2,
        vertical: false,
        // radio buttons must be children of the radio group
        items: [{
            boxLabel: 'Yes',
            // you probably want to give your radios the same name
            name: 'myField',
            inputValue: 'Yes'
        }, {
            boxLabel: 'No',
            name: 'myField',
            inputValue: 'No'
        }]
    }]
});