2012-08-23 23 views
0

我有一個jqgrid,內嵌客戶端搜索。當數據庫返回0條記錄時,我試圖隱藏網格並顯示一條自定義消息。問題是,現在當我使用過濾器時,會發生同樣的事情。我需要從後端響應中獲取行數,並且下面的行都不起作用。當頁面加載時,我得到5和5,當我過濾時,我得到0和0.這是如何實現的?JQgrid獲取行數(loadonce:true)

.jqGrid('getGridParam', 'records') 
.jqGrid('getGridParam', 'reccount') 


var contratsAC=$("#ContratsAC"); 
contratsAC.jqGrid({ 
      url:'<?php echo base_url().'rest/AC_Rest/get_contrats/'?>',  
      mtype : "post",   
      datatype: "json",   
      colNames:['Nr dossier','Type','Nom','Statut','Date creation','Date derniere maj','Commentaires','Auteur'], 
      colModel:[ 
       {name:'nr_dossier',index:'nr_dossier',search:false, align:"center"},  
       {name:'type',index:'type',search:false, align:"center"}, 

       {name:'nomClient',index:'nomClient',search:false, align:"center"}, 
       {name:'statut',index:'statut',search: true, sortable: false, width:180, stype:'select', 
        searchoptions:{ value:statuts}, editable: false}, 
       {name:'date_cre',index:'date_cre',search:false, align:"center"}, 
       {name:'dern_date_maj',index:'dern_date_maj',search:false, align:"center"}, 
       {name:'commentaires',index:'commentaires',search:false, align:"center"}, 
       {name:'auteur',index:'auteur',search:false, align:"center"}       
      ], 
      rowNum:10, 
      jsonReader: { 
       root: "rows", 
        page: "page", 
        total: "total", 
        records: "records", 
        repeatitems: false, 
        id: "nr_dossier", 
        userdata: "userdata" 
      },   
      width: 960, 
      height: "100%", 
      rowList:[10,20,30], 
      pager: '#pager1', 
      sortname: 'nr_dossier', 
      viewrecords: true, 
      rownumbers: true, 
      gridview: true, 
      loadonce: true, 
      loadComplete: function(data){ 
       alert(contratsAC.jqGrid('getGridParam', 'records')); 
       alert(contratsAC.jqGrid('getGridParam', 'reccount')); 
       if (0==contratsAC.jqGrid('getGridParam', 'records')) 
       { 
        contratsAC.jqGrid('GridUnload'); 
        $("#contratsACNoDataMessage").html('<span>Aucun enregistrement a afficher.</span>'); 
       } 
       else $("#ContratsACContainer").show(); 
      }, 
      pagination:true, 
      }).navGrid('#pager1', 
        {add: false, 
        edit:false, 
        del:false}); 
contratsAC.jqGrid('filterToolbar',{searchOnEnter:true,stringResult: true}); 

回答

2

你可以嘗試獲得由網格holded者數據數組的長度:

$("#ContratsAC").jqGrid('getGridParam', 'data').length; 
+0

優秀!非常感謝! – Samson

0

下面會給你的所有行 - 初始數據基於

contratsAC.jqGrid('getGridParam', 'records'); 

要源獲取當前頁面上的行數,讓我們在過濾後說,使用

contratsAC.jqGrid('getGridParam', 'reccount'); 

要獲得過濾後所有頁面的所有記錄,請使用以下內容

loadComplete: function (gridData) { 
        var isSearchPerformed = $grid.getGridParam("postData")._search; 
        if (isSearchPerformed) { 
         $("#spanFilterTotal").text(gridData.records);       
       }