1
jqGrid 편집 된 행 ID는 응답에서 반환 된 ID에서 저장 한 후 새로 고쳐야합니다. 아래 코드를 시도했지만 정의되지 않은 메시지 상자가 나타납니다.포맷터 작업 저장 버튼으로 저장 한 후 jqgrid 행 ID를 업데이트하는 방법
행 ID를 업데이트하는 방법은 무엇입니까? 작업 저장 버튼으로 행을 업데이트 한 후 응답 텍스트를 얻는 방법은 무엇입니까?
앤드루스
grid.jqGrid({
colModel: [{name:_actions,width:45,
formatter:"actions",
formatoptions:
{keys:true,
delbutton:false,
onSuccess:function (rowID, response) {
alert(response);
$("#" + rowID).attr("id", response.responseText);
},
onEdit: function (rowID) {
if (typeof (lastSelectedRow) !== 'undefined' && rowID !== lastSelectedRow)
cancelEditing($('#grid'));
lastSelectedRow = rowID;
}
}}
중요한 문제는 조치 버튼이 오래된 rowid와 응답 텍스트가 인라인 편집 aftersavefunc 에서처럼 전달되는 단일 이벤트가 없다는 것입니다. 전역 변수에 대한 응답을'onSuccess = function (jqXHR) { actionresponse = jqXHR; return true;} "'이것을 사용하고 afterSave = function (rowID) { aftersavefunc (rowID, actionresponse)}'에서 사용합니다 .Db 체계는 자연스러운 기본 키 ID를 사용하고 수천 개의 사이트에 배포됩니다. – Andrus
@Andrus : 예전 버전의 소프트웨어를 여러 개 설치 한 경우 업데이트 시나리오가 복잡 할 수 있음을 이해합니다. 그럼에도 불구하고 문제는 생각하지 않았습니다. 난 당신이 기존 테이블의 기본 키를 변경하지 않는 것이 좋습니다. ** AUTOINCREMENT 값을 저장할 수있는 테이블에 ** 추가 ** 열을 추가하는 것이 좋습니다. 그 후 UNIQUE CONSTRAINT 또는 열에 대한 인덱스를 배치 할 수 있습니다. 열의 값으로 빠른 검색을하고 ** 값을 id로만 사용하십시오. 다른 응용 프로그램에서는 이전 기본 키를 계속 사용할 수 있습니다. ould work – Oleg
@Andrus :'jqXHR'를 어딘가에 저장하는 것에주의해야합니다. 포인터가 사용되지 않으면'null'에 할당되도록 코드를 작성해야합니다. 'jqXHR'에 대한 메모리를 공개 할 수 없기 때문에 이것을하지 않으면 메모리 리크를 가질 수 있습니다. – Oleg