ID가 "new"인 새 행을 추가합니다. id로 지정된 열에 새로운 값을 가진 행을 저장 한 후 (예 : "code") 그리드를 다시로드하거나 행을 삭제하지 않는 한 id가 "new"로 유지됩니다. & 새 ID로 다시 추가하십시오.rowid를 변경하는 방법
행을 저장 한 후 ROWID를 변경하는 또 다른 기능이 있습니까?
감사합니다.
ID가 "new"인 새 행을 추가합니다. id로 지정된 열에 새로운 값을 가진 행을 저장 한 후 (예 : "code") 그리드를 다시로드하거나 행을 삭제하지 않는 한 id가 "new"로 유지됩니다. & 새 ID로 다시 추가하십시오.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);
}
aftersavefunc가 호출 된 후 jqgrid가 이전 행 ID를 복원하므로 setTimeout이 필요합니다.