2017-01-09 15 views
0

私はコントローラで削除アクションを呼び出すためにinbuilt delete関数を使用しているjqGridを持っています。jqGridの削除イベントをキャンセルする

私は、検証関数がfalseを返す場合、削除イベントをキャンセルして、コントローラで呼び出されているアクションを停止したいと思います。

私は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

あなたが削除をキャンセルする必要がある場合は、代わりにonclickSubmitbeforeSubmitコールバックを使用する必要があります。コールバックbeforeSubmitは、2つの要素を持つ配列を返す必要があります。最初の要素はブールtrueまたはfalseである必要があります。falseは削除の停止を意味します。 2番目の要素は、エラーの説明を含む文字列でなければなりません。最初の要素が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

関連する問題