`

Ext 组件不显示解决方案

阅读更多

在做项目的时候,常常会发现组件显示不出来的情况,可以尝试如下几种方式:
1.检查Height
通常情况下,看不到组件显示或者只看到一小条,第一个需要做的就是先将这个组件的height属性显式的设置出来,通常情况下就会显示。


2.tabpanel的情况
如果你的空间是放在TabPanel当中,那么需要注意的是将内嵌的组件直接写在items中,例如:

   new Ext.TabPanel({
        activeTab: 0,
        autoHeight: true,
        plain: true,
        tabPosition: 'top',
        border: true,
        defaults: {
            autoScroll: true
        },
        items: [zzPanel, hzPanel]
    });

不可以多此一举的写成:

new Ext.TabPanel({
        activeTab: 0,
        width: 600,
        height: 550,
        plain: true,
        tabPosition: 'top',
        border: false,
        defaults: {
            autoScroll: true
        },
        items: [{
            title: ResourceHelper.i18n.zz,
            items: [zzgrid],
            listeners: {
                activate: changeHandle
            }
        }, {
            id: 'hztab',
            title: ResourceHelper.i18n.hz,
            items: [hzgrid],
            listeners: {
                activate: changeHandle
            }
        }]
    });

 

这样写会出现只有activeTab所对应的tab中的grid有显示,其他tab中的grid均无法显示。(我在调试这个bug的时候,是在一次偶然的机会中,修改的activeTab的值才发现的这个bug)。

这种情况下,使用show()来显示tab中的grid。

 

3.panel中嵌套grid,而这个panel有嵌套在TabPanel中。

这个情况下,不仅仅需要注意第二点中的一些注意事项,还要注意的是,在这种情况下,仅仅采用show()是无法显示所有控件的。因为仅仅使用show()仅仅可以将TabPanle中的直接控件即panel显示出来,而无法将嵌套在panel中的grid也显示出来。

这个时候,就需要在调用一下panel的doLayout() 方法了。

分享到:
评论
9 楼 tiesheng 2008-11-11  
shjy.nicholas 写道
jacky9692 写道
liminbai 写道
这种方式下   虽然第一次打开没问题。但是当tabpanel切换或者,关闭再次打开后就会不能显示。不知这个问题怎么解决

请问这个问题解决了么?
有没有什么方法解决多tabpanel切换显示问题啊??

不知道你是什么情况下碰到的多个tabpanel切换显示问题,希望可以贴点代码出来,这样便于帮你查找原因。
我在项目中使用了5个tabpanel,每个tabpanel中还嵌套了grid,未见显示问题。不知你是否按照我上面写的第2点中的show方法?



我也碰到多tab显示问题。我只是写了简单的demo。代码如下:

页面中:
<div id="tabs" style="algin:center;height:420px;width:100%">
   <div id="tab1" style="algin:center;height:420px;width:100%"/>
   <div id="tab2" style="algin:center;height:420px;width:100%"/>
</div>

Ext.onReady(function()
{  
        var  tabDiv = Ext.get("tab4");
        var  tabPanel = new Ext.TabPanel({
        renderTo:'tabs',
        height:tabDiv.getComputedHeight()+70,
width:tabDiv.getComputedWidth(),
deferredRender:false,
        activeTab:0,
        plain:false,
    frame:true,
        defaults:{autoHeight: true},
        items:[
            {contentEl:'tab1',title: '日预警信息明细'},
      {contentEl:'tab2',title: '月预警信息明细'},
      {contentEl:'tab3',title: '季预警信息明细'},
      {contentEl:'tab4',title: '定量指标预警信息明细'},
            {contentEl:'tab5',title: '定性指标预警信息明细'}
        ]
    });
   
   
    form1 = new Ext.FormPanel({
        labelWidth: 250,
        frame:true,
        labelAlign: 'right',
        title: '日预警信息',
        bodyStyle:'padding:5px 5px 0',
        //defaultType: 'textfield',
        items: [{
                                     layout:'column',
                                     layoutOnTabChange :true,
                                     items:[{
                                          columnWidth:.45,
                                          layout: 'form',
                                          items: [{
                                               xtype:'textfield',
                                               fieldLabel: '客户名称',
                                               name: 'custName1',
                                               width:200,
                                               maxLength:32,
                       allowBlank:false,
                       regex:/^[\s| ]*([^\s ]+[\s|]*)+[\s|]*$/,
                       regexText:'客户名称不能为空!',
                       blankText :'请输入客户名称'
                                      }, {
                                              xtype:'textfield',
                                              fieldLabel: '所属机构',
                      name: 'textfield1',
                      allowBlank:false,
                      value: '北京分行',
                      maxLength:20,                
                      blankText :'所属机构',
                      width:200
                                     }]
                                     },{
                                        columnWidth:.45,
                                        layout: 'form',
                                        items: [{
                                              xtype:'textfield',
                                              fieldLabel: '处理状态',
                      name: 'textfield2',
                      allowBlank:false,
                      value: '未查看',
                      maxLength:20,                
                      blankText :'处理状态',
                      width:200
                                  },{
                                             xtype:'textfield',
                                             fieldLabel: '一日前结算账户贷方发生额',
                     name: 'textfield2',
                     allowBlank:false,
                     value:1000000,
                     maxLength:20,                
                     blankText :'一日前结算账户贷方发生额',
                     width:200
                                }]
                        }]
                  }],
                           buttons: [
        {
            text: '查看预警通知书',
            handler : function()
            {
            location.href='小企业预警通知书(客户经理).html';
            }
         },{
            text: '填写核查报告',
            handler : function()
            {
            location.href='小企业预警核查报告(客户经理).html';
            }
        }]
    });
    form1.render("tab1");
   
   
   
   form2 = new Ext.FormPanel({
        labelWidth: 250,
        frame:true,
        labelAlign: 'right',
        title: '月预警信息',
        bodyStyle:'padding:5px 5px 0',
        layoutOnTabChange :true,
        //defaultType: 'textfield',
        items: [{
                                     layout:'column',
                                     layoutOnTabChange :true,
                                     items:[{
                                          columnWidth:.45,
                                          layout: 'form',
                                          items: [{
                                               xtype:'textfield',
                                               fieldLabel: '客户名称',
                                               name: 'custName1',
                                               width:200,
                                               maxLength:32,
                       allowBlank:false,
                       regex:/^[\s| ]*([^\s ]+[\s|]*)+[\s|]*$/,
                       regexText:'客户名称不能为空!',
                       blankText :'请输入客户名称'
                                      }, {
                                              xtype:'textfield',
                                              fieldLabel: '所属机构',
                      name: 'textfield1',
                      allowBlank:false,
                      value: '北京分行',
                      maxLength:20,                
                      blankText :'所属机构',
                      width:200
                                     }]
                                     },{
                                        columnWidth:.45,
                                        layout: 'form',
                                        items: [{
                                              xtype:'textfield',
                                              fieldLabel: '处理状态',
                      name: 'textfield2',
                      allowBlank:false,
                      value: '未查看',
                      maxLength:20,                
                      blankText :'处理状态',
                      width:200
                                  },{
                                             xtype:'textfield',
                                             fieldLabel: '一日前结算账户贷方发生额',
                     name: 'textfield2',
                     allowBlank:false,
                     value:1000000,
                     maxLength:20,                
                     blankText :'一日前结算账户贷方发生额',
                     width:200
                                }]
                        }]
                  }],
buttons: [
     {
            text: '查看预警通知书',
            handler : function()
            {
            location.href='小企业预警通知书(客户经理).html';
            }
        },{
            text: '填写核查报告',
            handler : function()
            {
            location.href='小企业预警核查报告(客户经理).html';
            }
        }]
    });
    form2.render("tab2");
   })  
</script>


第一个tab显示分列是完全没有问题,第二个的代码同第一个完全一致,可是确不行。
如果把tab1删除掉tab2就可以显示两列
8 楼 jacky9692 2008-09-18  
不是bug
多研究下
可以解决的
7 楼 fengzhiliuxing 2008-06-18  
kayzhan 写道
vuens 写道
碰到一个不显示组件的问题,tabpanel如果只有一个tab时显示正常,但是如果打开2个以上tab,后面打开tab form里面的组件都不显示了,看来ext2 bug还不少。


呵呵!最近才算真的明白,其实很多自己认为的bug最终还是自己的代码的问题。所以,怀疑是ext问题还是不如找自己代码的问题。^_^



仁兄你说这话的时候最好多做做动态的添加panel的例子,你就明白了,不要自己在那清高!ok? 有些问题你不多做根本不知道问题所在!
6 楼 kayzhan 2008-05-31  
vuens 写道
碰到一个不显示组件的问题,tabpanel如果只有一个tab时显示正常,但是如果打开2个以上tab,后面打开tab form里面的组件都不显示了,看来ext2 bug还不少。


呵呵!最近才算真的明白,其实很多自己认为的bug最终还是自己的代码的问题。所以,怀疑是ext问题还是不如找自己代码的问题。^_^
5 楼 shjy.nicholas 2008-05-30  
jacky9692 写道
liminbai 写道
这种方式下   虽然第一次打开没问题。但是当tabpanel切换或者,关闭再次打开后就会不能显示。不知这个问题怎么解决

请问这个问题解决了么?
有没有什么方法解决多tabpanel切换显示问题啊??

不知道你是什么情况下碰到的多个tabpanel切换显示问题,希望可以贴点代码出来,这样便于帮你查找原因。
我在项目中使用了5个tabpanel,每个tabpanel中还嵌套了grid,未见显示问题。不知你是否按照我上面写的第2点中的show方法?
4 楼 jacky9692 2008-05-15  
liminbai 写道
这种方式下   虽然第一次打开没问题。但是当tabpanel切换或者,关闭再次打开后就会不能显示。不知这个问题怎么解决

请问这个问题解决了么?
有没有什么方法解决多tabpanel切换显示问题啊??
3 楼 teachman 2008-05-09  
id重复也会不显示组件
2 楼 vuens 2008-05-08  
碰到一个不显示组件的问题,tabpanel如果只有一个tab时显示正常,但是如果打开2个以上tab,后面打开tab form里面的组件都不显示了,看来ext2 bug还不少。
1 楼 liminbai 2008-05-07  
这种方式下   虽然第一次打开没问题。但是当tabpanel切换或者,关闭再次打开后就会不能显示。不知这个问题怎么解决

相关推荐

    EXT在火狐中显示字体小的解决方案

    这段代码会覆盖EXT组件和网格单元格内的字体大小,使其在火狐中变为14像素。`!important`标记确保了我们的样式优先级高于EXT库本身的样式。 如果问题仍然存在,可能需要进一步检查EXT的布局和组件配置,确保没有...

    UI组件(ext jquery ucren)

    综合上述信息,我们可以理解这三个技术都是用于构建用户界面的工具,EXT提供了一整套企业级的组件,jQuery UI则是在基础的jQuery上扩展的UI解决方案,而ucren可能是针对中国市场定制的UI组件库。开发者可以根据项目...

    ext上传组件,可以多文件上传

    SwfUploadPanel.js则是EXT组件的具体实现,它封装了SwfUpload.js的功能,使得开发者能够方便地在EXT环境中调用和配置上传组件。 example.php和upload_example.php是两个示例PHP文件,它们展示了如何在服务器端处理...

    ext grid json分页显示

    本例中提到的解决方案是利用DWR(Direct Web Remoting)和EXT.js库来实现。下面将详细阐述这个知识点。 EXT.js是一个强大的JavaScript库,用于构建富客户端应用。EXT Grid是EXT.js库中的一个组件,它提供了数据表格...

    用Ext实现报表中的核心问题解决方案

    综上所述,使用Ext JS实现报表中的核心问题解决方案主要涉及到图表组件的定制化、X轴和Y轴注释的设置以及Y轴名称的垂直显示等方面。通过合理的配置和调整,可以有效地提升报表的可读性和用户体验。

    封装一个Ext消息提示框,显示几秒后自动消失

    封装 Ext 消息提示框,显示几秒后自动消失 本资源是关于封装一个 Ext 消息提示...本资源提供了一个封装 Ext 消息提示框的解决方案,实现了自动消失的功能。该资源的应用场景非常广泛,适合 Web 应用程序中的各种场景。

    ext扩展_Flash表单上传组件

    在本案例中,"Flash 表单上传组件"是 EXT 扩展中用于实现文件上传功能的一个特殊模块,它利用 Adobe Flash 技术来处理大文件上传和多文件同时上传,解决了传统 HTML 表单上传的限制。 1. **EXTJS 框架基础**:EXTJS...

    Ext中的tabpanel关闭后再打开不显示的问题

    ### Ext中的tabpanel关闭后再打开不显示的问题 在Ext框架中,`TabPanel`是一个非常重要的组件,用于实现页面中的多标签页功能。然而,在实际应用过程中可能会遇到一个常见问题:当某个标签页被关闭后,如果尝试重新...

    Ext下多tab的延迟加载问题.docx

    这个解决方案通过自定义一个名为`Ext.ux.tab.switchTabPanel`的扩展组件,实现了延迟加载的功能。下面将详细解析这个组件的工作原理: 1. 首先,组件定义了一个数组`tabItems`,用于存储每个标签页的基本配置,如...

    文件批量上传组件(Ext3.3和swfupload)

    由于Flash在浏览器中的广泛支持,Swfupload在过去是实现多文件上传的流行解决方案。在我们的组件中,Swfupload可能是负责实际文件选取和上传的部分,它能处理文件选择事件,将文件数据发送到服务器,并更新进度条...

    ext里可以选择年月日时分秒的控件

    压缩包中的"CalendarLite"可能是一个简化版的日历组件,它可能提供了一个轻量级的解决方案来实现类似的功能。使用这个组件时,你需要按照其提供的API和文档进行集成和定制。 总的来说,EXT的时间控件提供了一种直观...

    ext可视化开发软件

    `Readme`文件会解释如何安装、运行以及可能遇到的问题和解决方案,而`license.txt`则规定了软件的使用权限和限制。了解这些内容对于合法和正确地使用软件至关重要。 `wb`可能是这个可视化开发软件的工作区文件或可...

    ext 下拉菜单。(不要下,不能用)

    在EXT JS库中,下拉菜单(Dropdown Menu)是一种常见的组件,用于提供多个选项供用户选择。EXT JS是一个强大的JavaScript库,专为构建富...同时,EXT JS社区和官方文档是很好的参考资料,可以提供帮助和解决方案。

    删除shell360ext.dll的最佳解决方法

    本文将详细介绍如何安全有效地删除shell360ext.dll及其可能引发的问题和解决方案。 首先,我们需要理解为什么需要删除shell360ext.dll。这可能有以下几个原因: 1. 软件冲突:与其他应用程序的组件发生冲突,导致...

    ext 实例集

    总的来说,"EXT实例集"是一个学习和参考EXT开发的宝贵资源,无论你是想了解EXT的基本用法,还是寻求特定问题的解决方案,都可以在这个实例集中找到启示。通过深入研究和实践这些示例,你将能够更好地掌握EXT框架,...

    EXT 未指明错误---解决方案备份

    在本例中,博主hanpang8983分享了有关此问题的博客文章,这可能提供了额外的解决方案或者思路。 6. **单元测试和集成测试**:编写测试用例以覆盖可能出错的代码路径,确保修复后的问题不再复现。通过自动化测试工具...

    ie9不支持ext对象的问题

    ### 解决方案:针对IE9的Ext JS兼容性优化 #### 1. **Polyfills和Shims** 代码片段中展示了一种解决方案——通过polyfill来增强IE9的功能。Polyfill是一种脚本,用于为旧版浏览器提供新特性或功能。在给定的代码中...

    EXT学习心得,ext

    ### EXT学习心得与关键知识点详解 #### 布局Center的重要性 在EXT框架中,`layout: 'center'`是一个非常关键的配置属性...无论是布局管理、数据网格操作、下拉框事件还是表单验证,EXT都提供了灵活而强大的解决方案。

    ext整理 ext整理 ext整理

    总的来说,EXT JS提供了一套完整的解决方案,使开发者能够构建功能强大、交互性强的Web应用。通过学习EXT的核心概念、组件、数据绑定和布局管理,以及利用各种扩展和资源,开发者可以极大地提升Web开发效率和应用...

Global site tag (gtag.js) - Google Analytics