日期:2014-05-16  浏览次数:20682 次

ExtJs中关于TabPanel的变态问题 - Web 开发 / Ajax
在IE下,连续快速的打开多个TabPanel的tab页后,发现某些tab页没有能够全部渲染完成,但是,只要改变窗口的大小,就能恢复正常,看到有人说可以用layoutOnTabChange这个配置属性:
http://cache.baidu.com/c?m=9d78d513d99d12e405aad22351508436480ed33f6980c4523f8a9c12d52219564615fea662675513d3b27f6256e50f4bea87672f681e61edc68dce179fe0c33f2ffe2730711b9141658058ed81&p=9871da16d9c75aff57ea922f1b5c&user=baidu

但是我试过,还是没有效果。

  在FF下没有这种情况,求高手帮忙!

  有一种思路,不知道可不可行,就是:有没有一个可以判断页面是否渲染成功的属性,如果第一个渲染成功了再去继续渲染第二个!

部分配置信息如下:
JScript code

 var tabPanel=new Ext.TabPanel({
            id:"tabPanel",
            region:'center',
            deferredRender:false,
            enableTabScroll:true,
            activeTab:0,
            iconCls: 'tabs',
            plugins : new Hs.index.TabCloseMenu(),
            layoutOnTabChange:true,
            items:[{
            contentEl:'center',
            title: '主页',
            autoScroll:false,
            html:indexhtml
            }]
 });



------解决方案--------------------
在tabpanel的render事件中,试试tabPanel.ownerCt.doLayout();
------解决方案--------------------
既然改变大小可以改变,那就这样:
JScript code

var width= tabPanel.getSize().width;
var height= tabPanel.getSize().height;
tabPanel.setSize(width,height+1)