我有一个具有以下定义的网格。一切都和网格一样正常。
$("#grid").jqGrid({
url:'report_data.php',
datatype: 'json',
mtype: 'POST',
colNames:['Type','Term','Number','Visits','Calls','Unique','Avg. Duration',
'Conversion Rate'],
colModel :[{"index":"keyword_type","name":"Type","width":90},
{"index":"keyword","name":"Term","width":170},
{"index":"phone_number","name":"Number","width":100},
{"index":"visits","name":"Visits","width":80},
{"index":"calls","name":"Calls","width":70},
{"index":"unique_calls","name":"Unique","width":70},
{"index":"avg_duration","name":"Avg. Duration"},
{"index":"conversion_rate","name":"Conversion Rate","width":80}],
rowNum:100,
rowList:[25,50,100,200,500],
sortname: 'keyword_type',
sortorder: 'desc',
viewrecords: true,
height: '470px',
width: 'auto',
loadui: 'block',
postData: {"keyword_set":"140","display_type":"direct"}
});
页面上有链接过滤网格。当用户单击链接时,我设置了一些网格参数并使用以下方法重新加载网格:
var param_string = "filter=keyword&type=ppc";
$('#grid').setGridParam({url:'report_data.php',
postData:param_string}).trigger("reloadGrid");
网格使用新数据重新加载,但是,列不再可排序。我可以看到数据被发送到服务器,但它不再包含'sidx'或'sord'参数。在触发重新加载之前,排序工作正常。
有关如何在重新加载网格后再次传递排序参数的任何想法?
谢谢, 丹
答案 0 :(得分:2)
您应该使用另一种语法作为postData
参数:
$('#grid').setGridParam({url:'report_data.php',
postData:{filter:"keyword",type:"ppc"}
}).trigger("reloadGrid");
您当前的语法postData:"filter=keyword&type=ppc"
覆盖所有其他参数(page
,rows
,sidx
,sord
等等)并且服务器无法正确排序数据。