如何按一列对jqgrid进行排序

时间:2017-05-11 09:01:01

标签: c# jquery jqgrid

新鲜的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,
    });
}

1 个答案:

答案 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: trueforceClientSorting: true选项,并从服务器返回所有项目的数组。 jqGrid会自动为您排序数据。只有在使用free jqGrid分叉时,才能使用forceClientSorting: true选项,这一点非常重要。

如果您使用旧版本的jqGrid或不使用免费的jqGrid,则必须在本地对数据进行排序或使用the answer中描述的技巧。

如果网格中有大量项目,您无法使用loadonce: true,则必须根据sidx和{的值对服务器上的数据进行排序{1}}参数sord描述了排序方向,其值为sord"asc"。)