本文主要是讲:通过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的属性来控制,这样,无论你怎么修改,执行多少语句还是能正确的隐藏按钮..