2017-01-09 110 views
0

我有一个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

你如果需要取消删除使用beforeSubmit回调,而不是onclickSubmit。回调beforeSubmit应该返回包含两个元素的数组。第一个元素应该是布尔型truefalse,其中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