【问题标题】:Can I change the primary ID of a row in JQGrid without reloading?我可以在不重新加载的情况下更改 JQGrid 中一行的主 ID 吗?
【发布时间】:2009-12-17 17:12:05
【问题描述】:

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

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

令人惊讶的是,这个 rube goldberg 方案效果很好。不过,为了使其无缝,我想默默地更新刚刚添加的行的 ID,以便用户可以继续编辑其他列。我宁愿不做grid.trigger("reloadGrid"),因为我失去了对那一行的关注。

我试过了

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

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

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

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

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

    ;-)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我遇到了同样的问题,虽然我同意这是“正确”的做法,但 Soren 的回答实现了问题中提出的功能。两个都投赞成票!
      猜你喜欢
      • 1970-01-01
      • 2017-03-29
      • 2013-02-05
      • 2011-07-06
      • 1970-01-01
      • 2012-04-18
      • 2014-01-10
      • 1970-01-01
      • 2017-12-17
      相关资源
      最近更新 更多