IDが "new"の新しい行を追加します。 id( "code")と指定された列に新しい値で行を保存した後、グリッドをリロードしたり、行IDを新たに追加しない限り、IDは "new"のままです。rowidを変更するには
行が保存された後にROWIDを変更する別の機能はありますか?
ありがとうございました。
IDが "new"の新しい行を追加します。 id( "code")と指定された列に新しい値で行を保存した後、グリッドをリロードしたり、行IDを新たに追加しない限り、IDは "new"のままです。rowidを変更するには
行が保存された後にROWIDを変更する別の機能はありますか?
ありがとうございました。
jQuery.attrを使用して、任意の属性(id
を含む)を設定することができます。 id
属性の変更には注意が必要です。たとえば、loadonce: true
オプションを使用する場合、またはdatatype: 'local'
を使用する場合は、現在のIDと行データのマッピングをキャッシュする内部的にはdata
および_index
のパラメータが存在します。その場合、_index
のパラメータをjqGridに更新する必要があります。
実装に問題がある場合は、現在使用しているコードを投稿する必要があります。 jqGridの一部のオプション(datatype
、loadonce
など)は知っておくことが非常に重要です。さらに、あなたが使用するためにどのediting modeを知ることが重要です。 jqGridグリッドの主キーを変更しないので、IDを変更する
は、いくつかのステップを必要とするので、私たちは手動ですべての手順を実行する必要があります。
var new_id = 39; //for example
aftersavefunc: function(old_id) {
//get data param
var row = grid.jqGrid('getLocalRow', old_id);
console.log(row); //use for firefox test
row._id_ = new_id;
grid.jqGrid('setRowData',old_id,{my_id:new_id});
$("#"+response).attr("id", new_id); //change TR element in DOM
//very important to change the _index, some functions using the
var _index = grid.jqGrid('getGridParam', '_index');
var valueTemp = _index[old_id];
delete _index[old_id];
_index[new_id] = valueTemp;
}
ザ・はjqgridでchangeRowId関数です。
function aftersavefunc(rowId, response) {
var json = $.parseJSON(response.responseText);
var $tr = $("#" + rowId);
setTimeout(function() {
$grid.jqGrid("changeRowid", rowId, json.Id);
$grid.jqGrid('setSelection', json.Id);
setFocusToGrid();
}, 1000);
}
aftertimeは、aftersavefuncが呼び出された後に古い行IDを復元するため、setTimeoutが必要です。