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

我可以在不重新加载的情况下更改JQGrid中一行的主ID吗?,jqgrid,Jqgrid,我试图在JQGrid中实现内联插入。到目前为止,我的做法是: 使用addRowData在末尾放置一个ID为-1的空行 使用editGridRow编辑该行 在服务器上检测此更新实际上是一个插入,因为ID=-1,并返回新的ID值 令人惊讶的是,这个鲁布·戈德堡计划运行得相当好。不过,为了使其无缝,我希望以静默方式更新刚刚添加的行的ID,以便用户可以继续编辑其他列。我不想做一个grid.trigger(“reloadGrid”),因为我失去了对那一行的关注 我试过了 grid.setRowData

我试图在JQGrid中实现内联插入。到目前为止,我的做法是:

  • 使用
    addRowData
    在末尾放置一个ID为-1的空行
  • 使用
    editGridRow
    编辑该行
  • 在服务器上检测此更新实际上是一个插入,因为ID=-1,并返回新的ID值
令人惊讶的是,这个鲁布·戈德堡计划运行得相当好。不过,为了使其无缝,我希望以静默方式更新刚刚添加的行的ID,以便用户可以继续编辑其他列。我不想做一个
grid.trigger(“reloadGrid”)
,因为我失去了对那一行的关注

我试过了

grid.setRowData(-1, { MyPrimaryKeyField: newID });

但这不起作用(它仍然认为行的ID是-1)。有没有一种简单的方法可以在不重新加载整个网格的情况下更改行的主ID?

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

实际上,您不能通过“setRowData”更改网格主行Id, 但有一个简单的方法:

$("#-1").attr('id',newId);

;-)

我也有同样的问题,虽然我同意这是“正确”的方法,但索伦的回答实现了问题中提出的功能。两人都投赞成票!