4

我有一个网格,单击该网格需要几秒钟才能拉出我的弹出窗口。我希望在加载弹出窗口时显示“正在加载...”消息。这是我到目前为止所拥有的:

    onCellClick : function(view, td, eOpts ) {
    var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"Please wait..."});
    myMask.show();
    Ext.create('myapp.view.DetailWindow', {
        title : 'my title',
        width : 900,
        approachRec : record
    });
    myMask.hide();

}

现在这工作得很好,一旦我点击网格中的一个单元格,我的加载框就会出现,然后一旦我的“DetailWindow”出现,它就会消失。

但是,一旦我关闭窗口并再次单击另一个单元格(或同一个单元格)。没有出现加载框,但我的“详细信息”窗口出现了。我究竟做错了什么?

每次单击单元格时,我需要做什么才能弹出加载框?

我正在使用 Extjs 4.2

谢谢,

4

1 回答 1

3

您发布的代码不会显示()窗口,它只是创建它。下面是我开发的一些“有效”的代码(我使用 setTimeout 在延迟 3 秒后显示窗口,然后隐藏加载掩码),但我认为这是解决问题的核心,您将不得不使用调试器,并查看它是否在控制台中显示任何错误。

grid.on('cellclick', function() {
    var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"Please wait..."});
    myMask.show();
    var window = Ext.create('Ext.window.Window', {
        title: 'Hello',
        height: 200,
        width: 400
    });
    setTimeout(function() {
        window.show();
        myMask.hide();
    }, 3000);
});
于 2014-12-18T18:10:40.273 回答