2017-01-09 2 views
0

inbuilt delete 함수를 사용하여 jqGrid를 사용하여 컨트롤러에서 삭제 작업을 호출합니다.취소 jqGrid delete event

유효성 검사 함수가 false를 반환하면 컨트롤러에서 delete 이벤트를 취소하고 해당 동작을 중지하고 싶습니다.

onClickSubmit에 false를 반환하려고했지만 내 작업이 여전히 호출됩니다.

다음은 내 jqGrid의 formatOptions 코드입니다. 제어기 조치가 호출되기 전에 onClickSubmit 함수가 호출됩니다.

formatoptions: { 
    keys: true, 
    editbutton: false, 
    editformbutton: false, 
    delOptions: { 
     url: $(URL).val(), 
     caption: 'Delete', 
     width: 'auto', 
     msg: 'Are you sure you want to delete these record(s)?', 
     bSubmit: "Delete", 
     bCancel: "Cancel", 
     mtype: 'POST', 

     onclickSubmit: function (response, postdata, formid) { 

      return false; 


     } 
    } 
} 

답변

3

당신은 당신이 삭제를 취소해야하는 경우 beforeSubmit 콜백 대신 onclickSubmit을 사용해야합니다. 콜백 beforeSubmit은 두 요소가있는 배열을 반환해야합니다. 첫 번째 요소는 부울 true 또는 false이어야하며 여기서 false은 삭제 중지를 의미합니다. 두 번째 요소는 오류 설명이있는 문자열이어야합니다. 첫 번째 요소가 false이면 존재해야합니다. 예 :

formatoptions: { 
    keys: true, 
    editbutton: false, 
    editformbutton: false, 
    delOptions: { 
     url: $(URL).val(), 
     caption: 'Delete', 
     width: 'auto', 
     msg: 'Are you sure you want to delete these record(s)?', 
     bSubmit: "Delete", 
     bCancel: "Cancel", 
     mtype: 'POST', 
     beforeSubmit: function (postdata) { 
      if (/* come test of postdata*/) { 
       return [false, "One can't delete the row"]; 
      } 
      return [true]; // allow to delete 
     } 
    } 
} 
+0

이것은 훌륭하게 작동하여 많은 시간을 절약 해줍니다. 감사! – DNKROZ

+0

@DNKROZ : 환영합니다! – Oleg