extjs grid如何动态增加记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了extjs grid如何动态增加记录相关的知识,希望对你有一定的参考价值。

参考技术A grid 中可以设置store,store重新加载了,记录不就可以动态增加了.追问

可是这样相当于把所有数据重新加载了啊

追答

那你需要的是什么效果呢?

ExtJS 2.2.1 实现双表头动态列

  1. 默认所有列(假设列3最大3列,动态显示),使用headerRowsEx中的rowspan实现双表头,第一层表头的width也必须要设置正确。
  2. 使用"grid.getColumnModel().setHidden"即可实现列的隐藏,也不需要动态设置colspan。
{
    xtype : ‘filtergrid‘,
    id : ‘grid1‘,
    cm : new Ext.grid.ColumnModel({
        columns : [{
            header: ‘列1‘,
            id: ‘col1‘,
            dataIndex: ‘col1‘,
            width : 100
        }, {
            header: ‘列2‘,
            id: ‘col2‘,
            dataIndex: ‘col2‘,
            width : 100
        }, {
            header: ‘列3-1‘,
            id: ‘col31‘,
            dataIndex: ‘col31‘,
            width : 100
        }, {
            header: ‘列3-2‘,
            id: ‘col32‘,
            dataIndex: ‘col22‘,
            width : 100
        }, {
            header: ‘列3-3‘,
            id: ‘col33‘,
            dataIndex: ‘col33‘,
            width : 100
        }],
        headerRowsEx : [[{
            dataIndex : ‘col1‘,
            rowspan : 2
        }, {
            dataIndex : ‘col2‘,
            rowspan : 2 
        }, {
            id : ‘col3Header‘,
            header : ‘列3‘,
            colspan : 3,
            width : 300
        }], [{
            header : ‘列1‘
        }, {
            header : ‘列2‘
        }, {
            dataIndex : ‘col31‘,
            columnIdRef : [‘col3Header‘]
        }, {
            dataIndex : ‘col32‘,
            columnIdRef : [‘col3Header‘]
        }, {
            dataIndex : ‘col33‘,
            columnIdRef : [‘col3Header‘]
        }]]
    }),
    filters : new Ext.ux.GridFilters({
        filters : [{
            ......
        }, {
            ......
        }]
    }),
    store : ...,
    listeners : ...
},

initialize : function(param) {
    var grid = Ext.getCmp(‘grid1‘);
    var cm = grid.getColumnModel();
    cm.setHidden(cm.findColumnIndex(‘col33‘), true);

    //  查找列的Index
    //cm.findColumnIndex(‘col33‘);
    // 单元格背景色设置
    // grid.getView().getCell(i, j).style.backgroundColor = "gray";
}

以上是关于extjs grid如何动态增加记录的主要内容,如果未能解决你的问题,请参考以下文章

extjs grid 中 如何根据数据动态给checkbox赋值

extjs grid 中 如何根据数据动态给checkbox赋值

ExtJS 动态设置Grid列是否可编辑

ExtJS5.1.2 实现双表头动态列

ExtJs4.x怎么去除grid动态加载数据的提示

如何在 extjs 网格中添加动态文本框