我认为它扩展了 Ext.grid.Panel
,我希望能够在用户单击 [X] 后询问他是否真的想关闭面板。我试过
listeners: {
beforedestroy: function() {
//console.log('In');
return false;
}
},
但显然没那么简单。关于如何防止面板关闭的任何想法?
谢谢
莱伦
附言
这是我从 Sencha 论坛上得到的,还没有测试过:
Ext.create( 'Ext.window.Window', {
title: 'test',
width: 200,
height: 200,
listeners: {
beforeclose: function( window ) {
Ext.Msg.confirm( 'Hey', 'Are you sure you want to close?', function( answer ) {
if( answer == "yes" ) {
window.destroy();
}
} );
return false;
}
}
} ).show();
最佳答案
beforeclose
事件应该起作用。没有?
更新:
如果你想要一些用户交互(即确认问题或保存数据或类似的东西),它会有点棘手......
首先,在 View 的构造函数中做这样的事情:
this.on('beforeclose', function() {
return this.myCloseHandler(function() { this.close(); }, this);
});
this.alreadyAsked = false;
比创建处理程序:
myCloseHandler: function(callback, scope) {
if (this.alreadyAsked === false) {
this.alreadyAsked = true;
Ext.MessageBox.show({
msg: 'Are you sure?',
fn: function(btn) {
if (btn == 'yes')
Ext.callback(callback, scope);
else
this.alreadyAsked = false;
}
});
return false;
}
return true;
}
想法是 - 你立即返回 false 但有一些标志和条件可以在没有确认的情况下通过相同的逻辑。
关于ExtJS 4.1 停止 grid.Panel 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705362/