我可以在jqGrid中更改新添加的行的ID吗?

时间:2012-05-31 14:37:53

标签: jquery jqgrid

我正在使用带有inlineNav的jqGrid,以便用户可以在本地编辑/添加/删除行,然后在完成后将所有更改提交给服务器。我希望能够在本地向网格添加多个新行,但由于其他要求,我需要新添加的行具有唯一ID而不是默认new_row。此外,由于外键约束,我无法使用ajax调用在添加时立即保留新行。我尝试过以下操作,但ID值不会改变:

<input type="hidden" id="newRowIndex" />

$("#thisGrid").jqGrid('inlineNav', '#thisGridPager', {
    edit: false,
    addtext: "Add",
    save: false,
    cancel: false,
    addParams: {
        position: 'last',
        addRowParams: {
            keys: true,
            oneditfunc: function (rowid) {
                var newRowIndex = $("#newRowIndex").val();
                if (!newRowIndex)
                    newRowIndex = 1;
                $("#thisGrid").jqGrid('setCell', rowid, 'id', rowid + "_" + newRowIndex, '', '');
                newRowIndex++;
                $("#newRowIndex").val(newRowIndex);
            }
        }
    }
});

我只想将新添加的行ID设置为new_row_1,为每个新添加的行递增索引。这是可能的,如果是的话,怎么样?

解决方案

除了Dean的回答之外,我发现它在oneditfunc的{​​{1}}中无效。我发现使用jqGrid的afterInsertRow事件有效:

addRowParams

1 个答案:

答案 0 :(得分:3)

要设置新行的id,请使用:

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

引用此问题:Can I change the primary ID of a row in JQGrid without reloading?