关于Ext2.0.2API的TabPanel autoLoad Grid页面时布局错乱的方法

如果你改过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(#改成@)





你可能感兴趣的:(ext,活动)