我正在使用此link from Oleg和Demo来创建上下文菜单。有没有办法将一些动态值传递给除rowId之外的每一行。可能是一种方法是为每一行设置隐藏值并获取那些隐藏的列值但不确定如何实现此功能。感谢您的任何帮助或建议..
loadComplete: function(data) {
// Fix the Grid Width...
fixGridWidth($("#grid"));
// Context Menu
$("tr.jqgrow", this).contextMenu('contextMenu', {
bindings: {
'abc1': function(trigger) {
// would like to pass some custom values
},
'abc2': function(trigger) {
// open a link in new window using a hyperlink
},
'abc3': function(trigger) {
// custom logic
}
},
onContextMenu : function(event, menu) {
//var rowId = $(event.target).parent("tr").attr("id");
//var grid = $("#grid");
//grid.setSelection(rowId);
//return true;
}
});
答案 0 :(得分:2)
您可以使用已trigger
初始化为rowid的id
参数。因此,您可以使用getCell
或getRowData
。例如,abc1
方法可以类似于以下
loadComplete: function () {
var $this = $(this); // it will be the same like $("#grid")
$("tr.jqgrow", this).contextMenu('contextMenu', {
bindings: {
abc1: function(trigger) {
var rowData = $(this).jqGrid('getRowData', trigger.id);
// now you can access any data from the row including
// hidden columns with the syntax: rowData.colName
// where colName in the value of 'name' property of
// the column
},
...
},
onContextMenu : function(event, menu) {
...
},
// next settings
menuStyle: {
backgroundColor: '#fcfdfd',
border: '1px solid #a6c9e2',
maxWidth: '600px', // to be sure
width: '100%' // to have good width of the menu
},
itemHoverStyle: {
border: '1px solid #79b7e7',
color: '#1d5987',
backgroundColor: '#d0e5f5'
}
});
请参阅here另一个使用menuStyle
和itemHoverStyle
的演示,它可以提高上下文菜单的可见性。该演示来自我最近发布的the bug request。