我遇到这样的问题是因为 (命名重复) 了。
例如:
if(this.aliasName == 1){
this.win = Ext.create("Ext.window.Window", {
width: 1200,
title: '报表', //标题
height : 700,
layout: 'fit', //布局
maximizable: false,//可以放大到全窗口
modal: true, //true 使浮动组件成为模态并在显示时掩盖其背后的所有内容
constrain: true,// true为限制窗口只能在其容器内移动
closable: true,
closeAction: 'hide',
items: this.searchpanel,
buttonAlign: 'center',
dockedItems: this.winToolbar
});
}
if(this.aliasName == 2){
##以下部分同上。
this.win = Ext.create("Ext.window.Window", {
..........
}
因为做了个分支命名重复,导致后面的弹窗被覆盖。
我的解决方案有两个:
一、利用windo管理器,用windowGroup对象去操作多个window窗体.
至于windowGroup是什么,可以看API,我是参考以下这个博客的:
此处是 windowGroup 的 参考博客
var winG = new Ext.WindowGroup();//创建一个对象
//写一个窗口
this.win = Ext.create("Ext.window.Window", {
......
}
winG.register(win); //注册窗口
这样就能区分同名的 两个窗口。
二、第二种方法是:在窗口添加属性–reference (引用值,参考值)。
例如:
this.win = Ext.create("Ext.window.Window", {
reference : 'OneWindow'
。。。。。
});
总结 : 主要区分重复的命名。其实最简单是改部件的 (例如:window 、grid)的变量名就可以了。
(强制温馨提示)
仅供参考,如有错误的地方,请立刻提出。