ExtJS 4.1 停止 grid.Panel 关闭

标签 extjs extjs4.1

我认为它扩展了 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/

相关文章:

javascript - ExtJS 5 : Accessing bound store in component

javascript - 将焦点设置到文本区域后如何防止冒泡事件?

javascript - 如何在网格中的渲染器中获取当前渲染值?

Extjs4 MVC、Ext.define() 和 Ext.create()

javascript - ExtJS 4.1.1 : Custom display text for multi-select combobox

javascript - 用javascript判断当前用户是否是 super 用户

javascript - 分机JS : Add button to a column in a grid to show/hide other columns

javascript - 将消息集中在 Extjs 的属性文件中

javascript - ExtJS:检查窗口状态(最小化、最大化等)

javascript - extJS 版本 4.1.1 中不会触发 beforecheckchange 事件