开发中碰到的ext小问题

一、extjs中碰到的一个问题,就是关闭tabpanel后,再打开,tabpanel中的组件就不显示了。
因为tabpanel默认是关闭后控件销毁,再打开就是重新建了个面板,而面板内的组件如果只是初始化了一次,则再次打开面板,就无法显示其中的组件。自己总结了3种解决方法

1、每次打开tabpanel的时候,都初始化一次tabpanel面板中的组件,然后添加进去。即面板销毁后再次被创建的时候
里面的组件也再次被创建。

如果仅仅初始化一次面板中的组件,当面板关闭后再次打开,添加组件进去,就会报 c.getPositionEl().dom is undefined 错误,因为关闭面板时,已经销毁了组件。


2、tabpanel中item直接是gridpanel formpanel等组件时,将tabpanelautoDestroy属性改为false,默认为true,同时还需要重写listeners的remove事件方法 remove:function(t,c){c.hide()} 这样,当关闭面板时,面板内的元素并没有销毁,只是隐藏了。再次打开面板,即使面板内元素仅仅初始化过一次,因为没有销毁,所以可以再次添加进去显示。

3、tabpanel中item是panel并且为 layout='border' ,位于子Panel中的组件,
tabpanel只需要 autoDestroy=true,不要修改remove listeners, tabpanel的 item(panel) 改为 closeAction:'hide'
并且 生成的tab不能有相同的id。

二、combox 设置默认值。

listeners:{
afterrender:function(){
Ext.getCmp('CHARTS').setValue('943');
Ext.getCmp('CHARTS').setRawValue('客户押金');
chartsstore.load();
}
}


或者

store修改load事件
listeners: {
load: function() {
combobox.setValue("xx");
}
}


store.load({
callback : function(records) {
combo.setValue("4");
}
});


三、combox 返回值
{
displayField:'NAME',
valueField: 'ID',
id:
name
}
没有设置hiddenName时,
通过 Ext.getCmp('SETTLEMODE').getValue();获取valueField的值
Ext.getCmp('costbatchForm').getForm().getValues() 无法获取

{
displayField:'NAME',
valueField: 'ID',
id:
name
hiddenName:""
}

可以通过 Ext.getCmp('costbatchForm').getForm().getValues() 获取。提交的参数名即是
hiddenName 获取 valueField的值



四 textfield设置显示值,和获取值
setValue('xxx') 提交表单时返回的值
setRawValue('yyy')显示值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值