jqGrid:如果编辑了主键列,如何更新行id

主键值用作从服务器返回的json数据中的行ID。 如果主键值被编辑并保存两次,则第二次保存会导致错误,因为jqGrid再次将原始主键值传递给编辑方法。

如果在内联编辑中更改主键值,如何将jqGrid行ID更新为新的主键值?

$(function () { var grid = $("#grid"); grid.jqGrid({ url: '', 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: '', ... 

rowid不再是网格的相应

元素的id属性的值。 因此,要将rowid oldRowid更改为oldRowid ,您应该执行以下操作:

 $("#" + oldRowid).attr("id", newRowid); 
 #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; } } } } } }