我在一个页面上有两个jqgrids。这两个应该有上下文菜单。如果我有两个不同的上下文菜单,可以说是'myMenu1'和'myMenu2'。但我想只有一个上下文菜单,我想将它用于两个网格,我实际上从link from oleg获取了参考。请建议我怎样才能实现?
<div class="contextMenu" id="myMenu1" style="display:none">
<ul style="width: 200px">
<li id="edit">
<span class="ui-icon ui-icon-pencil" style="float:left"></span>
<span style="font-size:11px; font-family:Verdana">Edit Row</span>
</li>
<li id="del">
<span class="ui-icon ui-icon-trash" style="float:left"></span>
<span style="font-size:11px; font-family:Verdana">Delete Row</span>
</li>
</ul>
</div>
我正在做的绑定如下所示。
loadComplete: function() {
$("tr.jqgrow", this).contextMenu('myMenu1', {
bindings: {
'edit': function(trigger) {
if (trigger.id && trigger.id !== lastSelection) {
grid_location.restoreRow(lastSelection);
grid_location.editRow(trigger.id, true);
lastSelection = trigger.id;
}
},
'del': function(trigger) {
if ($('#del').hasClass('ui-state-disabled') === false) {
// disabled item can do be choosed
if (trigger.id && trigger.id !== lastSelection) {
grid_location.restoreRow(lastSelection);
//grid.editRow(trigger.id, true);
//lastSelection = trigger.id;
}
grid_location.delGridRow(trigger.id, delSettings);
}
}
},
onContextMenu: function(event/*, menu*/) {
var rowId = $(event.target).closest("tr.jqgrow").attr("id");
//grid.setSelection(rowId);
return true;
}
});
}
答案 0 :(得分:0)
我认为$(event.target).closest("table")
是对当前jqgrid的引用,如果当然没有子网格。
答案 1 :(得分:0)
我为本地数据解决了这个问题,我在这里发布了整个代码。唯一的问题是,如果两个网格中类型为date的列具有相同的名称(或索引),则日期选择器不会选择日期。所以为此我使用了不同的名称(inv_date和invdate),但在服务器端数据的情况下,我仍然感到困惑。
onContextMenu: function(event/*, menu*/) {
/*
In this line we will be specifying on which grid the context menu has to perform
and this variable 'grid' has to be used in the 'onclickSubmitLocal' function.
*/
grid = $("#currnt_grid");
var rowId = $(event.target).closest("tr.jqgrow").attr("id");
return true;
}