自动最大化的Container,MyExt.ViewPort,自动填充到所属元素的最大状态

来源:互联网 发布:excel重复数据标红 编辑:程序博客网 时间:2024/04/28 18:35

 本程序使extjs 加载其他页面的信息变得不再需要使用iframe,直接加载就可以使用,但是目前还有一个样式问题没解决,被加载的子页面样式会丢失!

网上有好多的tabPanel加载其他html页面的方法,但是个人觉得都不是最好的方法,特别是被加载的页面包含JavaScript脚本时更是问题多多,

所以本人就搞了一个这东西!在这里贴出来,希望大家能够互相参考,节省大家的时间!

 

有很多人说用EXTjs很慢,很庞大,这是一种片面的说法!这说明你对extjs的正确使用方法还不是很了解!甚至有很多人任然使用iframe来加载新页面,殊不知,iframe会造成重新下载已有js的问题!不信你可以打开IE的临时文件,把里面的文件都清空然后再使用你的程序访问,如果你的程序里面新窗口使用了iframe,那么IE的临时文件里面会多出一个ext-all.js,ext-base.js

打开2个新窗口就有3个ext-all.js,ext-base.js,(主程序还有一个呢!)

打开一个新的窗口就重新加载一次,速度奇慢!这样的问题怎么办呢?

 

嘿嘿!我已经给你解决了!

 

还有人会出现这样的问题!

在一个控件里面想要一个子控件最大化,常用的方法是在父控件里面使用'fit'布局,但是有的时候父控件都不知道自己的大小所以渲染的时候,子控件自然就不知道自己该多大了!这个问题经常出现在window窗口里面,我曾经的解决方法就是定死window窗口的大小!这个比较方便的方法!但是有的时候很多问题还是没法解决高度和宽度的问题!在父控件大小未知的情况下想要子控件'fit'是不可能的!大家可以打开fitlayout布局的源代码看看

FitLayout源代码

其中源代码 this.setItemSize(this.activeItem || ct.items.itemAt(0), target.getStyleSize());

中的target就是被渲染的目标,也就是父控件,父控件的大小都不知道, 子控件自然不知道了!

这些问题是极其辣手又必须要解决且经常面对的问题!

想知道怎么解决吗?看看我下面的代码就知道了!

 

 

 

主页面的源代码

test.js的源代码(主程序) 

 

 

 

test.htm被调用的页面

 

 

下面是 myViewPort.js的代码(你可以自己试着扩展panel的代码增加自动填充功能)(本文章的主要内容全在这文件里我一天的心血啊)

 

testAutoPaenl.js的源代码 (被调用的页面的js文件)

 

 

 效果如下:

 

效果图

原创粉丝点击