0

我有一个带有内联客户端搜索的 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});
4

2 回答 2

2

您可以尝试获取网格保存的数据数组的长度:

$("#ContratsAC").jqGrid('getGridParam', 'data').length;
于 2012-08-23T09:31:13.350 回答
0

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

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

要获取当前页面上的行数,让我们说过滤后,使用

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

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

loadComplete: function (gridData) {
                    var isSearchPerformed = $grid.getGridParam("postData")._search;
                    if (isSearchPerformed) {
                        $("#spanFilterTotal").text(gridData.records);                        
                }
于 2016-03-23T16:35:55.540 回答