JQgrid获取行数(loadonce:true)

时间:2012-08-23 09:16:26

标签: jqgrid load

我有一个带有内联客户端搜索的jqgrid。当数据库返回0条记录时,我试图隐藏网格并显示自定义消息。问题是,现在当我使用过滤器时,同样的事情发生了。我需要从后端响应中获取行数,并且以下所有行都不起作用。当页面加载时我得到5和5,当我过滤时我得到0和0.如何实现?

 .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 个答案:

答案 0 :(得分:2)

您可以尝试通过网格获取数据阵列的长度:

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

答案 1 :(得分:0)

下面将为您提供所有行 - 基于初始数据源

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

要获取当前页面上的行数,请在过滤后使用

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

要在过滤后获取所有页面上的所有记录,请使用下面的

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