我使用jqGrid 4.3.2和inlineNav
選項。網格上的所有編輯均使用loadonce: true
和clientArray
在本地完成。用戶完成編輯後,他們單擊表單上的保存按鈕,並將整個網格發佈到服務器。這在很大程度上很有用,但我遇到了一個怪事。如果用戶添加新行,然後在點擊確認編輯或取消選擇新添加的行之前單擊保存按鈕,即使在發佈和重新加載之前調用saveRow
,內聯導航器上的添加按鈕仍然保持禁用狀態。我在saveRow
調用後嘗試過resetSelection
和restoreRow
,但這兩種都不起作用。我的保存代碼:jqGrid with inlineNav:有沒有辦法強制添加按鈕重新啓用?
$("#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;
});
有沒有一種方法可以說服內聯導航器保存新行,並且用戶可以添加更多行?
我只是朝着那條路走,除了在attr('class')'而不是'.removeClass'上使用了一個草率的'replace'。完美的作品。謝謝! –
@AJ:不客氣! – Oleg
Oleg,我一直在考慮你的關於不直接使用saveRow的額外評論。我正在使用'onSelectRow'來調用之前選擇的行上的'saveRow',類似於http://stackoverflow.com/q/2359011/27457中的代碼。「你不推薦使用這種方法嗎? –