オプションでjqGrid 4.3.2を使用していinlineNav
ます。グリッド上のすべての編集は、 および を使用してローカルで行われloadonce: true
ますclientArray
。ユーザーが編集を終了したら、フォームの保存ボタンをクリックすると、グリッド全体がサーバーにポストされます。ほとんどの場合、これはうまく機能しますが、私は奇妙なことに遭遇しました。ユーザーが新しい行を追加し、Enter キーを押して編集を確認するか、新しく追加された行の選択を解除する前に [保存] ボタンをクリックすると、インライン ナビゲーターの追加ボタンは、saveRow
投稿および再読み込みの前に呼び出した後でも無効のままになります。電話の後に試してみましresetSelection
たが、どちらも機能しません。私の保存コード:restoreRow
saveRow
$("#submitButton").click(function () {
$("#theGrid").jqGrid('saveRow', $("#selectedRowId").val(), false, 'clientArray');
if (!ValidateGridData())
return false;
var rowData = $("#theGrid").jqGrid('getRowData');
var dataToSend = JSON.stringify(rowData);
$.ajax({
url: '@Url.Action("UpdateGridData")',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: dataToSend,
dataType: 'json',
async: false,
success: function (data, textStatus, jqXHR) {
$("#theGrid").jqGrid('setGridParam', { datatype: 'json' });
$("#theGrid").trigger('reloadGrid');
},
error: function (jqXHR, textStatus, errorThrown) {
alert('Error saving data: ' + textStatus + " " + errorThrown);
}
});
return true;
});
新しい行が保存され、ユーザーがさらに行を追加できることをインラインナビゲーターに納得させる方法はありますか?