【发布时间】:2011-11-10 20:29:33
【问题描述】:
我在 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 值?
【问题讨论】: