主键值用作从服务器返回的json数据中的行ID。 如果主键值被编辑并保存两次,则第二次保存会因jqGrid而导致错误 再次将原始主键值传递给编辑方法。
如果在内联编辑中更改主键值,如何将jqGrid行ID更新为新的主键值?
$(function () {
var grid = $("#grid");
grid.jqGrid({
url: '<%= ResolveUrl("~/Grid/GetData?_entity=Strings")%>',
datatype: "json",
mtype: 'POST',
scroll: 1,
autoencode: true,
colModel: [{
name: 'Source',
fixed: true,
editable: true,
width: 30
}, { /* this is primary key passed also as id */
name: 'Est',
fixed: true,
editable: true,
width: 271
}, {
name: 'Eng',
fixed: true,
editable: true,
width: 167
}],
gridview: true,
pager: '#pager',
viewrecords: true,
editurl: '<%= ResolveUrl("~/Grid/Edit?_entity=Strings")%>',
...
答案 0 :(得分:4)
rowid不再是网格对应id
元素的<tr>
属性的值。因此,要将rowid oldRowid
更改为newRowid
,您应该执行以下操作:
$("#" + oldRowid).attr("id", newRowid);
答案 1 :(得分:-1)
#gridPreSeleccion = id grid
grid multiselect=true
function eliminarSeleccionados() {
var idsContribuyentesSelect = jQuery("#gridPreSeleccion").jqGrid('getGridParam', 'selarrrow');
if(idsContribuyentesSelect.length == 0) {
jQuery.MessageAlertSath("Es necesario seleccionar una fila.")
} else {
var ids = jQuery("#gridPreSeleccion").jqGrid('getDataIDs');
var a = ids.length;
var j = 0;
while(j == 0) {
if(jQuery("#gridPreSeleccion").jqGrid('getGridParam', 'selarrrow').length <= 0) {
j = 1;
} else {
for(var i = 0; i < a; i++) {
if(idsContribuyentesSelect[0] == ids[i]) {
jQuery('#gridPreSeleccion').delRowData(ids[i]);
break;
}
}
}
}
}
}