問題は、現在のPageの10個のレコードを持つリンクをクリックすると編集ダイアログが表示されることです。しかし、2番目のページに移動すると、ダイアログ。jqGridのすべてのページに対してeditGridRowメソッドを有効にする
colModel:{ name: "FirstName", index: "FirstName", width: 100, sortable: true, editable: true, formatter: GetRow, unformat: GetCellValue },
function GetRow(cellvalue, options, rowObject) {
return "<a href='#' class='GetLink'>" + cellvalue + "</a>";
}
$('.GetLink').click(function() {
var row = $('#grid').jqGrid('getGridParam', 'selrow');
if (row) {
$('#grid').jqGrid('editGridRow', row, { recreateForm: true, closeAfterEdit: true, closeOnEscape: true, reloadAfterSubmit: false,});
}
else {
alert("Select the row you want to edit");
}
});
あなたの[前の質問](http://stackoverflow.com/a/40652291/315935)で私の答えをお読みください。 **現在、既存の** 'a.GetLink'にリンクを登録するので、**' $( '。GetLink').Click'を使用するべきです。ユーザーが2番目のページに移動したり、いくつかの列でソートすると、グリッド本体は**再作成されます**。前に作成されたすべての 'a.GetLink'は削除され、新しい' a.GetLink'はイベントハンドラを持たないでしょう。問題を解決するには '$( '。GetLink').Click'を' loadComplete'の中で動かすことができますが、代わりに 'beforeSelectRow'を使うことをお勧めします。 – Oleg
@Oleg $( '。GetLink')を使用する方法を教えてください。loadcompleteイベントまたはbeforeSelectRowをクリックしてください... 私はこれらのイベントを認識していません.. – Supreeth
フルコードを追加すると、 JSFiddleでデモを作成した場合など、問題を示すコードを修正します。 – Oleg