在ExtJs中,ID属性最好少使用。
因为在不为组件指定ID的情况下,默认为其自动分配id;如果手动指定ID,系统就会以此为准。但是往往在系统中,尤其是使用TabPanel的情况下,一下加载了多个JS页面,很容易出现多个组件使用重复的一个ID都情况,当关闭某个tab页,却因为别的tab页存在相同id的组件无法销毁该页面组件;而且在使用Ext.getCmp获取组件时候出问题–往往得不到我们想要的效果(比如Ext.getCmp后重置该组件的值,却无效)。
比如我之前写的是:(ExtJS 中的前端代码)
//是为了获取到checkboxgroup 下的所有的items形成list集合
Ext.getCmp('CheckboxGroupRoles').items;
但是这样做的话,可能就会出现上面描述的那种情况。
所以我选择替换一下:使用lookupReference
但是这样的话,就需要在相应的位置定义 一个reference值。如下所示:
{
xtype:'checkboxgroup',
fieldLabel:'角色选择',
cls: 'x-check-group-alt',
reference:'CheckboxGroupRoles',
vertical: true,
columns: 3,
listeners:{
render:'loadOperationRoles'
},
}
详细的代码如下:
var checkboxgroup = this.lookupReference('CheckboxGroupRoles').items;
如此便可以达到上述的getCmp 相同的相关。