在我的一个项目中有一个aspx网格。我必须用ExtJS5网格替换它。它具有右键单击功能。为此,使用第三方工具。我知道我们可以使用ExtJS中的上下文菜单来做到这一点,但客户端坚持使用第三方上下文菜单。它的工作原理如下:
每当创建网格时,属性 oncontextmenu =" recordID = 12321" 将添加到网格的每一行,其中12321只是一个样本。它对每一行都是不同的。
我的要求是将此属性添加到网格的每一行。我们怎样才能在ExtJS5中实现这一目标? " recordID"可以在商店购买。
答案 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
上设置任何属性,但是您需要为每列执行此操作。