我可以在不重新加载的情况下更改JQGrid中行的主ID吗?

Her*_*ill 7 jqgrid

我正在尝试在JQGrid中实现内联插入.到目前为止,我的方法是:

  • 用于addRowData在ID = -1的末尾放置一个空行
  • 使用editGridRow编辑该行
  • 在服务器上检测到此更新实际上是插入,因为ID = -1,并返回新的ID值

令人惊讶的是,这个rube goldberg计划运作良好.但是,为了使其无缝,我想静默更新刚刚添加的行的ID,以便用户可以继续编辑其他列.我宁愿不做grid.trigger("reloadGrid"),因为我失去了对那一行的关注.

我试过了

grid.setRowData(-1, { MyPrimaryKeyField: newID });
Run Code Online (Sandbox Code Playgroud)

但这不起作用(它仍然认为行的ID是-1).有没有一种简单的方法来更改行的主ID而无需重新加载整个网格?

Sor*_*ren 7

实际上你不能通过"setRowData"更改网格主行Id,但有一种简单的方法可以做到:

$("#-1").attr('id',newId);
Run Code Online (Sandbox Code Playgroud)

;-)


Jus*_*ier 2

您可以通过 AJAX 调用来执行插入并返回新 ID 来解决此问题。获得 ID 后,调用 reloadGrid,然后使用新返回的 ID 选择行。在执行此操作时,您还需要放置一个旋转器,以便用户知道您的页面正忙。不完全符合您的要求,但它应该满足您的需求。