2011-09-02 121 views
1

我的頁面上有一個jqGrid,它使用json發佈到服務器的方式接收它的記錄。在同一頁面上,我也有一個刪除按鈕。點擊刪除按鈕使用ajax post到服務器刪除所選記錄。刪除記錄後,如果服務器返回成功代碼,我需要網格刷新。當最後一條記錄被刪除時,jqGrid reloadGrid不工作

它似乎工作正常,除非網格中只有一條記錄。我刪除的最後一條記錄不會從網格中刪除。即使我按下頁腳上的刷新按鈕,它仍然不會消失。當有多個記錄時,它會刷新,正如我所預期的那樣。

我是jqGrid的新手,所以我確信我做錯了什麼。任何幫助,將不勝感激。

的jqGrid定義

$('#gridOrgs').jqGrid({ 
     url: 'some url goes here', 
     datatype: 'json', 
     mtype: 'POST', 
     loadonce:false, 
     colNames: ['ID', 'Name', 'City', 'Province', 'Admin'], 
     colModel: [ 
      { name: 'Id', index: 'Id', hidedlg: true, hidden: true, sortable: false }, 
      { name: 'CompanyName', index: 'CompanyName', width: 200, sorttype: 'text' }, 
      { name: 'City', index: 'City', width: 150, sorttype: 'text' }, 
      { name: 'Province', index: 'Province', width: 150, sorttype: 'text' }, 
      { name: 'IsAdmin', index: 'IsAdmin', width: 50, sorttype: 'text', formatter: 'checkbox', align: 'center'}, 
      ], 
     pager: '#pagerOrgs', 
     jsonReader: { 
      repeatitems: false, 
      id: 'Id' }, 
     rowNum: 10, 
     rowList: [10, 25, 50, 75, 100], 
     sortname: 'CompanyName', 
     sortorder: 'desc', 
     viewrecords: true, 
     caption: 'Companies', 
     hidegrid: false, 
     width: 650, 
     height: 400, 
     onSelectRow: function (id) { 
       if (id) 
        RowSelected(id, $('#gridOrgs').getCell(id,'IsAdmin')); 
       else 
        NoRowSelected(); 
      } 
    }); 
    jQuery("#gridOrgs").jqGrid('navGrid','#pagerOrgs',{edit:false,add:false,del:false}); 

Delete按鈕點擊事件:

$('#btnDelete').click(function() { 
     var id = jQuery("#gridOrgs").jqGrid('getGridParam','selrow'); 

     if (id) 
      $.post('@Url.Action("Json_Delete", "Organization")', {'id': id}, function(data){ProcessDeleteResponse(data.result);}, 'json'); 
     else 
      $('#dialogNothingSelected').dialog('open'); 
    }); 

    function ProcessDeleteResponse(resultCode) { 
     if (resultCode == 'success') 
      $('#gridOrgs').trigger('reloadGrid'); 
    } 

我還試圖

.trigger( 'reloadGrid',[{頁面:1}]);

.trigger('reloadGrid',[{current:true}]);

無論我做什麼,最後一個記錄都停留在網格中。

最後一件事:當我觸發reloadGrid時,網格會調用服務器並接收更新的信息。更新的信息包含0個記錄總數。

再次感謝。

回答

0

看來我還是能夠通過調用下面的方法來解決這個問題:

$('#gridOrgs').jqGrid('delRowData', id); 

讓我知道如果任何人有一個更好的解決方案。

相關問題