向ExtJS5 Grid Panel添加其他属性

时间:2014-09-30 15:55:45

标签: extjs extjs4.2 extjs5

在我的一个项目中有一个aspx网格。我必须用ExtJS5网格替换它。它具有右键单击功能。为此,使用第三方工具。我知道我们可以使用ExtJS中的上下文菜单来做到这一点,但客户端坚持使用第三方上下文菜单。它的工作原理如下:

每当创建网格时,属性 oncontextmenu =" recordID = 12321" 将添加到网格的每一行,其中12321只是一个样本。它对每一行都是不同的。

我的要求是将此属性添加到网格的每一行。我们怎样才能在ExtJS5中实现这一目标? " recordID"可以在商店购买。

1 个答案:

答案 0 :(得分:0)

IMO最简单的方法是在视图中更改rowTpl

grid = Ext.create('Ext.grid.Panel', {
    [...],
    viewConfig: {
        rowTpl: [
            '{%',
                'var dataRowCls = values.recordIndex === -1 ? "" : " ' + Ext.baseCSSPrefix + 'grid-row";',
            '%}',
            '<tr oncontextmenu="recordID={[values.record.get(\'field1\')]}" class="{[values.rowClasses.join(" ")]} {[dataRowCls]}" {rowAttr:attributes} {ariaRowAttr}>',
                '<tpl for="columns">' +
                    '{%',
                        'parent.view.renderCell(values, parent.record, parent.recordIndex, parent.rowIndex, xindex - 1, out, parent)',
                     '%}',
                '</tpl>',
            '</tr>'
        ]
    }
});

或者可以在列td函数中的renderer上设置任何属性,但是您需要为每列执行此操作。

工作样本:http://jsfiddle.net/dhw3w81v/1/