2011-09-02 112 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); 

让我知道如果任何人有一个更好的解决方案。

相关问题