Ext.Window.show()在重新打开窗口时保留旧的参数值



我有一个在函数内部调用的Ext.Window。我通过函数将一个参数传递给window。当我尝试用新值重新打开window时,window会用旧值执行操作。

这是我的代码-

var Win;
LoadWindow = function (id) {
if (!Win) {
Win = new Ext.Window({
id: 'Pop-win',
layout: 'fit',
width: 650,
modal: true,
height: 450,
closeAction: 'close',
plain: true,
items: [Panel],
listeners: {
close: function (w) {
Win.removeAll();
},
show: function (p) {
Store.reload({
params: {
'ID': id
}
});
}
}
});
}
Win.show();
}

PS:I使用extjs 3.4版本

移动Store.reload();节目听众的一部分。它所引用的id总是指您第一次创建窗口时的id。

如果不经常使用此窗口,只需将其更改为使用closeAction:'destroy'即可,这样每次都会生成一个新窗口。如果你需要重用它,可以在窗口上写一个助手函数,单独重新加载存储,然后调用Win.customStoreReload()和Win.show()。顺便说一句,closeAction:'close'也不是有效的closeAction。配置只能设置为"destroy"或"hide"。

LoadWindow = function (id) {
if (!Win) {
Win = new Ext.Window({
id: 'Pop-win',
layout: 'fit',
width: 650,
modal: true,
height: 450,
closeAction: 'hide', // either 'hide' or 'destroy'. 'close' is not a valid option
plain: true,
items: [Panel],
listeners: {
close: function (w) {
Win.removeAll();
}
}
});
}
Store.reload({params: { 'ID': id }});
Win.show();
}

最新更新