是否可以在JqGrid中按字母顺序对组进行排序

时间:2013-12-11 12:03:50

标签: javascript jquery jqgrid

我从服务器获得响应,以特定顺序分组数据。但是当我在jqGrid中加载数据时,它会按字母顺序自动对组进行排序,我想要服务器为我提供数据的顺序。

例如,我正在获得三组i-e大学,学院,学校的数据

现在这可以按照递增的顺序排序,即大学,学校,大学

或者

可以按照递减顺序排序,即大学,学校,大学

我应该怎么做,以便订单保持与我从服务器取回订单的顺序相同?

我想补充一点,服务器的响应存储在一个对象中然后我将这些数据加载到一个网格中,所以我想它的本地数据...... 对不起,我是jqGrid的新手

这是我的jqgrid代码。

GRID = $("#"+GRID_ID).jqGrid({
            url: sample,
            datatype: 'json',
            jsonReader : {
                        root:"rows",
                        page: "page",
                        total: "total",
                        records: "records",
                        //repeatitems: false,
                    },
            colNames: ['File', 'UID', 'Order', 'Type', 'Project','Method', 'Phase' , 'Group'],
            colModel: [{
                name: 'file',
                index: 'file',
                width: 140
            }, {
                name: 'uid',
                index: 'uid',
                width: 80
            }, {
                name: 'order',
                index: 'order',
                width: 60,
                sortable:true

            }, {
                name: 'type',
                index: 'type',
                width: 75,
                editable:true,
                edittype:"select",
                editrules: { required: true }
            }, {
                name: 'project',
                index: 'project',
                width: 100,
                editable:true,
                edittype:"select",
                editrules: { required: true }
            }, {
                name: 'method',
                index: 'method',
                width: 60,
                editable:true,
                edittype: "select",
                editrules: { required: true }, 
                //editoptions: { size: 71}
            },{
                name: 'phase',
                index: 'phase',
                width: 75,
                editable:true,
                edittype:"select",
                editrules: { required: true }
            },{
                name: 'group',
                index: 'group',
                width: 75,
                sortable: false,
                hidden:false
            }],
            loadComplete: function() {

                $("#"+GRID_ID).setColProp('type', { editoptions: { value: types} });
                $("#"+GRID_ID).setColProp('project', { editoptions: { value: project} });


            },
            //rowNum: 10,
            autowidth: true,
            rowList: [10, 50, 100],
            pager: $("#"+PAGER_ID),
            loadonce: true,
            sortname: 'order',
            viewrecords: true,
            sortOrder: "asc",
            multiSort: false,
            pgbuttons: true,
            pginput: true,          
            cellEdit: true, 

            cellsubmit : 'clientArray',
            editurl: 'clientArray',
            height: "100%",
            toolbar: [true, "bottom"],
            grouping:true,
            groupingView : { 
                groupField : ['group'],
                groupDataSorted : true,
                groupSorted:false,
                groupColumnShow:[true],
                sortable:false 
            },
            caption: 'JqGrid Examples'
        }).navGrid("#"+PAGER_ID, {
            edit: false,
            add: false,
            del: false
        });

1 个答案:

答案 0 :(得分:1)

我也有同样的问题。我已经解决了以下问题。

1)在行中添加了索引

2)为服务器端的每一行提供订单(如1,2,3 ......)

3)和JQGrid中的设置

        loadonce: false,
        altRows: true,
        sortname: 'index',     /* this filed */
        sortorder: "asc",       /* this filed */
        grouping: true,
        groupingView: {
            groupField: ['group'],
            groupColumnShow: [false],
            groupCollapse: true,
            groupSorted: false,     /* this filed */
            groupDataSorted: true  /* this filed */
        },

使用All 4 / *这个归档* /值,我们可以实现这个目标。

假设您的案例组(组中的元素)如大学(a,b),大学(x,y,z),学校(p,q,r,s,t)。

然后在服务器端。 (指数,元素)(1,a),(2,b),(3,x),(4,y),......(10,t)。 尝试这个,如果没有工作让我们知道。 感谢名单。