Extjs4 fieldset 监听收缩和展开方法

时间:2022-11-11 05:06:22
查看api中,并没有发现他有此类的事件。是我没找到,还是真没有。
具体就是要监听fieldset的收缩和展开方法,比如,在点击title上的展开按钮的时候,我要展开之前执行一些操作!

3 个解决方案

#1


在3.0里有beforeexpand和beforecollapse的事件,但是在4.0里却没有这个事件了,我们可以通过重写fieldset,给它加这个两个事件,代码如下:Ext.define('MY.fieldset', {
     extend: 'Ext.form.FieldSet',
     alias: 'widget.myfieldset',
     initComponent: function() {
         this.addEvents('beforeexpand', 'beforecollapse');
         this.callParent([arguments]);
     },
     setExpanded: function(expanded){
         var bContinue;
         if (expanded)
             bContinue = this.fireEvent('beforeexpand', this);
         else
             bContinue = this.fireEvent('beforecollapse', this);
         if (bContinue !== false)
             this.callParent([expanded]);
     }
 });
 

#2


该回复于2012-06-06 09:47:45被版主删除

#3


引用 1 楼  的回复:
在3.0里有beforeexpand和beforecollapse的事件,但是在4.0里却没有这个事件了,我们可以通过重写fieldset,给它加这个两个事件,代码如下:Ext.define('MY.fieldset', {
     extend: 'Ext.form.FieldSet',
     alias: 'widget.myfieldset',
     initCompone……


但extjs4.1又有此事件了不知楼主是哪个版本

#1


在3.0里有beforeexpand和beforecollapse的事件,但是在4.0里却没有这个事件了,我们可以通过重写fieldset,给它加这个两个事件,代码如下:Ext.define('MY.fieldset', {
     extend: 'Ext.form.FieldSet',
     alias: 'widget.myfieldset',
     initComponent: function() {
         this.addEvents('beforeexpand', 'beforecollapse');
         this.callParent([arguments]);
     },
     setExpanded: function(expanded){
         var bContinue;
         if (expanded)
             bContinue = this.fireEvent('beforeexpand', this);
         else
             bContinue = this.fireEvent('beforecollapse', this);
         if (bContinue !== false)
             this.callParent([expanded]);
     }
 });
 

#2


该回复于2012-06-06 09:47:45被版主删除

#3


引用 1 楼  的回复:
在3.0里有beforeexpand和beforecollapse的事件,但是在4.0里却没有这个事件了,我们可以通过重写fieldset,给它加这个两个事件,代码如下:Ext.define('MY.fieldset', {
     extend: 'Ext.form.FieldSet',
     alias: 'widget.myfieldset',
     initCompone……


但extjs4.1又有此事件了不知楼主是哪个版本