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 的值 jqg1
, jqg2
, jqg3
但我想得到 Selected Row_Id
.
首先,值 jqg1
、jqg2
、jqg3
确实是 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 用作值。您可以自由定义哪些信息(哪些值)可以更好地识别用户。
我按照 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 的值 jqg1
, jqg2
, jqg3
但我想得到 Selected Row_Id
.
首先,值 jqg1
、jqg2
、jqg3
确实是 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 用作值。您可以自由定义哪些信息(哪些值)可以更好地识别用户。