溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ExtJS5.1.2 實現雙表頭動態列

發布時間:2020-07-23 13:07:21 來源:網絡 閱讀:455 作者:水木童 欄目:web開發

需求:用ExtJS5.1.2制作以下Grid效果(其中列3是動態的):
ExtJS3的實現方式和5不一樣。
ExtJS5.1.2 實現雙表頭動態列

基本代碼:
為了實現雙表頭,需要嵌套columns。

{
    id : 'grid1',
    xtype : 'grid'
    columns : [{
            header : '列1',
            xtype : 'gridcolumn'
        }, {
            header : '列2',
            xtype : 'gridcolumn'
        }, {
            header : '列3',
            xtype : 'gridcolumn',
            columns : [{
                    header : '列3-1',
                    xtype : 'gridcolumn'
                } , {
                    header : '列3-2',
                    xtype : 'gridcolumn'
                }, {
                    header : '列3-3',
                    xtype : 'gridcolumn'
                }]
        }]
}

解決思路:

  1. 先顯示所有動態列,然后隱藏。
    --> 失敗,使用Ext.getCmp(id).hide()或者show()會導致頁面無響應。這個方法在單表頭的時候沒有問題。

  2. 先全部按單列(不嵌套columns)顯示,然后使用hide()隱藏不需要的列,再合并第一行表頭。
    --> 目前沒有找到實現方法。

  3. 動態追加列3。
    --> 使用columnManager.secondHeaderCt.insert(指定位置, column數組)或者add(column數組)。
    代碼樣本:
    var columnList = [];
    columns.push({
        header : '列3-1',
        xtype : 'gridcolumn'
    }, {
        header : '列3-2',
        xtype : 'gridcolumn'
    }, {
        header : '列3-3',
        xtype : 'gridcolumn'
    });
    var grid = Ext.getCmp('grid1');
    grid.columnManager.secondHeaderCt.add(
        xtype : 'gridcolumn',
        header : '列3',
        columns : columnList
    );

ExtJS并不建議使用Ext.grid.ColumnManager,官方API也找不到grid.columnManager.secondHeaderCt,可以通過Chrome/F12/Console/輸入“Ext.getCmp('grid').columnManager”找到secondHeaderCt。
ExtJS5.1.2 實現雙表頭動態列

ExtJS5.1.2 實現雙表頭動態列

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女