【问题标题】:How do I prevent jqGrid from restoring the row after saving保存后如何防止jqGrid恢复行
【发布时间】:2010-07-22 15:01:17
【问题描述】:

我有一个内联编辑模式的 jqGrid。当用户点击 Enter 时,记录被发送到服务器进行保存。服务器返回一个success:true 或false,我在successFunc 中处理如下:

function successFunc(data) {
  d = jQuery.parseJSON(data.responseText);
  if (!d.success) { alert(d.message); }
  return d.success;
}

我想要的是,当 d.success 为 false 时,jqGrid 应该保持在编辑模式而不是恢复。我尝试在警报后添加一个抛出“退出”调用。它可以工作,但 Esc 和 Enter 键不再工作。

有什么办法可以防止jqGrid在保存后恢复行吗?

谢谢

【问题讨论】:

  • 我正在寻找相同的功能。

标签: jqgrid inline


【解决方案1】:

saveRow 的调用支持afterrestorefunc 回调:

如果定义了afterrestorefunc,则在恢复行后在restoreRow(如果行未成功保存)方法中调用此函数。我们将 rowid 传递给这个函数

所以你可以让网格调用restoreRow,然后在你的回调中你可以调用editRow来强制网格回到编辑模式。这不是一个理想的解决方案,但转换会发生得如此之快,用户可能不会注意到。

【讨论】:

  • 谢谢。但是当用户按 Esc 时也会调用 afterrestorefunc。因此,使用 Esc 不会退出编辑模式。
  • 是的,但是您可以使用mode 变量来检测它是从哪里调用的。将 mode 初始化为 false,并且仅在 successFunc 中将其设置为 true。然后在afterrestorefunc 内部,如果mode 为真,则仅调用editRow - 然后立即将其设置回假。你怎么看?
  • 现在的问题是,一旦我将其放回编辑模式,更改就会丢失。我需要重新考虑我的界面。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2012-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多