0

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

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

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);
};
4

2 回答 2

1

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

于 2012-06-05T21:44:41.690 回答
0

Guess you can over write the view, inside the 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)
于 2012-06-06T07:59:02.267 回答