在调用后端之前调用 aftersavefunc JQGrid
aftersavefunc JQGrid called before call to backend
我有一个带有自定义按钮的内联编辑的 jqgrid,如果保存不成功,我会尝试显示自定义消息或弹出窗口:
editurl: '@Url.Action("UpdateMatrixData")',
datatype: "json",
postData: {
sp: function () { return getFilter(); }
},
postData: {
StartDate: function () { return $("#StartDate").val(); },
EndDate: function () { return $('#EndDate').val(); },
},
gridComplete: function ()
{
var ids = jQuery("#evGrid").jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++)
{
var cl = ids[i];
be = "<input style='height:15px;width:15px;' title='Edit selected row' type='button' class='EditGridButton' onclick=\"jQuery('#evGrid').editRow('" + cl + "');\" />"
se = "<input style='height:15px;width:15px;' title='Save row' type='button' class='SaveButton' onclick=\"jQuery('#evGrid').saveRow('" + cl + "', '', '', '', reload());\" />" // dont Need to refesh grid after saving row - call reload function
ce = "<input style='height:15px;width:15px;' title='Cancel row editing' type='button' class='CancelButton' onclick=\"jQuery('#evGrid').restoreRow('" + cl + "');\" />";
jQuery("#evGrid").jqGrid('setRowData', ids[i], { act: be + se + ce });
}
},
function reload(rowid, response) {
alert(response)
$(this).jqGrid('setGridParam', { datatype: 'json' });
$(this).trigger('reloadGrid', [{ page: 1 }]);
}
但是响应为空?并且在调用 updateMatrixData 方法之前调用它?
updateMatrixDatareturnsJson(真)或Json(假)
return Json(isSucess);
你在使用
时的主要错误
onclick=\"jQuery('#evGrid').saveRow('" + cl + "', '', '', '', reload());\"
而不是
onclick=\"jQuery('#evGrid').saveRow('" + cl + "', '', '', '', reload);\"
reload
是回调函数,将由 jqGrid 调用。如果你使用 reload()
,那么你的代码调用 reload
并在 jqGrid 执行此操作之前调用空参数(jqGrid 根本不获取函数的引用并从 [= 返回 undefined
13=] 代替)。
我有一个带有自定义按钮的内联编辑的 jqgrid,如果保存不成功,我会尝试显示自定义消息或弹出窗口:
editurl: '@Url.Action("UpdateMatrixData")',
datatype: "json",
postData: {
sp: function () { return getFilter(); }
},
postData: {
StartDate: function () { return $("#StartDate").val(); },
EndDate: function () { return $('#EndDate').val(); },
},
gridComplete: function ()
{
var ids = jQuery("#evGrid").jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++)
{
var cl = ids[i];
be = "<input style='height:15px;width:15px;' title='Edit selected row' type='button' class='EditGridButton' onclick=\"jQuery('#evGrid').editRow('" + cl + "');\" />"
se = "<input style='height:15px;width:15px;' title='Save row' type='button' class='SaveButton' onclick=\"jQuery('#evGrid').saveRow('" + cl + "', '', '', '', reload());\" />" // dont Need to refesh grid after saving row - call reload function
ce = "<input style='height:15px;width:15px;' title='Cancel row editing' type='button' class='CancelButton' onclick=\"jQuery('#evGrid').restoreRow('" + cl + "');\" />";
jQuery("#evGrid").jqGrid('setRowData', ids[i], { act: be + se + ce });
}
},
function reload(rowid, response) {
alert(response)
$(this).jqGrid('setGridParam', { datatype: 'json' });
$(this).trigger('reloadGrid', [{ page: 1 }]);
}
但是响应为空?并且在调用 updateMatrixData 方法之前调用它?
updateMatrixDatareturnsJson(真)或Json(假)
return Json(isSucess);
你在使用
时的主要错误onclick=\"jQuery('#evGrid').saveRow('" + cl + "', '', '', '', reload());\"
而不是
onclick=\"jQuery('#evGrid').saveRow('" + cl + "', '', '', '', reload);\"
reload
是回调函数,将由 jqGrid 调用。如果你使用 reload()
,那么你的代码调用 reload
并在 jqGrid 执行此操作之前调用空参数(jqGrid 根本不获取函数的引用并从 [= 返回 undefined
13=] 代替)。