如果你改过Ext2.0.2的API那个Viewport就会发现,如果加载的内容里面是一个GridPanel之类的表格,那表格就会变得很长.
当听说现在可以解决这个问题的方法就是用iframe的时候,我决定自己寻找那种更好的方法
当然,如果现在有人用这种方法,那应该是我没找到,不好意思啦.呵呵
好了,不废话了,以下几个注意的地方改一改就可以了,或许你也像我一样碰到过这样的问题,希望对你有帮助.大家互相学习呀.
TabPanel部份
autoLoad = {url: href, scripts:true};
//原来的应该是没有scripts:true这个的,所以loadClass里面要把autoLoad:href改成上面的
layout:'fit'
//还有就是var p = this.add(new docPanel){...}
//这里面要加上layout:'fit'
GridPanel部份
width:Ext.getCmp('doc-body').getActiveTab().getInnerWidth(),
height:Ext.getCmp('doc-body').getActiveTab().getInnerHeight(),
//这个就是重点啦,用来获得当前活动的Tab的宽度跟高度
//把这个放在被加载进来的页面需要调整宽度跟高度的
viewConfig: {
forceFit:true
}
//这个为可选的,如果你不想gridPanel显示横的滚动条,那就在gridPanel里面加上这个吧.
//再补充一段.
//仔细一测试,上面的操作只是加载gridPanel的时候给他负了值,当窗口改变的时候也会很难看的,所以在被加载页里面加多了一个function,代码如下:
//------------------------
function autoresize(){
var aa = Ext.getCmp('loadgrid');
if(aa.getInnerWidth()!=0){
aa.setWidth(Ext.getCmp('doc-body').getActiveTab().getInnerWidth());
aa.setHeight(Ext.getCmp('doc-body').getActiveTab().getInnerHeight());
}
setTimeout(autoresize, 100);
};
autoresize();
//加上这一段后当窗口发生变化的时候就会再次给gridPanel负值的啦.
//以上是我总结的经验做出来的,如果你有更好的方法我们可以讨论一下
//xpoer#hotmail.com(#改成@)