2011-12-15 1 views
3

인라인 (행 편집)을 편집하고 삭제하기 위해 기본 제공 '작업'포맷터를 사용하고 있습니다.jqGrid의 'action'포맷터에서 'before save'콜백을 정의하는 방법은 무엇입니까?

문제는 아약스를 통해 유효성을 검사하므로 실제 필드를 반환하는 것이 가능하지만 저장하기 전에 '저장하기 전에'콜백을 추가 할 수 없습니다.

Image with an example of the view.

colModel 나는 작업에서부터 컬럼 정의하는 데 사용할 :

{name: 'Actions', formatter: 'actions', 
        editable: false, 
        search: false, 
        width: '50', 
        sortable: false, 
        resizable: false, 
        formatoptions:{ 
         keys:true 
        } 
} 

답변

0

행동의 매개 변수 목록에서 당신이 (the answer 참조) onError 콜백 함수를 정의 할 수 있습니다 포맷터. 데이터를 저장하는 동안 종류 오류가 발생하면 서버가 오류 상태 코드를 반환하는 것이 중요합니다. 전송 될 데이터의 유효성 확인은 이러한 오류의 예 중 하나입니다.

업데이트 : 대답은 매우 오래된 것입니다. 인라인 편집은 오랜 시간 이래로 beforeSaveRow을 지원합니다 (버전 4.5.3을 사인하십시오). 그럼에도 불구하고 콜백은 클라이언트 측 유효성 확인을 제공합니다. 질문은 서버 측 확인에 대한 것이고 Ajax 요청을 서버에 보냈습니다. 이 경우에는 onError이 여전히 거의 유일한 좋은 방법입니다. 서버는 HTTP 오류 (> = 400)에 해당하는 HTTP 상태 코드를 설정하기 만하면됩니다. 서버가 HTTP 오류 코드를 설정할 수없는 경우에만 successfunc 콜백 alternatively, which corresponds onSuccess in 포매터 "작업"을 사용할 수 있습니다. 유효성 검증 오류의 경우 콜백은 [false, "error description"]을 리턴해야합니다.