• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

peter-pc

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

TabPanel非首显页不能完全渲染的问题解决

   最近在用Coolite 0.8.2做系统,在用到TabPanel的时候发现,只要不是页面加载即显示的标签页并且使用了ColumnLayout或者FormLayout布局的话,在切换到这些标签页的时候,这些布局内的Text控件和ComboBox控件的显示都不全,网上查找说设置LayoutOnTabChange为 true可以解决该问题,但是很不幸,该方法无效,后来经过摸索试验,发现只要在标签切换时针对这些布局的上层容器控件(一般是一个普通Panel或者 FormPanel)执行doLayout即可解决这个问题.

 先增加如下js函数:

    <script type="text/javascript">
        function reLayout() {
            setTimeout(function() { FormPanel1.doLayout(false, true); }, 0);
        }
    </script>

 我在这里简单封装了一下,这样如果有很多页,可以都在这里完成重新布局操作.这里 FormPanel1就是FormLayout布局的上层容器,然后在标签切换激活事件Activate中编写代码调用reLayout函数即可:

<ext:Tab ID="Tab4" runat="server" Title="Tab 2">
    <Listeners>
        <Activate Handler="reLayout();" />
    </Listeners>

    <Body>

            ......

    </Body>


当然上面Handler里的代码也可以直接写 FormPanel1.doLayout(false, true);

 具体请参看示例工程,下载示例工程代码解压,在VS2008中打开直接运行即可.


 

posted on 2010-04-20 22:34  peter-pc  阅读(1329)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3