在ExtJs中,ID属性最好少使用。
因为在不为组件指定ID的情况下,默认为其自动分配id;如果手动指定ID,系统就会以此为准。但是往往在系统中,尤其是使用TabPanel的情况下,一下加载了多个JS页面,很容易出现多个组件使用重复的一个ID都情况,当关闭某个tab页,却因为别的tab页存在相同id的组件无法销毁该页面组件;而且在使用Ext.getCmp获取组件时候出问题--往往得不到我们想要的效果(比如Ext.getCmp后重置该组件的值,却无效)。
其中,extjs中文api中定义:
因此,建议在Ext中少使用ID属性。
2. 建议使用
FormPanel.getForm().findField('id/name');
或者
Ext.get('id/name');
来替代
Ext.getCmp('id')获取组件。
3. 或者定义组件为变量,然后在FormPanel或者GridPanel中引入。
其实也要分使用场景:在form中的标签内容当让通过getForm()或者form属性得到basic表单,在通过findField传入对应子组件的id或者name属性得到对象。
若不是获取form中组件对象,而是在整个ext容器中获取容器,那么就要注意两者的使用差别了。