新鲜的jqgrid .i有一些关于按给定列排序jqgrid的问题。请给我一个例子,以下是我的代码。
function gridList() {
var $gridList = $("#gridList1");
$gridList.dataGrid({
mtype: 'Get',
url: '@Url.Action("GetMonthEnrollPlanFinishRateData")',
postData: { },
height: $(window).height() - 128,
colModel: [
{
label: "主键", name: "Id", hidden: true, key: true
},
{ label: '真实姓名', name: 'RealName', width: 150, align: 'left' },
{ label: '本月目标', name: 'CurrentMonthPlan', width: 160, align: 'left'},
{ label: '本月招生', name: 'CurrentMonthFinish', width: 160, align: 'left' },
{ label: '完成率Hidden', name: 'FinishRateHidden', width: 150, align: 'left', hidden: true },
{ label: '完成率', name: 'FinishRate', width: 150, align: 'left' },
{ label: '状态', name: 'Status', width: 150, align: 'left' },
],
pager: '#gridPager1',
viewrecords: true,
//sortname: "CurrentMonthPlan",
//sortorder: "asc",
////pginput: true,
////caption: "",
//sortable: true,
});
}
答案 0 :(得分:0)
如果您需要按FinishRate
列对网格进行排序,则应添加jqGrid的sortname: "FinishRate"
参数。它会将附加参数sidx=FinishRate
发送到url: '@Url.Action("GetMonthEnrollPlanFinishRateData")'
。顺便说一句,我不确定您是否要在与服务器通信时使用XML或JSON格式的数据。如果服务器(datatype: "json"
)返回JSON数据,则应添加'@Url.Action("GetMonthEnrollPlanFinishRateData")'
。
理解这一点非常重要,因为jqGrid允许您两种备选方案:在服务器端或客户端进行排序,分页和过滤/搜索。如果网格中的总行数不太大(例如&lt; 1000或<10000),则建议使用客户端方案。您只需向网格添加loadonce: true
和forceClientSorting: true
选项,并从服务器返回所有项目的数组。 jqGrid会自动为您排序数据。只有在使用free jqGrid分叉时,才能使用forceClientSorting: true
选项,这一点非常重要。
如果您使用旧版本的jqGrid或不使用免费的jqGrid,则必须在本地对数据进行排序或使用the answer中描述的技巧。
如果网格中有大量项目,您无法使用loadonce: true
,则必须根据sidx
和{的值对服务器上的数据进行排序{1}}参数sord
描述了排序方向,其值为sord
或"asc"
。)