日期:2014-05-16  浏览次数:20409 次

extJs的常见问题

1、hiden和destroy问题

当window执行window.close()方法时会触发closeAction的配置,默认配置为destroy,如果你使用默认的值 当关闭window(即执行window.close()或点击右上角的x)时不能通过show方法再次显示,当设置成hiden时可以通过show()再次显示。如果增加、修改和查看的窗体是在grid的里面,当关闭grid的时候会执行close()方法,此时的若window设置成hiden,window将不会被销毁,再次创建grid的时候,可能会出现id重复的现象,弹出的窗体会有问题,解决方案是当grid的销毁的时候会触发destroy事件,可以在destroy事件中添加销毁window的代码,例如:

                 this.on('destroy',function(){

this.addWindow.destroy();
this.editWindow.destroy();
this.viewEffect.destroy();

});


2、弹出的grid中的滚动条问题

在弹出的表格设置layout:vbox, flex=1时表格会自动添加滚动条,flex本意是盒布局各个item占父容器的比例问题 

this.addWindow =  Ext.create('Ext.window.Window', {
id:'effectFactorAddWindow',
title: '添加影响因素',
            closable: true,
            constrain : true,
            modal:true,
            closeAction: 'hide',
            width: 750,
            height: 450,
//            renderTo:Ext.getBody(),
            layout: 'fit',
            items:[{
            xtype:'form',
            id : 'effectFactorAddForm_'+brUnitRuleEffectGrid.moduleId,
            height:'20%',
            bodyStyle : 'padding:15px',
            width: 350,
            validateOnchange:false,
    column:2,
    layout: {
       type: 'vbox',
           align : 'stretch',
           pack  : 'start'
       },
    defaultType: 'textfield',
    items : [{
fieldLabel : 'ruleId',
id:'ruleId_effect',
name : 'ruleId',
hidden:true
},{
fieldLabel : '影响因素',
id:'brUnitEffectName_Add',
name : 'brUnitEffectName_Add',
allowBlank : false,
maxLength : 100,//允许输入的最大字符数2 
        maxLengthText : &q