Jquery jqGrid分组在chrome中不适用于多列

Jquery jqGrid分组在chrome中不适用于多列,jquery,google-chrome,jqgrid,Jquery,Google Chrome,Jqgrid,我在应用程序中使用jqgrid。我从jsp页面中的json数据集中找到它的本地。我希望我的数据集按年度和月份分组。对于sort by month,我使用了一个字段monthno numeric来避免字母排序。它在firefox中工作得很好,但在chrome中却不行。附加了chrome浏览器的屏幕截图。我使用的是jqGrid版本5.0.0。以下是我的网格代码 $("#doctorChart").jqGrid({ data: mydata, datatype: "local",

我在应用程序中使用jqgrid。我从jsp页面中的json数据集中找到它的本地。我希望我的数据集按年度和月份分组。对于sort by month,我使用了一个字段monthno numeric来避免字母排序。它在firefox中工作得很好,但在chrome中却不行。附加了chrome浏览器的屏幕截图。我使用的是jqGrid版本5.0.0。以下是我的网格代码

$("#doctorChart").jqGrid({ 
   data: mydata, 
   datatype: "local", 
   height: 'auto',
   width: 'auto', 
   pager: '#psingle',
   rowNum: 60,  
   //sortable :true,           
   //to hide pager buttons
   pgbuttons:false,
   recordtext:'',
   pgtext:'',    


  colNames:['Year', 'Month', 'Doctor Name','Pharmacy<br>Revenue', 'Diagnostic<br>Revenue', 'OP Revenue', 'IP Revenue', 'Package<br>Revenue', 'Total<br>Revenue'],
  colModel:[ {name:'year',index:'year', width:80, sorttype:"int",sortable:false}, 
             {name:'month',index:'month', width:80,sorttype:function(cell){ return cell.monthno}},
             {name:'doctorname',index:'doctorname',width:165,sortable:false},          
             {name:'pharmacyRevenue',index:'pharmacyRevenue', width:100, align:"right",sorttype:"float", formatter:"number", summaryType:'sum'},    
             {name:'diagonasticRevenue',index:'diagonasticRevenue', width:100, align:"right",sorttype:"float", formatter:"number", summaryType:'sum'},
             {name:'opRevenue',index:'opRevenue', width:100, align:"right",sorttype:"float",formatter:"number", summaryType:'sum'},
             {name:'ipRevenue',index:'ipRevenue', width:100, align:"right",sorttype:"float",formatter:"number", summaryType:'sum'},
             {name:'packgRevenue',index:'packgRevenue', width:100, align:"right",sorttype:"float", formatter:"number", summaryType:'sum'},                 
             {name:'revenue',index:'revenue', width:100, align:"right",sorttype:"float", formatter:"number", summaryType:'sum'} ], 


   sortname: ['year','month','doctorname'], 
   viewrecords: true, 
   sortorder: "asc", 
   grouping: true, 
   grouping: true, 
   groupingView : { 
        groupField : ['year','month'], 
        groupSummary : [false, false], 
        groupColumnShow : [true, true], 
        groupText: [ // user the name of a column with curly braces to use it in a summary expression. 
                    // {0} is the formula placeholder for the column (defined by the summaryType property
                   "<b>{0}</b>" , 

                    "<div style='float:left;'>Month: <b>{0}</b></div>"+
                    "<div style='float:right; width: 65%; text-align:right;'><div style='width:100px; font-weight:bold; float:left; text-align:right;'>{pharmacyRevenue}</div>"+
                        "<div style='width:100px; font-weight:bold; float:left; text-align:right;'>{diagonasticRevenue}</div>"+
                        "<div style='width:100px; font-weight:bold; float:left; text-align:right;'>{opRevenue}</div>"+
                        "<div style='width:100px; font-weight:bold; float:left; text-align:right;'>{ipRevenue}</div>"+
                        "<div style='width:100px; font-weight:bold; float:left; text-align:right;'>{packgRevenue}</div>"+
                        "<div style='width:100px; float:right; text-align:right;'><label>Total: </label> <b>{revenue}</b></div>"+                               
                    "</div>"


       ], 
        groupCollapse : true, 
        groupOrder: ['asc','asc'],
        groupDataSorted : true,
        groupSummaryPos: ['header']
   },
   footerrow: true, 
   userDataOnFooter: true,
   loadComplete: function () {
    var reportSum = jQuery("#doctorChart").jqGrid('getCol', 'revenue', false, 'sum');


            var pharmacySum = jQuery("#doctorChart").jqGrid('getCol', 'pharmacyRevenue', false, 'sum'); 
            var diagonasticSum = jQuery("#doctorChart").jqGrid('getCol', 'diagonasticRevenue', false, 'sum');   
            var opSum = jQuery("#doctorChart").jqGrid('getCol', 'opRevenue', false, 'sum'); 
            var ipSum = jQuery("#doctorChart").jqGrid('getCol', 'ipRevenue', false, 'sum'); 
            var packgSum = jQuery("#doctorChart").jqGrid('getCol', 'packgRevenue', false, 'sum');   


        jQuery("#doctorChart").jqGrid('footerData', 'set', 
        { 
            month: 'Grand Total:',
            revenue: reportSum ,

            pharmacyRevenue : pharmacySum,
            diagonasticRevenue : diagonasticSum,
            opRevenue : opSum,
            ipRevenue : ipSum,
            packgRevenue : packgSum

        });
    }

我不知道jqGrid 5.0.0中的变化,因为我开发了替代fork,目前的版本是4.9.2。然而,我认为sortname:['year','month','doctorname']选项是错误的。该值应为字符串。我想您更想要的是sortname选项:“doctorname”

你主要问题的原因如下。您应该从中修复月份列的定义

{名称:'month',索引:'month',宽度:80, sorttype:功能单元{ 返回单元monthno } }, 到

{名称:'月份',宽度:80, sorttype:功能单元格,项目{ 返回项。monthno; } },
谢谢,这很有效。但当我以另一种方式改变分组时,它就搞砸了。@tuhinsubgradey:不客气!对不起,我不明白你之前的评论是什么意思。你改变了什么?您期望的是什么,看到的是什么?我使用了上面的数据集,并尝试了分组字段:['doctorname','year']和我的sortname:'doctorname',但它没有按月份排序。@tuhinsubgrade:最后的选项没有任何对'month'列的引用。在这种情况下,为什么jqGrid应该按月分组或排序?我不知道你需要什么。groupingView:{…,groupField:['year','month'],…},sortname:'doctorname'或groupingView:{…,groupField:['doctorname','year'],…},sortname:'month'可能有意义,但groupingView:{…,groupField:['doctorname','year'],},sortname:'doctorname'可能没有意义。在分组过程中,jqGrid必须首先按groupField中的列进行排序,它可以使用另一个字段在组内进行排序。实际上,我想要这两个字段。用户可以按列动态更改组。
var mydata = [

               {
                  year:"2015",
                  month:"April",
                  doctorname:"Ben Pomeroy",
                  revenue:"29012.0",                      
                  monthno: 4,                      

                  pharmacyRevenue:"5906.0",
                  diagonasticRevenue:"0.0",
                  opRevenue:"4119.0",
                  ipRevenue:"11351.0",                    
                  packgRevenue: "7636.0"

              } ,

               {
                  year:"2015",
                  month:"April",
                  doctorname:"Kerry Hall",
                  revenue:"35396.0",                      
                  monthno: 4,                      

                  pharmacyRevenue:"6705.0",
                  diagonasticRevenue:"1959.0",
                  opRevenue:"7384.0",
                  ipRevenue:"6837.0",                     
                  packgRevenue: "12511.0"

              } ,

               {
                  year:"2015",
                  month:"April",
                  doctorname:"Maarten Schuth",
                  revenue:"29122.0",                      
                  monthno: 4,                      

                  pharmacyRevenue:"4850.0",
                  diagonasticRevenue:"1794.0",
                  opRevenue:"7119.0",
                  ipRevenue:"3316.0",                     
                  packgRevenue: "12043.0"

              } ,