【问题标题】:How to make saveRow function wait for editRow function in jqGrid如何使 saveRow 函数等待 jqGrid 中的 editRow 函数
【发布时间】:2016-04-06 07:23:18
【问题描述】:

我正在尝试使 jqGrid 添加功能适应我自己的目的。我有 navButton 我想做出特定的行为:

  1. 当用户单击该按钮时,新行以编辑模式出现在 网格。
  2. 当用户输入数据并点击回车时,数据被发送到 服务器。

现在,我的代码如下所示:

 .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 等待输入的数据?

【问题讨论】:

标签: javascript jquery jqgrid


【解决方案1】:

我建议您使用inlineNav 而不是自己重新实现相同的功能。例如,您当前的代码,例如对每个添加的行使用相同的 rowid 0,这是非常糟糕的。此外,您无需任何其他选项即可调用editRow,然后立即调用saveRow editRow,这会强制保存可能包含错误数据的空行。验证期间保存可能会失败。

此外,我建议您考虑使用在 MIT 或 GNU GPLv2 许可下免费提供的free jqGrid,而不是使用商业 Guriddo jqGrid JS(参见价格here)。自 2014 年底以来,我开发了免费的 jqGrid 分支(在 the post 之后不久),并在每个已发布版本的自述文件中很快描述了许多修复、改进和新功能,wiki articles 以及我在 steckoverflow 上发布的答案时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 2016-10-29
    • 2018-09-29
    • 1970-01-01
    相关资源
    最近更新 更多