首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改rowid

如何更改rowid
EN

Stack Overflow用户
提问于 2012-02-27 19:17:49
回答 3查看 3.5K关注 0票数 0

我添加了id为" new“的新行。当我在指定为id的列中保存了带有新值的行之后(比如"code"),它仍然是id为" new“的,除非我重新加载网格或者删除该行并使用新的id重新添加它。

在保存行之后,是否有其他函数可以更改rowid?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2012-02-27 23:23:32

您可以使用jQuery.attr设置任何属性,包括id。您只需非常小心地更改id属性。例如,如果您使用loadonce: true选项,或者如果您使用datatype: 'local',那么内部存在data_index参数,它们将缓存当前id到行数据的映射。因此,在这种情况下,您需要更新jqGrid的_index参数。

如果你在实现上有问题,你应该发布你当前使用的代码。了解jqGrid的一些选项(如datatypeloadonce)非常重要。此外,重要的是要知道您使用的是哪种editing mode以及在哪种环境中。

票数 1
EN

Stack Overflow用户

发布于 2012-07-28 06:21:20

更改id需要几个步骤,因为jqGrid不会更改网格的主键,所以我们必须手动完成所有步骤:

代码语言:javascript
复制
var new_id = 39; //for example
aftersavefunc: function( old_id ) {

   //get data param
   var row = grid.jqGrid('getLocalRow', old_id);
   console.log(row); //use for firefox test
   row._id_ = new_id;

   grid.jqGrid('setRowData',old_id,{my_id:new_id});
   $("#"+response).attr("id", new_id); //change TR element in DOM

   //very important to change the _index, some functions using the                  
   var _index = grid.jqGrid('getGridParam', '_index');
   var valueTemp = _index[old_id];
   delete _index[old_id];
   _index[new_id] = valueTemp;
}
票数 1
EN

Stack Overflow用户

发布于 2018-02-22 01:29:59

jqgrid中的is changeRowId函数:

代码语言:javascript
复制
function aftersavefunc(rowId, response) {

var json = $.parseJSON(response.responseText);
var $tr = $("#" + rowId);

    setTimeout(function () {
        $grid.jqGrid("changeRowid", rowId, json.Id);
        $grid.jqGrid('setSelection', json.Id);
        setFocusToGrid();
    }, 1000);
}

setTimeout是必需的,因为jqgrid会在调用aftersavefunc之后恢复旧的行id。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9464090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档