我有一个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",应该如此。
知道这里发生了什么?
谢谢
答案 0 :(得分:0)
我已经解决了。我意识到当你进行分组并且数据是远程的时,jqGrid会将sidx更改为 groupByColumn sord,orderByColumn 。 我必须在服务器中管理这些信息,以便从sidx orderByColumn获取并使用它来订购数据。