Javascript 如何在双击网格以等待详细信息窗口时加载遮罩
论坛成员我在使用extjs 4.0.2a的loadMask属性时遇到了一个问题。事实上,我有一个网格,点击打开窗口的详细信息 由于我的细节窗口在屏幕上显示的时间更长,所以我决定使用Extjs的loadMask属性。但我不知道为什么在双击网格行时,加载消息没有显示,过了一段时间,屏幕上会显示详细信息窗口 在网格上双击我正在执行下面的代码Javascript 如何在双击网格以等待详细信息窗口时加载遮罩,javascript,extjs4,extjs-mvc,Javascript,Extjs4,Extjs Mvc,论坛成员我在使用extjs 4.0.2a的loadMask属性时遇到了一个问题。事实上,我有一个网格,点击打开窗口的详细信息 由于我的细节窗口在屏幕上显示的时间更长,所以我决定使用Extjs的loadMask属性。但我不知道为什么在双击网格行时,加载消息没有显示,过了一段时间,屏幕上会显示详细信息窗口 在网格上双击我正在执行下面的代码 projectEditTask: function(grid,cell,row,col,e) { var myMask = new Ext.LoadMask(Ex
projectEditTask: function(grid,cell,row,col,e) {
var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"Loading.."});
myMask.show();
var win = this.getProjectGanttwindow();
win.on('show', myMask.hide, myMask);
}
但不知道加载未显示,等待片刻后,我的窗口显示正确
我只想当我双击网格加载消息时显示,当窗口完全加载后,加载消息应消失,并应查看详细信息窗口
当我按照您所说的进行更改时,将显示加载消息,但我的窗口尚未打开。下面是我试图打开的窗口的代码
我的项目是
Ext.define('gantt.view.projectmgt.projectGanttwindow' ,{
extend: 'Ext.window.Window',
alias : 'widget.projectganttwindow',
requires: ['gantt.view.projectmgt.projectGanttpanel'],
editform:1,
id: 'projectganttwindow',
title: 'Project Management',
width: '100%',
height: '100%',
closeAction: 'destroy',
isWindow: true,
flex:1,
isModal: true,
constrain: true,
maximizable: true,
stateful: false,
projectId: null, // this will be set before showing window
listeners: {
hide: function() {
alert('hide');
//var store = Ext.data.StoreManager.lookup('taskStore').destroyStore();
//Ext.destroy(store);
//store.destroyStore();
console.log('Done destroying');
}
},
initComponent: function() {
var me = this;
me.layoutConfig = {
align: 'stretch'
};
me.items = [{
xtype: 'projectganttpanel',
allowBlank: false
}];
me.callParent(arguments);
me.on({
scope: me,
beforeshow: me.onBeforeShow
});
},
onBeforeShow: function() {
var projectId = this.projectId;
console.log('BEFOR SHOW ::'+projectId);
if(projectId != null) {
var store = Ext.data.StoreManager.lookup('taskStore');
store.load({
params: {'id': projectId}
});
}
}
});
试试这个
function loadMask(el,flag,msg){
var Mask = new Ext.LoadMask(Ext.get(el), {msg:msg});
if(flag)
Mask.show();
else
Mask.hide();
}
当你点击网格时,调用这个函数
//启用掩码消息
loadMask(Ext.getBody(),'1','Please wait…')代码>
pop加载呼叫后
//禁用掩码消息
loadMask(Ext.getBody(),“”,“请稍候…”)代码>正在为我正确显示加载消息。我看不出这段代码有什么问题。实际上,我的窗口加载需要20秒以上,所以在此之前,我想显示加载掩码消息。但20-25秒后,我没有显示加载消息和详细的窗口加载。有没有办法设置加载掩码的超时?我不太明白。您的加载掩码不可见,或者在加载窗口后您不知道如何隐藏它?我的加载掩码不可见,一段时间后,详细窗口成功出现。有什么解决办法吗?我不知道为什么你的面具不可见。这对我来说很好。要隐藏掩码,需要在加载窗口后调用hide
方法。见示例: