我在onRightClick事件中向jqGrid添加上下文菜单时遇到了困难。右键单击一个单元格后,我想从onRightClickRow事件中获取rowid,iRow和iCol值。
但是,我遇到的问题是,当我第一次右键单击网格中的单元格时,不会出现上下文菜单。第二次我右键单击一个单元格,显示上下文菜单,但rowid,iRow和iCol值都是右键单击的第一个单元格。因此,rowid,iRow和iCol永远不会与右键单击的单元格匹配。
对于上下文菜单,我使用的是jquery.contextmenu.r2.js
这是我拥有的jqGrid代码。
jQuery("#list").jqGrid({
url:urlPath,
datatype:"json",
mtype:'GET',
jsonReader: {
root: function (obj) { return obj.result; },
id: dataID,
repeatitems: false,
page: function(obj) { return 1; },
total: function(obj) { return 1; },
records: function(obj) { return obj.result.length; }
},
colNames: columnNames,
colModel: columnModel,
onRightClickRow: function (rowid, iRow, iCol, e) {
jQuery("#list").contextMenu('rightClickMenu', {
bindings: {
'DisplayiRow': function(t) {
alert('DisplayiRow: ' + iRow);
},
'DisplayiCol': function(t) {
alert('DisplayiCol: ' + iRow);
}
}
})
},
scroll:1,
headertitles: true,
pager: '#pager',
shrinkToFit: false,
autowidth: true,
height: gridHeight,
sortable: true,
sortorder: 'desc',
viewsortcols:[true,'vertical', true],
viewrecords: true,
gridview: true,
loadonce: true
});
jQuery("#list").jqGrid('filterToolbar', {searchOnEnter:false,defaultSearch:'cn'});
});
HTML
<div class="contextMenu" id="rightClickMenu" style="display:none">
<ul>
<li id="DisplayiRow">
DisplayiRow</li>
<li id="DisplayiCol">
DisplayiCol</li>
</ul>
</div>
有没有办法在右键单击上下文菜单中添加onRightClickRow事件,以便我可以获取单击的单元格的rowid,iRow和iCol值?
答案 0 :(得分:4)
查看包含the old answer的the demo。我希望它有助于解决您的问题。我确信contextMenu
内loadComplete
的绑定不是解决问题的唯一方法,但它的效果非常好。
此外,我建议您使用jqGrid源的plugins
子目录中的上下文菜单插件。这是用jqGrid测试的版本,我觉得使用另一个版本是没有意义的。