0
論壇成員我在使用extjs 4.0.2a的loadMask屬性時遇到了一個問題。其實我有一個網格點擊打開窗口的詳細信息。如何在網格被雙擊時加載蒙板以等待細節窗口
由於我的細節窗口需要更多時間才能進入屏幕,所以我只是決定使用Extjs的loadMask屬性。但不知道爲什麼當我雙擊網格行時,以及在屏幕上顯示細節窗口一段時間後,加載消息沒有顯示。
格上雙擊我執行下面的代碼
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);
}
,但不知道裝不顯示,等待某個時刻之後正確顯示我的窗口。
我只是想當我雙擊網格加載消息應該顯示,當窗口完全加載後加載消息應該消失,並應查看細節窗口。
當我按照你說的做出改變時顯示加載消息,但我的窗口尚未打開。下面窗口的代碼我試圖打開
我projectGanttwindow是
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}
});
}
}
});
加載消息被正確地表示用於我。我看不出這個代碼有什麼問題。 – Krzysztof 2012-02-24 09:31:09
實際上我的窗口需要超過20秒才能加載,所以直到那時我想要顯示加載掩碼消息。但是我沒有在20-25秒之後向我顯示加載消息和詳細的窗口加載。那麼有什麼辦法可以設置loadMask的超時? – 2012-02-24 09:38:28
我不太明白。加載蒙板不可見,或者在加載窗口後不知道如何隱藏蒙板? – Krzysztof 2012-02-24 09:58:49