2011-12-15 31 views
3

我正在使用內置的「操作」格式化程序來編輯內聯(行編輯)並刪除。如何在jqGrid的'action'格式化程序中定義'保存前'回調?

問題是我想通過ajax進行驗證(所以,返回的真正的字段可以保存),但我不能在保存狀態中添加任何'保存'回調。

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

在行動的參數列表格式器,你可以定義onError回調函數(見the answer)。在保存數據期間,如果出現任何類型的錯誤,服務器返回一些錯誤狀態代碼是很重要的。將要發送的數據的驗證是這種錯誤的例子之一。

已更新:答案很古老。長時間內聯編輯支持beforeSaveRow(正弦版本4.5.3)。儘管如此,回調提供客戶端驗證。問題是關於服務器端驗證通過Ajax請求到服務器。在這種情況下,onError仍然是唯一的好方法。服務器只需要設置對應HTTP錯誤的HTTP狀態碼(> = 400)。只有當服務器不能設置HTTP錯誤代碼時,纔可以使用successfunc回調alternatively, which corresponds onSuccess in格式化程序:「actions」。如果驗證錯誤,回調應該返回[false, "error description"]

相關問題