我收到错误:“Uncaught TypeError:在以下情况中无法读取属性'addCls'的null”。
我需要两个模态窗口。第一个模态窗口有一个Grid。当我在第一个模态窗口中双击网格时,我应该打开第二个模态窗口。以下是我使用的代码:
saleOrderEmployeeGrid.on('celldblclick', function(tableview, td, cellIndex, record, tr, rowIndex, e, eOpts){
loadActivityWindow();
});
}
function loadActivityWindow()
{
jobSlotActivityWin = new Ext.Window({
id :'jobSlotActivityWinId',
modal : true,
layout : 'fit',
width : 900,
height : 500,
closeAction :'destroy',
plain : true,
model : true,
stateful : false,
title :'Create Job Slot',
items : [soActivityPanel],
buttons : [{
text : 'Close',
handler : function(){
jobSlotActivityWin.destroy();
}
}
]
});
jobSlotActivityWin.show();
Ext.WindowManager.register (createJobSlotWin); // createJobSlotWin is the first modal window
Ext.WindowManager.register(jobSlotActivityWin); // jobSlotActivityWin is the second modal window created above
Ext.WindowManager.bringToFront ('jobSlotActivityWinId');
}
所以,当我双击saleOrderEmployeeGrid时,我看到第二个模态窗口很好。然后我关闭第二个模态窗口并在第一个模态窗口上再次双击网格。
现在没有调出第二个模态窗口。它在第一个模态窗口的背景中完全被掩盖并且空白,我在JavaScript控制台中看到以下错误: 未捕获的TypeError:无法读取null的“addCls”属性
更准确地说,错误似乎来自jobSlotActivityWin.show(),因为我的调试日志在那时失败了。
以前任何人都可以帮助我吗?
答案 0 :(得分:8)
将closeAction设置为隐藏,不确定为什么默认值是destroy,但它实质上意味着当窗口关闭时,元素将从dom中删除,而show
将不再起作用。
http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.panel.Panel-cfg-closeAction
回复评论:
条件创建示例
//the window is only created once, the data is always show and updated.
if(!this.win) {
this.win = createWindow();
}
updateWindowData();
this.win.show();
不是说closeAction:'hide'到处都是,我们在源代码中有这样的东西
Ext.override(Ext.Window, {
closeAction: 'hide'
})
如果您在创建任何窗口之前放置该片段,则默认情况下所有窗口都将为closeAction隐藏。
答案 1 :(得分:1)
设置
closeAction:'hide',
onEsc: funtion() {
jobSlotActivityWin.hide()
}