Extjs 加载掩码

Posted

技术标签:

【中文标题】Extjs 加载掩码【英文标题】:Extjs Load Mask 【发布时间】:2014-12-18 17:21:58 【问题描述】:

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

    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

谢谢,

【问题讨论】:

什么版本的 ExtJS? @GeorgeJempty Extjs 4.2 【参考方案1】:

您发布的代码不显示()窗口,它只是创建它。下面是我开发的一些“有效”的代码(我使用 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);
);

【讨论】:

好吧,我的项目设置方式在每次单击单元格时都可以正常工作(就像它应该的那样。)我的问题是,我无法每次都显示加载窗口单击单元格。不过谢谢 使用你的开发者工具调试,当你点击单元格时可能会出现某种错误并且加载掩码不显示

以上是关于Extjs 加载掩码的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS 3.0 中更通用的面板加载掩码

ExtJS 4 - 显示没有微调器图像的 LoadMask

Sencha 触摸应用程序加载蒙版

ExtJS 3.4 - 设置加载

ExtJS 3.4 中未加载数据

ExtJs 加载数据