我跟进JQGrid page的示例代码(选择导航器“行编辑(新)”=>左侧的“自定义编辑”)。 我尝试显示“删除”列,我也在JQGrid页面上跟进以下脚本(选择导航器“实时数据操作”=>左侧的“删除行”)。
$("#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
不是返回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
,它会返回值jqg1
,jqg2
,jqg3
,但我想获得Selected Row_Id
。
答案 0 :(得分:1)
首先,值jqg1
,jqg2
,jqg3
实际上是rowid,jQuery("#delgrid").jqGrid('getGridParam','selrow')
返回正确的值。根据定义,rowid是网格的相应行(id
元素的id
)上的<tr>
属性的值。 jqGrid 始终为每一行分配id属性。见the picture。如果您使用本地数据,则delGridRow
会毫无问题地删除该行。
您写道,您希望将Email
用作rowid。来自Email
的值是否唯一(可能没有两行使用相同的电子邮件)?您可以更改代码以通知jqGrid将Email
列中的值用作rowid。为此,您只需在key: true
的{{1}}列定义中添加Email
属性。
或者,您可以扩展从服务器返回的JSON数据,并将colModel
属性包含在其中。您可以将id
属性的值用作用户的电子邮件或UserId的值,该值来自您在后端使用的数据库的相应表。您可以自由定义哪些信息(哪个值)可以更好地识别用户。