将非数据绑定行添加到网格

时间:2012-06-05 14:51:39

标签: extjs extjs2

这是过去的一个爆炸,但无论如何......

我有一个网格,从商店加载,有行选择模型,还有一些按钮等......

MyGrid = function(config){
    var config = Ext.apply({},config,{
    cm:'rowselection',
    store:new Ext.data.Store({
        ajax:true,
        url:'someUrl'
    })//thumbsucked config, this is prolly totally wrong
    });

    MyGrid.superclass.constructor.call(this, config);
}
Ext.extend(MyGrid,Extx.grid.GridPanel)

现在我的问题是......

如何在不将实际添加到商店的情况下向此网格添加行?

我想这样做,所以我可以违反列模型(例如,我想添加另一行,其中包含一些文本信息,以及一个超链接,不适合我的4列宽网格)

我可以将其作为数据视图或其他内容访问吗?

this.store.on('load',function(store,records,e){
        doWhat()
        //debugger;
    },this);
};

2 个答案:

答案 0 :(得分:1)

Iamagonnasay没有:) 网格具有明确定义的列模型,并且视图绑定到商店 - 确切地说,商店中的数据。所以......不,你不能在不适合网格中定义的列的网格中插入行。 您可以做的是展开单个行的行体,并在行的展开部分中插入一些随机HTML。查找RowBody插件。

答案 1 :(得分:0)

猜猜你可以在Dom里面写一下这个视图。

this.store.on('load',function(store,records,e){
        rowTpl = new Ext.Template(
            '<div class="x-grid3-row x-grid3-row-last">',
                '<table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">',
                    '<tbody><tr>{cellTpl}</tr></tbody>',
                '</table>',
            '</div>'
        );

        cellTpl = new Ext.Template(
            '<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}">',
            '<div class="x-grid3-cell-inner x-grid3-col-{id}"> Hello World</div>',
            "</td>"
        );
        cellTpl.compile();

        html=rowTpl.apply({
            tstyle: 'width:' + this.view.getTotalWidth() + ';',
            cellTpl: cellTpl.compile().html
        });
        Ext.DomHelper.insertHtml('beforeEnd', this.view.mainBody.dom, html);
    },this)