Extjs4 非Iframe方式加载tabpanel,子窗口如何constrain在tabpanel中

时间:2021-07-23 18:28:25
TabPanel是通过动态加载方式添加的,没有使用iframe。但是在模块子页面有一个问题:

问题:
弹出的子窗口不能限定在中间区域

Extjs4 非Iframe方式加载tabpanel,子窗口如何constrain在tabpanel中


想要达到的效果:
Extjs4 非Iframe方式加载tabpanel,子窗口如何constrain在tabpanel中

6 个解决方案

#1


http://zhidao.baidu.com/question/507142845.html

这个对你肯定有帮助

#2


窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();

#3


引用 2 楼 qiubin200236 的回复:
窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();

言之有理,但是如果想实现,各个tabpanel内的子窗体互不重叠影响。
比如有两个tab:tab1,tab2,.
tab1激活时,有一个打开的tab1子窗体。
tab2激活时,有一个开打的tab2子窗体。
这种情况如何实现呢?

#4


引用 2 楼 qiubin200236 的回复:
窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();


引用 2 楼 qiubin200236 的回复:
窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();


还需要子窗口限定在中间的区域,如何做呢?

#5


引用 3 楼 qlscdspet 的回复:
Quote: 引用 2 楼 qiubin200236 的回复:

窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();

言之有理,但是如果想实现,各个tabpanel内的子窗体互不重叠影响。
比如有两个tab:tab1,tab2,.
tab1激活时,有一个打开的tab1子窗体。
tab2激活时,有一个开打的tab2子窗体。
这种情况如何实现呢?


如果需要互不影响,就需要在代码里做互斥
tab2激活时
if(win_tab1)win_tab1.close();
win_tab2.create().....

反之
if(win_tab2)win_tab2.close();
win_tab1.create().....

如果需要限定显示区域,只能代码了。
根据父容器的getLocal,getWidth,getHeight去showAt子窗体

#6


引用 5 楼 qiubin200236 的回复:
Quote: 引用 3 楼 qlscdspet 的回复:

Quote: 引用 2 楼 qiubin200236 的回复:

窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();

言之有理,但是如果想实现,各个tabpanel内的子窗体互不重叠影响。
比如有两个tab:tab1,tab2,.
tab1激活时,有一个打开的tab1子窗体。
tab2激活时,有一个开打的tab2子窗体。
这种情况如何实现呢?


如果需要互不影响,就需要在代码里做互斥
tab2激活时
if(win_tab1)win_tab1.close();
win_tab2.create().....

反之
if(win_tab2)win_tab2.close();
win_tab1.create().....

如果需要限定显示区域,只能代码了。
根据父容器的getLocal,getWidth,getHeight去showAt子窗体


感觉这种处理不灵活,每个tab页中可以弹出的win窗口有可能有很多的,
tab切换时的上一个活动tab的子窗口隐藏,
而且切换回去时,那些已经弹出的窗口还是需要出现的。

还是谢谢了,散分

#1


http://zhidao.baidu.com/question/507142845.html

这个对你肯定有帮助

#2


窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();

#3


引用 2 楼 qiubin200236 的回复:
窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();

言之有理,但是如果想实现,各个tabpanel内的子窗体互不重叠影响。
比如有两个tab:tab1,tab2,.
tab1激活时,有一个打开的tab1子窗体。
tab2激活时,有一个开打的tab2子窗体。
这种情况如何实现呢?

#4


引用 2 楼 qiubin200236 的回复:
窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();


引用 2 楼 qiubin200236 的回复:
窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();


还需要子窗口限定在中间的区域,如何做呢?

#5


引用 3 楼 qlscdspet 的回复:
Quote: 引用 2 楼 qiubin200236 的回复:

窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();

言之有理,但是如果想实现,各个tabpanel内的子窗体互不重叠影响。
比如有两个tab:tab1,tab2,.
tab1激活时,有一个打开的tab1子窗体。
tab2激活时,有一个开打的tab2子窗体。
这种情况如何实现呢?


如果需要互不影响,就需要在代码里做互斥
tab2激活时
if(win_tab1)win_tab1.close();
win_tab2.create().....

反之
if(win_tab2)win_tab2.close();
win_tab1.create().....

如果需要限定显示区域,只能代码了。
根据父容器的getLocal,getWidth,getHeight去showAt子窗体

#6


引用 5 楼 qiubin200236 的回复:
Quote: 引用 3 楼 qlscdspet 的回复:

Quote: 引用 2 楼 qiubin200236 的回复:

窗体打开前
父容器 mask();
创建窗体 
modal:false

关闭窗体时
父容器 unmask();

言之有理,但是如果想实现,各个tabpanel内的子窗体互不重叠影响。
比如有两个tab:tab1,tab2,.
tab1激活时,有一个打开的tab1子窗体。
tab2激活时,有一个开打的tab2子窗体。
这种情况如何实现呢?


如果需要互不影响,就需要在代码里做互斥
tab2激活时
if(win_tab1)win_tab1.close();
win_tab2.create().....

反之
if(win_tab2)win_tab2.close();
win_tab1.create().....

如果需要限定显示区域,只能代码了。
根据父容器的getLocal,getWidth,getHeight去showAt子窗体


感觉这种处理不灵活,每个tab页中可以弹出的win窗口有可能有很多的,
tab切换时的上一个活动tab的子窗口隐藏,
而且切换回去时,那些已经弹出的窗口还是需要出现的。

还是谢谢了,散分