2015-01-01 59 views
1

我正在使用引導程序開發基於Web的應用程序。 我試圖在頁面加載時在網格中實現內聯編輯,但在執行編輯功能後顯示成功或失敗消息時,我遇到了一些問題。編輯jqgrid中的行後無法顯示成功消息

這裏是我的代碼:

$(document).ready(function() { 
    var GetUrl = Web_Path + '/Test/TestHandler/GetTestData/' + AjaxHandlerName; 

       jQuery("#jqGrid-container").jqGrid({ 
        url: GetUrl, 
        datatype: 'json', 
        mtype: 'POST', 
        postData: { SearchInfo: function() { return getSearchPostData() } }, 
        colNames: [' ', 'ID', 'Name', 'ContactNo', 'EmpId', 'MailId', 'RoleName'], 
        colModel: [ 
        { name: 'myac', index: '', width: 80, fixed: true, sortable: false, resize: false, 
         formatter: 'actions', 
         formatoptions: { 
          keys: true, 
          delOptions: { recreateForm: true, beforeShowForm: beforeDeleteCallback } 
         } 
        }, 
           { name: 'Id', index: 'Id', hidden: true, editable: true }, 
           { name: 'Name', index: 'Name', validation: { required: true }, sortable: true, editable: true, editoptions: { size: "40", maxlength: "50"} }, 
           { name: 'ContactNo', index: 'ContactNo', sortable: false, editable: true, editoptions: { size: "20", maxlength: "30"} }, 
           { name: 'EmpId', index: 'EmpId', sortable: false, editable: true, editoptions: { size: "20", maxlength: "30"} }, 
           { name: 'MailId', index: 'MailId', sortable: false, editable: true, editoptions: { size: "40", maxlength: "50"} }, 
{name: 'RoleName', index: 'RoleName', sortable: false } 
    ], 


        editurl: ISM_Web_Path + '/Test/TestHandler/UpdateTestContacts/' + ISMAjaxHandlerName,     

        ajaxRowOptions: { 
        afterEditRow: function (rowid, cellname, value, iRow, iCol) { 
        alert('success'); 
        } 
        },     
        serializeRowData: function (postdata) { 
        return { ContactInfo: JSON.stringify(postdata) };      
        }, 
        jsonReader: { 
         id: 'Id', 
         repeatitems: false 
        }, 
        height: "100%", 
        pager: '#jqGrid-pager', 
        rowNum: 10, 
        rowList: [10, 20, 30], 
        sortname: 'Id', 
        sortorder: 'desc', 
        viewrecords: true, 
        caption: "JQ grid data", 
        loadComplete: function() { 
         var table = this; 
         updatePagerIcons(table);      
        } 
       }); 
}); 

function getSearchPostData() { 
      var searchData = {}; 
      searchData.Id=1; 

      return JSON.stringify(searchData); 
     } 
function updatePagerIcons(table) { 
      var replacement = 
        { 
         'ui-icon-seek-first': 'icon-double-angle-left bigger-140', 
         'ui-icon-seek-prev': 'icon-angle-left bigger-140', 
         'ui-icon-seek-next': 'icon-angle-right bigger-140', 
         'ui-icon-seek-end': 'icon-double-angle-right bigger-140' 
        }; 
      $('.ui-pg-table:not(.navtable) > tbody > tr > .ui-pg-button > .ui-icon').each(function() { 
       var icon = $(this); 
       var $class = $.trim(icon.attr('class').replace('ui-icon', '')); 

       if ($class in replacement) icon.attr('class', 'ui-icon ' + replacement[$class]); 
      }) 
} 

<div class="row"> 
     <div class="col-xs-12">   
      <table id="jqGrid-container" class="ui-jqgrid ui-widget ui-widget-content ui-corner-all"> 
      </table> 
      <div id="jqGrid-pager"> 
      </div>   
     </div> 
    </div> 

處理函數

public void UpdateTestContacts(HttpContext context) 
     { 
      TestContact contactInfo =new TestContact(); 
      string jsonData = context.Request.Params["ContactInfo"]; 
      MemoryStream TestContactMs = new MemoryStream(Encoding.UTF8.GetBytes(jsonData)); 
      DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(TestContact)); 
      contactInfo = (RelationshipContact)serializer.ReadObject(TestContactMs);    
      //call manger function 
      // return true or false 
     } 

TestContact.cs

public class TestContact 
    { 
     public int Id { get; set; } 

     public string Name { get; set; } 

     public string ContactNo { get; set; } 

     public string EmpId { get; set; } 

     public int RelId { get; set; } 

     public int TypeId { get; set; } 

     public string MailId { get; set; } 

     public string RoleName { get; set; }  
    } 

我有使用jquery.jqGrid.min.js

成功編輯行後,我無法顯示成功消息。 我用過afterEditRow 請幫我一把。

回答

1

ajaxRowOptions裏面沒有afterEditRow回調函數。我建議你使用它可以指定爲formatoptionsafterSave功能內嵌編輯aftersavefunc回調函數:

formatter: 'actions', 
formatoptions: { 
    keys: true, 
    afterSave: function (rowid, response, postdata, options) { 
     alert("success"); 
    }, 
    delOptions: { recreateForm: true, beforeShowForm: beforeDeleteCallback } 
} 
0
ajaxRowOptions: { 
        success: function (data, textStatus) { 
        if(textStatus=="true") 
        { 
        alert('success'); 
        } 
        else 
        { 
        alert('failure'); 
        } 
        } 
} 

我回國在處理如此。 上面的代碼正在爲我工​​作。