jqGrid服务器端进行分组排序

时间:2014-08-08 12:25:31

标签: sorting jqgrid grouping

我有一个jqGrid处理分组。数据的排序和分页是由服务器端进行的,因为我有太多的行,所以loadonce对我来说不是一个选项。 我遇到的问题是传递给服务器的sidx参数是错误的(它也包含sord参数和重复的sidx),因此服务器无法在表中找到该列。

我已经意识到,如果我评论分组,sord和sidx恢复正常。

这是我的代码:

jQuery("#grid-destinations").jqGrid({
  url:'destinations',
  datatype: "json",
  colModel:[
            {name:'id', hidden:true},
            {name:'cliDestination', jsonmap: 'cliDestination.destinationDesc', index: 'cliDestination', label:'Destination', width:55},
            {name:'orgSub', jsonmap: 'orgSub.subscriptionId', label:'Client', width:55, summaryTpl:''},
            {name:'numCalls', label:'Calls', width:55, formatter:'number', summaryType:'sum'},
            {name:'orgSeconds', label:'Client Minutes', width:55, formatter:'number', summaryType:'sum'},
            {name:'aloc', label:'ALOC', width:55, formatter: 'number', summaryType:'avg', summaryRound: 2, summaryRoundType:'round'},
            {name:'currency', jsonmap: 'orgSub.btsAccount.accountCurrency.currencySymbol', label:'Currency', width:55, summaryTpl:''},
            {name:'saleRate', label:'Sell rate', width:55, summaryType:'avg', summaryRound: 4, summaryRoundType:'round'},
            {name:'income', label:'Income', width:55, summaryType:'sum'},
            {name:'purchaseRate', label:'Cost rate', width:55, summaryType:'avg', summaryRound: 4, summaryRoundType:'round'},
            {name:'cost', label:'Cost', width:55, summaryType:'sum'},
            {name:'profit', label:'Profit', width:55, summaryType:'sum'},
            {name:'percentageProfitIncome', label:'%Prof/Income', width:55, summaryType:'avg', summaryRound: 2, summaryRoundType:'round'}
        ],
  autowidth: true,
  gridview: true,
  viewrecords: true,
  sortname: "cliDestination",
  sortorder: "asc",
  rowNum:100,
        rowList:['All','100','500','1000'],
        pager: '#pager-destinations',
        emptyrecords: "Nothing found to display",
        jsonReader: {
            root: 'content',
            id: 'id',
            repeatitems: false,
            total: 'totalPages',
            records: 'totalElements'
        },
  // grouping
  grouping:true, 
  groupingView : { 
      groupField : ['cliDestination'],
      groupCollapse: true,
      groupSummary: true,
      groupSummaryPos: "header"
  }
}).jqGrid('navGrid','#pager-destinations', {
        edit: false,
        view: false,
        add: false,
        del: false
    }, 
    { }, // edit options
    { },// add options
    { },// del options
    { }, // search options 
    { } // view options
    ).jqGrid('setGridHeight', $("#page").height() - 175);
}

我通过cliDestination对数据进行分组。 cliDestination是具有ID和描述的另一个对象,因此在表中我看到了描述,因为jsonmap属性。 我希望cliDestination.destinationDesc也可以订购数据。

这是向服务器发送param sidx为" cliDestination asc,cliDestination"和sord as" asc"。 当我评论分组配置时,sidx是" cliDestination"和sord" asc",应该如此。

知道这里发生了什么?

谢谢

1 个答案:

答案 0 :(得分:0)

我已经解决了。我意识到当你进行分组并且数据是远程的时,jqGrid会将sidx更改为 groupByColumn sord,orderByColumn 。 我必须在服务器中管理这些信息,以便从sidx orderByColumn获取并使用它来订购数据。