JQGrid:如何获取自定义 "Delete" 列的选定行 ID

JQGrid : How to get Selected Row ID of Custom "Delete" column

我按照 JQGrid page 的示例代码进行操作(在左侧选择 Navigator "Row Editing (New)" => "Custom Edit")。 我尝试显示 "Delete" 列,并且还在 JQGrid 页面上跟进以下脚本(在左侧选择 Navigator "Live Data Manipulation" => "Delete Row")。

$("#dedata").click(function(){
    var gr = jQuery("#delgrid").jqGrid('getGridParam','selrow');
    if( gr != null ) jQuery("#delgrid").jqGrid('delGridRow',gr,{reloadAfterSubmit:false});
    else alert("Please Select Row to delete!");
});

我的问题是,gr 不是 return row_id 值。 你知道如何获得 selected row id 吗?

这是我的 JQGrid 脚本:

$("#UserListGrid").jqGrid({
    ... //Some above jqGrid options 
    /* Fill in column "Delete" */ 
    gridComplete: function () {
        var ids = jQuery("#UserListGrid").jqGrid('getDataIDs');
        for (var i = 0; i < ids.length; i++) {
            var cl = ids[i];
            de = "<input style='height:22px;width:50px;' type='button' value='Delete' onclick=\"JQGridRemoveSelectedRow('UserListGrid');\" />";
            jQuery("#UserListGrid").jqGrid('setRowData', ids[i], {
                act: de
            });
        }
    }
});

function JQGridRemoveSelectedRow(JQGridID) {
    var gr = jQuery("#" + JQGridID).jqGrid('getGridParam', 'selrow');

    alert(gr);
    /* if (gr != null) jQuery("#" + JQGridID).jqGrid('delGridRow', gr, { reloadAfterSubmit: false });
    else alert("Please Select Row to delete!");*/
    if (gr != null)
        alert(gr );
    else
        alert("Please Select Row to delete!");
}

我尝试查看 gr,它 return 的值 jqg1jqg2jqg3 但我想得到 Selected Row_Id.

首先,值 jqg1jqg2jqg3 确实是 rowid,jQuery("#delgrid").jqGrid('getGridParam','selrow') returns 是正确的值。根据定义,rowid 是网格对应行上 id 属性的值(<tr> 元素的 id)。 jqGrid 总是 将 id 属性分配给每一行。参见 the picture。如果您使用 local 数据,那么 delGridRow 将毫无问题地删除该行。

您写道您想使用 Email 作为 rowid。来自 Email 的值是否唯一(可能没有两行具有相同的电子邮件)?您可以更改代码以通知 jqGrid 使用 Email 列中的值作为 rowid。为此,您只需在 colModel.

Email 列的定义中添加 key: true 属性

或者,您可以扩展从服务器返回的 JSON 数据,并向其中包含 id 属性。您可以将 id 属性 用户的电子邮件或来自您在后端使用的数据库的相应 table 中的 UserId 用作值。您可以自由定义哪些信息(哪些值)可以更好地识别用户。