在我的一个项目中,有一个aspx网格。我必须用ExtJS5网格代替它。它具有右键单击的功能。为此,使用了第三方工具。我知道我们可以在ExtJS中使用上下文菜单来实现这一点,但是客户端坚持使用第三方上下文菜单。它的工作方式如下:
每当创建网格时,都会向网格的每一行添加属性oncontextmenu="recordID=12321“,其中12321只是一个示例。每一排都不一样。
我的要求是将这个属性添加到网格的每一行。我们如何在ExtJS5中实现这一点?"recordID“可与商店一起使用。
发布于 2014-10-02 12:15:37
要做到这一点,最简单的方法是改变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/
https://stackoverflow.com/questions/26125102
复制相似问题