鍍金池/ 問答/Java  網(wǎng)絡(luò)安全  HTML/ ExtJs TabPanel 中嵌入表單和表格, 頁面初始化時能夠正常顯示,

ExtJs TabPanel 中嵌入表單和表格, 頁面初始化時能夠正常顯示, 但是切換選項卡后沒有顯示, 求助?

功能需求如下:
ExtJs(v3.1) 框架, TabPanel 需要 2 個 tab, 每個 tab 中分別嵌入一個表單(FormPanel)和一個表格(GridPanel), 表單用于查詢條件, 表格用于數(shù)據(jù)展示, 頁面初始化時每個 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, // 標(biāo)簽寬度
    labelAlign : 'right', // 標(biāo)簽對齊方式
    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 : '手機(jī)號', 
                                id : 'account',
                                name : 'account', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            },{
                                fieldLabel : '業(yè)務(wù)員', 
                                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>', // 表格面板標(biāo)題,默認(rèn)為粗體,我不喜歡粗體,這里設(shè)置樣式將其格式為正常字體
    height : document.body.clientHeight/2 * 1.5,
    id : 'id_grid_ddlb',
    autoScroll : true,
    frame : true,
    region : 'center', // 和VIEWPORT布局模型對應(yīng),充當(dāng)center區(qū)域布局
    margins : '3 3 3 3',
    store : draft_store, // 數(shù)據(jù)存儲
    stripeRows : true, // 斑馬線
    cm : draft_sm, // 列模型
    tbar : draft_tbar, // 表格工具欄
    bbar : draft_bbar,// 分頁工具欄
    viewConfig : {
        forceFit:true 
    },
    loadMask : {
        msg : '...正在加載表格數(shù)據(jù),請稍等...'
    }
});

下面給出 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, // 標(biāo)簽寬度
    labelAlign : 'right', // 標(biāo)簽對齊方式
    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 : '手機(jī)號', 
                                id : 'public_account',
                                name : 'account', 
                                maxLength : 50, 
                                anchor : '100%'
                                
                            },{
                                fieldLabel : '業(yè)務(wù)員', 
                                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>', // 表格面板標(biāo)題,默認(rèn)為粗體,我不喜歡粗體,這里設(shè)置樣式將其格式為正常字體
    height : document.body.clientHeight/2 * 1.5,
    id : 'id_public_grid',
    autoScroll : true,
    frame : true,
    region : 'center', // 和VIEWPORT布局模型對應(yīng),充當(dāng)center區(qū)域布局
    margins : '3 3 3 3',
    store : public_store, // 數(shù)據(jù)存儲
    stripeRows : true, // 斑馬線
    cm : public_sm, // 列模型
    tbar : public_tbar, // 表格工具欄
    bbar : public_bbar,// 分頁工具欄
    viewConfig : {
    },
    loadMask : {
        msg : '...正在加載表格數(shù)據(jù),請稍等...'
    }
});

下面是 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=""> 發(fā) 布 中',
        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 通過瀏覽器的開發(fā)人員工具來查看, 沒有報錯.
2 通過開發(fā)人員工具來查看, 切換選項卡后可以查看到表格元素還存在.
3 ExtJs 版本號是 3.1

遇到過類似問題的朋友請幫忙解決下, 兄弟我先多謝了!

回答
編輯回答
生性

問題已經(jīng)解決, 沒有顯示出來的原因是, tab 的高度發(fā)生變化, 導(dǎo)致tab里面的元素沒有顯示完整, 我處理的辦法是, 在切換選項卡的時候, 重新設(shè)置 tab 的高度就可以了

2017年12月8日 21:36