extjs框架中由于id导致的各种异常的解决方法

extjs框架中由于id导致的各种异常,比如组件中文字重叠等问题,如图:


而且确认密码是否一致功能也失效,主要原因是Ext.getCmp(‘id’),在组件关闭时并未销毁导致(EXTJS基本上是靠ID来识别组件的,假如你在panel1中有个ID:"keyword"的textfield,而panel2中有个ID相同的textfield ,那么,当你关闭panel2,由于extjs发现panel2中的ID:"keyword"组件在panel1中仍然使用中,是不会销毁掉它的,于是它成为一个孤立的对象,从而造成混乱。)

网上查找解决办法:

1. 如果必须使用ID属性,建议ID值用父组件ID+子组件ID的形式来指定子组件的ID;

2. 建议使用

    FormPanel.getForm().findField('id/name');

    或者

    Ext.get('id/name'); 

    来替代

    Ext.getCmp('id')获取组件。

3. 或者定义组件为变量,然后在FormPanel或者GridPanel中引入。

4.不给对象指定ID,然后使用组件的find方法通过其他属性来查找对象,例如find("name","role"),结果产生一个array,当然,你的属性是唯一的,那你就可以用find("name","role")[0]这种形式引用组件。


本人使用方法3实现。。。其他办法试过,好像出错或者无效!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值