本文主要是讲:通过Listeners事件对按钮是否显示的控制.
当文本框没有数据时"提交保存按钮"显示,当文本框数据已存在"提交保存"按钮隐藏..
即:初始状态文本框内容为空,保存一次后不再给予修改.
 
以下为代码段:
 
按钮定义,
  {text:'提交保存',
      id:'butSubmit',(此处为"提交保存"按钮的id属性)
      iconCls: 'user-submit',
      handler: function(){...保存相应数据....}
  }
 
items中对文本框的监听:
 ,{id:'handIn',xtype:'textfield',fieldLabel:'文本框',name:'textvalue',width:80,listeners:{'valid':butHide,'focus':butAttribut} }
注:再次采用了Listeners中的'valid'和'focus',valid是当数据每change一次,valid就会被执行一次,focus是为了对文本框的聚焦..以便在有多条数据,反复执行或者单条数据反复执行重写操作时对按钮显示情况的控制.
 
控制方法butHide和butAttribut,具体如下:
function butHide(){
 var v = Ext.get('handInStaff').getValue();
 var b=Ext.getCmp('butSubmit');
 if(v&&!b.b){
  b.hide();
 }
}
function butAttribut(){
 Ext.getCmp('butSubmit').b=1
}
这样便可以对文本框的内容是否存在来控制按钮的显示与否了...
 
在开始时使用了多种方法,通过valid执行次数count来控制在执行多次时按钮的显示情况,但是count为全局变量时不好控制,在操作不甚合理的情况下就会无法正确控制..在使用通过次数的控制时还采用了监听的移除,,但是,终究是不尽人意...最后通过这种办法解决:设置新的button属性,把监听放置在button上,修改button的count也通过button的属性来控制,这样,无论你怎么修改,执行多少语句还是能正确的隐藏按钮..