onRightClickイベント内のjqGridにコンテキストメニューを追加することができません。セルを右クリックした後、onRightClickRowイベントからrowid、iRow、およびiColの値を取得したいと思います。jqGridのonRightClickRowにコンテキストメニューを追加する
しかし、私が経験している問題は、グリッド内のセルを右クリックするとコンテキストメニューが表示されないことです。 2回目に、コンテキストメニューが表示されたセルを右クリックしますが、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>
は、私がいたセルのROWID、iRow、およびICOL値を得ることができるようにonRightClickRowイベントに右クリックしてコンテキストメニューに追加する方法がありますですクリックした?
ありがとうございました。あなたが参照した投稿を見てきましたが、少し役に立ちましたが、iRowとiColの値をonRightClickRowが返すROWIDとともに取得できるかどうかはわかりません。 eq(ColunmNumber) – Abe
@Abe:私はあなたの前にあなたが書いたことを書いています。唯一の実装ではありません。なぜあなたが 'iRow'と' iCol'値を必要とするのか分かりません。 '$("# "+ trigger.id)[0] .rowIndex'に対応するDOM要素の' rowIndex'プロパティとして取得できる 'iRow'の値です。あなたは行の異なる細胞の異なるcontexmenusを持っている必要がありますか? – Oleg
@Abe:さらに、 'onContextMenu'ハンドラの中で' event.target'を調べることができます。それは ''要素のDOMです。 'iCol'を' $ .jgrid.getCellIndex(event.target) 'として得ることができます。 – Oleg