ExtJs TabPanel 中嵌入表单和表格, 页面初始化时能够正常显示, 但是切换选项卡后没有显示, 求助?

发布于 2022-09-06 23:31:41 字数 10281 浏览 43 评论 0

功能需求如下:
ExtJs(v3.1) 框架, TabPanel 需要 2 个 tab, 每个 tab 中分别嵌入一个表单(FormPanel)和一个表格(GridPanel), 表单用于查询条件, 表格用于数据展示, 页面初始化时每个 tab中的表单和表格都能够正常显示出来, 但是切换 tab 选项卡后, 表格没有显示, 表单上面的查询按钮也没有显示, 只剩下表单的输入框可以正常显示, 希望遇到过类似问题的朋友帮忙一下!

下面给出 tab1 的表单和表格的代码

// 表格
var draft_qForm = new Ext.form.FormPanel({
    id:'draft_qForm',
    region : 'north',
    margins : '3 3 3 3',
    title : '<span class="commoncss">查询条件<span>',
    collapsible : false,
    border : false,
    labelWidth : 50, // 标签宽度
    labelAlign : 'right', // 标签对齐方式
    bodyStyle : 'padding:3 5 0', // 表单元素和表单面板的边距
    buttonAlign : 'center',
    height : 130,
    items : [{
        layout : 'column',
        border : false,
        items : [{
                    columnWidth : .30,
                    layout : 'form',
                    labelWidth : 80, 
                    defaultType : 'textfield',
                    border : false,
                    items : [{
                                fieldLabel : '姓名', 
                                id : 'name',
                                name : 'username', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            },{
                                fieldLabel : '客服', 
                                id : 'service',
                                name : 'service', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            }]
                },{
                    columnWidth : .30,
                    layout : 'form',
                    labelWidth : 80, 
                    defaultType : 'textfield',
                    border : false,
                    items : [{
                                fieldLabel : '手机号', 
                                id : 'account',
                                name : 'account', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            },{
                                fieldLabel : '业务员', 
                                id : 'salesmanname',
                                name : 'salesmanname', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            }]
                },{
                    columnWidth : .30,
                    layout : 'form',
                    labelWidth : 80, 
                    defaultType : 'textfield',
                    border : false,
                    items : [{
                                fieldLabel : '公司', 
                                id : 'companyname',
                                name : 'companyname', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            },{
                                fieldLabel : '主帐号', 
                                id : 'mainuser',
                                name : 'mainuser', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            }]
                },{
                    columnWidth : .30,
                    layout : 'form',
                    labelWidth : 80, 
                    defaultType : 'textfield',
                    border : false,
                    items : []
                }]
                
    }],
    buttons : [{
        text : '查询',
        iconCls : 'previewIcon',
        handler : function() {
            queryExtuser();
        }
    }, {
        text : '重置',
        iconCls : 'tbar_synchronizeIcon',
        handler : function() {
            draft_qForm.getForm().reset();
        }
    }]
});
// 表格实例
var draft_grid = new Ext.grid.GridPanel({
    title : '<span class="commoncss">订舱单列表</span>', // 表格面板标题,默认为粗体,我不喜欢粗体,这里设置样式将其格式为正常字体
    height : document.body.clientHeight/2 * 1.5,
    id : 'id_grid_ddlb',
    autoScroll : true,
    frame : true,
    region : 'center', // 和VIEWPORT布局模型对应,充当center区域布局
    margins : '3 3 3 3',
    store : draft_store, // 数据存储
    stripeRows : true, // 斑马线
    cm : draft_sm, // 列模型
    tbar : draft_tbar, // 表格工具栏
    bbar : draft_bbar,// 分页工具栏
    viewConfig : {
        forceFit:true 
    },
    loadMask : {
        msg : '...正在加载表格数据,请稍等...'
    }
});

下面给出 tab2 的表单和表格的代码

// 表单
var public_qForm = new Ext.form.FormPanel({
    id:'public_qForm',
    region : 'north',
    margins : '3 3 3 3',
    title : '<span class="commoncss">查询条件<span>',
    collapsible : false,
    border : false,
    labelWidth : 50, // 标签宽度
    labelAlign : 'right', // 标签对齐方式
    bodyStyle : 'padding:3 5 0', // 表单元素和表单面板的边距
    buttonAlign : 'center',
    height : 130,
    items : [{
        layout : 'column',
        border : false,
        items : [{
                    columnWidth : .30,
                    layout : 'form',
                    labelWidth : 80, 
                    defaultType : 'textfield',
                    border : false,
                    items : [{
                                fieldLabel : '姓名', 
                                id : 'public_name',
                                name : 'username', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            },{
                                fieldLabel : '客服', 
                                id : 'public_service',
                                name : 'service', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            }]
                },{
                    columnWidth : .30,
                    layout : 'form',
                    labelWidth : 80, 
                    defaultType : 'textfield',
                    border : false,
                    items : [{
                                fieldLabel : '手机号', 
                                id : 'public_account',
                                name : 'account', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            },{
                                fieldLabel : '业务员', 
                                id : 'public_salesmanname',
                                name : 'salesmanname', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            }]
                },{
                    columnWidth : .30,
                    layout : 'form',
                    labelWidth : 80, 
                    defaultType : 'textfield',
                    border : false,
                    items : [{
                                fieldLabel : '公司', 
                                id : 'public_companyname',
                                name : 'companyname', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            },{
                                fieldLabel : '主帐号', 
                                id : 'public_mainuser',
                                name : 'mainuser', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            }]
                },{
                    columnWidth : .30,
                    layout : 'form',
                    labelWidth : 80, 
                    defaultType : 'textfield',
                    border : false,
                    items : []
                }]
                
    }],
    buttons : [{
        text : '查询',
        iconCls : 'previewIcon',
        handler : function() {
            //queryExtuser();
        }
    }, {
        text : '重置',
        iconCls : 'tbar_synchronizeIcon',
        handler : function() {
            public_qForm.getForm().reset();
        }
    }]
});
// 表格实例
var public_grid = new Ext.grid.GridPanel({
    title : '<span class="commoncss">订舱单列表</span>', // 表格面板标题,默认为粗体,我不喜欢粗体,这里设置样式将其格式为正常字体
    height : document.body.clientHeight/2 * 1.5,
    id : 'id_public_grid',
    autoScroll : true,
    frame : true,
    region : 'center', // 和VIEWPORT布局模型对应,充当center区域布局
    margins : '3 3 3 3',
    store : public_store, // 数据存储
    stripeRows : true, // 斑马线
    cm : public_sm, // 列模型
    tbar : public_tbar, // 表格工具栏
    bbar : public_bbar,// 分页工具栏
    viewConfig : {
    },
    loadMask : {
        msg : '...正在加载表格数据,请稍等...'
    }
});

下面是 tabPanel 的代码

var draftTab = new Ext.Panel({
           id : "id_booking_draft",
        title : '<img src="/resource/image/ext/image.png" align="top" class=""> 草 稿',
        items:[draft_qForm,draft_grid]
    });
    
   var publicTab = new Ext.Panel({
           id : "id_booking_public",
        title : '<img src="/resource/image/ext/layout_content.png" align="top" class=""> 发 布 中',
        items:[public_qForm, public_grid]
    });
    
    
    var tabPanel = new Ext.TabPanel({  
         renderTo: "id_tabpanel_draft", 
         activeTab: 0, 
         plain : true,  
         //border: false,
         //deferredRender: false,
         //layoutOnTabChange : true,
         //region : "center", 
         items:[draftTab,publicTab]
     }); 

下面是初始化时的图片和切换选项卡后的图片
图片描述

图片描述

说明:
1 通过浏览器的开发人员工具来查看, 没有报错.
2 通过开发人员工具来查看, 切换选项卡后可以查看到表格元素还存在.
3 ExtJs 版本号是 3.1

遇到过类似问题的朋友请帮忙解决下, 兄弟我先多谢了!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

囍笑 2022-09-13 23:31:41

问题已经解决, 没有显示出来的原因是, tab 的高度发生变化, 导致tab里面的元素没有显示完整, 我处理的办法是, 在切换选项卡的时候, 重新设置 tab 的高度就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文