在 extjs4.2 中保存后禁用按钮
Disable a button after save in extjs4.2
我在一个保存按钮上保存了三个选项卡,但是在单击保存按钮时,我试图在保存三个选项卡中的数据时禁用该按钮,以防止用户在保存按钮,因为我的功能超时。对如何操作有任何帮助吗?
Ext.onReady(function(){
tabPanel = Ext.create('Ext.tab.Panel', {
region: 'center',
activeTab: 0,
autoScroll: true,
tbar: [{
xtype: 'button',
deferredRender : false,
handler:function(){
save("frm_A", save);
},
}],
items: [
{
id:"panel_A",
html: "<iframe src= '"+A_url +"' width='100%' height='100%' id='frm_A' name='frm_A' frameborder=0 />",
},{
id:"panel_B",
html: "<iframe src='"+B_url+"' width='100%' height='100%' id='frm_B' name='frm_B' frameborder=0 />",
},{
id:"panel_C",
html: "<iframe src= '"+C_url+"' width='100%' height='100%' id='frm_C' name='frm_C' frameborder=0 />",
}]
});
viewport = new Ext.Viewport({
layout:'border',
items:[tabPanel]
});
function save(record){
var Aid = record.getField("NUMBER").getRealValue();
var currentTab = tabPanel.getActiveTab();
tabPanel.setActiveTab(1);
tabPanel.setActiveTab(2);
tabPanel.setActiveTab(0);
tabPanel.setActiveTab(currentTab);
var B= window.frames["frm_B"];
var C= window.frames["frm_C"];
setTimeout(function(){
try {
B.RECORD.getField("ID").setRealValue(Aid);
C.RECORD.getField("ID").setRealValue(Aid);
B.RECORD.update();
C.RECORD.update();
parent.refreshGrid();
parent.win.close();
}
catch(e){
showError(e);
}
}, 4000);
}
});
保存处理程序中的一种方法是调用按钮的 setDisabled() 方法。
示例:
handler: function() {
this.setDisabled(true);
save("frm_A", save);
}
然后,在您的 setTimeout 中,您可以设置禁用(false)。
为了能够有效地做到这一点,您可能需要考虑稍微重构您的保存处理程序,例如,通过将 "this" 作为参数传递给您的保存函数,以便您可以调用 setDisabled(false ) 在该参数上。
https://docs.sencha.com/extjs/4.2.5/#!/api/Ext.button.Button-method-setDisabled
希望对您有所帮助。
我在一个保存按钮上保存了三个选项卡,但是在单击保存按钮时,我试图在保存三个选项卡中的数据时禁用该按钮,以防止用户在保存按钮,因为我的功能超时。对如何操作有任何帮助吗?
Ext.onReady(function(){
tabPanel = Ext.create('Ext.tab.Panel', {
region: 'center',
activeTab: 0,
autoScroll: true,
tbar: [{
xtype: 'button',
deferredRender : false,
handler:function(){
save("frm_A", save);
},
}],
items: [
{
id:"panel_A",
html: "<iframe src= '"+A_url +"' width='100%' height='100%' id='frm_A' name='frm_A' frameborder=0 />",
},{
id:"panel_B",
html: "<iframe src='"+B_url+"' width='100%' height='100%' id='frm_B' name='frm_B' frameborder=0 />",
},{
id:"panel_C",
html: "<iframe src= '"+C_url+"' width='100%' height='100%' id='frm_C' name='frm_C' frameborder=0 />",
}]
});
viewport = new Ext.Viewport({
layout:'border',
items:[tabPanel]
});
function save(record){
var Aid = record.getField("NUMBER").getRealValue();
var currentTab = tabPanel.getActiveTab();
tabPanel.setActiveTab(1);
tabPanel.setActiveTab(2);
tabPanel.setActiveTab(0);
tabPanel.setActiveTab(currentTab);
var B= window.frames["frm_B"];
var C= window.frames["frm_C"];
setTimeout(function(){
try {
B.RECORD.getField("ID").setRealValue(Aid);
C.RECORD.getField("ID").setRealValue(Aid);
B.RECORD.update();
C.RECORD.update();
parent.refreshGrid();
parent.win.close();
}
catch(e){
showError(e);
}
}, 4000);
}
});
保存处理程序中的一种方法是调用按钮的 setDisabled() 方法。
示例:
handler: function() {
this.setDisabled(true);
save("frm_A", save);
}
然后,在您的 setTimeout 中,您可以设置禁用(false)。
为了能够有效地做到这一点,您可能需要考虑稍微重构您的保存处理程序,例如,通过将 "this" 作为参数传递给您的保存函数,以便您可以调用 setDisabled(false ) 在该参数上。
https://docs.sencha.com/extjs/4.2.5/#!/api/Ext.button.Button-method-setDisabled
希望对您有所帮助。