我试图将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等待输入数据?
答案 0 :(得分:1)
我建议您使用inlineNav而不是自己重新实现相同的功能。例如,您当前的代码,例如对每个添加的行使用相同的rowid 0
,这是非常糟糕的。此外,您在没有任何其他选项的情况下致电editRow
,然后在 saveRow
之后立即致电editRow
,这会强制保存空行,可能包含错误的数据。验证期间保存可能会失败。
此外,我建议您考虑在MIT或GNU GPLv2许可下免费使用free jqGrid,而不是使用商业Guriddo jqGrid JS(参见价格here)。我从2014年底开始开发免费的jqGrid fork(the post之后的短片),并且已经在每个已发布的版本wiki articles的自述文件中实现了很多修复,改进和新功能以及关于steckoverflow的答案我当时发布的。