如何在jqGrid中使saveRow函数等待editRow函数
How to make saveRow function wait for editRow function in jqGrid
我试图将jqGrid添加函数调整为我自己的目的。我有navButton,我想做一个特定的行为:
- 当用户单击该按钮时,编辑模式下的新行将显示在网格
- 当用户键入数据并单击输入时,数据将发送到服务器
现在,我的代码是这样的:
.navButtonAdd("#${pagerId}", {
caption: "${resolveMessage('assign')}",
buttonicon: "ui-icon-add",
onClickButton: function() {
if (assignMode == false){
assignMode = true;
$('#${tableId}').jqGrid('addRowData', 0, {});
$('#${tableId}').jqGrid('editRow', 0);
$('#${tableId}').jqGrid('saveRow', 0, function(){ assignMode = false; }, "${assignURL}");
}
},
position:"last"
})
我的问题是saveRow函数没有等待editRow的结束。它会在单击按钮后立即向服务器发送空数据。如何使saveRow等待键入的数据?
我建议您使用inlineNav,而不是自己重新实现相同的功能。例如,当前代码对添加的每一行使用相同的行ID 0
,这非常糟糕。此外,您在没有任何附加选项的情况下调用editRow
,然后在editRow
之后立即调用saveRow
,这将强制保存可能有错误数据的空行。验证期间保存可能失败。
此外,我建议您考虑使用麻省理工学院或GNU GPLv2许可证下免费提供的免费jqGrid,而不是使用商业Guriddo jqGrid JS(请参阅此处的价格)。自2014年底以来,我开发了免费的jqGrid fork(帖子后不久),并实现了许多修复、改进和新功能,这些功能在我当时发布的每个发布版本的自述、wiki文章和steckoverflow上的答案中都有很短的描述。
相关文章:
- 如何在jqGrid中使saveRow函数等待editRow函数
- 让 JavaScript 函数等待 Jquery 对话框模态的结果
- 如何在函数完成后使用 jQuery 进行动画处理 - 让第二个函数等待
- 如何使函数等待回调完成
- 让jquery函数等待它'的上一个呼叫已解决
- Javascript/jQuery使函数等待回调后再继续
- 让一个函数等待另一个变量
- 如何强制异步函数等待,直到完成
- 使函数等待/暂停;直到另一个结束
- 需要函数等待事件处理程序完成后再执行下一个函数
- Javascript函数等待另一个函数完成
- Javascript:让函数等待查询完成
- 我需要把'return'casper.then'块,让父函数等待子函数完成执行
- 使函数等待直到元素存在
- 美元.Ajax成功函数等待
- 如何让我的javascript函数等待html元素渲染
- 如何强制函数等待某个事件发生
- javascript/jquery:迭代调用函数;等待之前的通话结束
- 如何让JS函数等待执行
- 如何让NodeJs函数等待