我使用上下文菜单允许用户在JQGrid中对单元格执行不同的操作:
function showContextMenu(rowId)
{
menu1 = [ {'View':function(menuItem,menu) { alert("You clicked View!"); } },
$.contextMenu.separator,
{'Upload':function(menuItem,menu) { alert("You clicked Upload!"); }},
$.contextMenu.separator,
{'Remove':function(menuItem,menu) { alert("You clicked Remove!"); }}
];
$('#' + rowId).contextMenu(menu1,{theme:'vista'});
事件
onRightClickRow : function(rowid,iRow,iCol,e){
showContextMenu(rowid,iCol);
}
它有效但笨拙:需要双击右键的问题 - 因为在第一次点击时(如果我理解正确) - 绑定功能并且只在第二个 - 显示菜单上。 我试着用
gridComplete : function {
var dataIds = $('#list').jqGrid('getDataIDs');
for (var i = 0;i < dataIds.length; i++) {
showContextMenu(dataIds[i]);
}
但在这种情况下,我无法收到iCol。什么解决方案可以? 感谢。
答案 0 :(得分:1)
您必须指定行和单元格的值。
var dataIds = jQuery('#list').jqGrid('getDataIDs');
var countCols = jQuery('#list').jqGrid('getGridParam', 'colNames').length;
for (var i = 0;i < dataIds.length ; i++) {
for (j=0;j<= countCols;j++)
showContextMenu(dataIds[i],i+1,j);
}
并更改功能
function showContextMenu(rowid,iRow,iCol){
menu1 = [ {'Yahoooo!':function(menuItem,menu) {
alert(rowid+" — "+iRow+" — "+iCol);
} }];
jQuery("tr#"+rowid+" td").eq(iCol).contextMenu(menu1,{theme:'osx'});};