【发布时间】:2018-03-15 14:16:01
【问题描述】:
我试图在保存一行后重新加载网格,以便能够获取行的 ID 以用于记录目的,但在保存之前,'aftersavefunc' 和 'successfunc' 会以某种方式触发 'reloadGrid('#telephoneGrid')'。似乎“aftersavefunc”和“successfunc”是相同的。现在我无法添加或编辑任何行。
var lastSel;
function onTelephoneSelect(id, status, e) {
if ($(e.target).hasClass('edit')) {
var editParameters = getEditParameters();
if (id && id !== lastSel) {
jQuery('#telephoneGrid').saveRow(lastSel);
}
jQuery("#telephoneGrid").jqGrid('editRow', id, editParameters);
lastSel = id;
}
}
function getEditParameters() {
return {
"keys": true,
"oneditfunc": null,
"successfunc": null,
"url": '@Url.Action("SaveTelephoneEntry","TelephoneEntry")?customerId=' + $('#SelectCompany').val(),
"extraparam": {},
"aftersavefunc": reloadGrid('#telephoneGrid'),
"errorfunc": null,
"afterrestorefunc": null,
"restoreAfterError": true,
"mtype": "POST"
}
}
我现在很绝望,想不出任何可行的解决方案。
有人可以在这里为我提供帮助吗?或者已经遇到了同样的问题并找到了可行的解决方案?
提前非常感谢。
【问题讨论】:
-
首先,请始终包含有关您使用的 jqGrid 的 版本 和 fork 的信息(free jqGrid,商业@ 987654322@ 或版本 aftersavefunc 的用法是正确的,但我想你在实现
reloadGrid函数时可能会遇到问题。你在里面使用setTimeout吗?现在到底什么工作不正确?重新加载后是否看到旧数据?哪个datatype有网格?你使用loadonce: true选项吗? -
感谢您的回复,奥列格。我会记住发布我将来使用的版本和分叉。在名为 Jay 的海报下方有对我有用的正确答案。一切('aftersavefunc'、'successfunc')都可以正常工作。
标签: javascript jquery asp.net asp.net-mvc jqgrid