2016-09-21 33 views
2

我正在使用內聯編輯jQgrid與編輯操作按鈕,但aftersavefunc無法正常工作。什麼是正確的做法呢?jqgrid內聯編輯使用​​操作 - 無法顯示錯誤消息

我想恢復該行並顯示錯誤消息時,我從服務器接收:{「成功」:假的,「ID」:空,「消息」:「你不能這樣做」}

下面是我的代碼:

angular.element(document).ready(function() { 

    $("#jqGrid").jqGrid({ 
     datatype: "local", 
     data: $scope.listResellerUser, 
     mtype: "POST", 
     colModel: [ 
      { label:'Full Name', name: 'fullname' }, 
      { label: 'User Name', name: 'username' }, 
      { label: 'User Id', name: 'userId', hidden: true, key:true }, 
      { label: 'Email', name: 'email' }, 
      { label: 'User Level', name:'roleId', index:'roleId', edittype:'select', editable:true, align:'center', formatter:'select', 
       editoptions:{value:setRoleDropdown() 
      }}, 
      {name:'Actions',index:'Actions',width:55,align:'center',sortable:false,search: false,formatter:'actions', 
       formatoptions:{ 
        keys: true, // we want use [Enter] key to save the row and [Esc] to cancel editing. 
        delbutton:false, 
       }} 

     ], 
     editurl: "/myreseller/changeuserrole", 
     styleUI : 'Bootstrap', 
     page: 1, 
     autowidth: true, 
     height: 250, 
     rowNum: 20, 
     scrollPopUp:true, 
     scrollLeftOffset: "83%", 
     viewrecords: true, 
     scroll: 1, // set the scroll property to 1 to enable paging with scrollbar - virtual loading of records 
     emptyrecords: 'Scroll to bottom to retrieve new page', // the message will be displayed at the bottom 
     pager: "#jqGridPager", 
     editParams: { 
      "aftersavefunc": function (rowid, response, options) { 
       alert("row with rowid=" + rowid + " is successfuly modified."); 
      } 
     } 
    }); 

回答

0

所有以包括有關jqGrid的版本信息,您可以使用它(或者你可以用它)是很重要的一和的jqGrid的叉(free jqGrid,商業Guriddo jqGrid JS或舊jqGrid版本< = 4.7)在您的問題的文本。

我開發免費的jqGrid叉,支持引導過(見here)。因此,我無法幫助您解決Guriddo jqGrid JS的具體問題。在我看來,但你使用不存在的選項editParams。免費的jqGrid允許通過inlineEditing選項(參見the wiki article)指定公用內嵌編輯選項。如果您使用商業Guriddo jqGrid JS,那麼您可能必須在formatoptions(請參閱的onSuccess,onError,afterSave和其他回調)中指定formatter:'actions'的回調函數。

而且回調aftersavefunc似乎是在你的情況下錯誤的選擇。它會之後服務器響應的處理被稱爲。從editurl與成功的HTTP狀態代碼每個響應將被解釋爲成功而改變(改變錯誤)將被保存在網格中。一個可以解決通過使用errorfunc回調並返回一些錯誤HTTP狀態代碼爲問題(> = 400)或通過使用successfunc回調,這允許處理服務器響應的內容,並返回[false, "error text"][true]取決於服務器的內容響應。在我看來,這是你需要的。