2013-12-11 106 views
1

我收到服務器的響應,該響應按特定順序給出數據分組。但是當我在jqGrid中加載數據時,它會自動按字母順序對組進行排序,並且我希望服務器爲我提供數據的順序。在JqGrid中是否可以按字母順序排序組?

比如我在三組中獲取數據,即大學,學院,學校

現在,這可以被分類爲即大學,中學,大學遞增的順序

或者

可以進行排序作爲遞減順序,即大學,學校,學院

我應該怎麼做,以便順序將保持在我從服務器回來的順序相同?

我想要做一些另外的服務器的響應存儲在一個對象,然後我加載在網格中的數據,所以我想它的本地數據... 對不起,我是新來的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 
     }); 
+0

它應該按照您從服務器接收它的順序顯示。你可以在這裏發佈你的jqGrid代碼,這樣我可以看看嗎? – FastTrack

+0

是的,您需要在服務器生產數據時發佈一些代碼。很有可能它會按照字母排序數據並以asc或desc的形式返回。 – Mark

回答

1

我也有同樣的問題。我已經解決了如下。

1)行

2)在遞交加索引的jqGrid中

提供順序(如1,2,3 ....)的每一行上的服務器側

3)和設置

 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 */ 
     }, 

與所有4/*這個提交* /值,我們可以實現這一點。

假設在你的病例組(元素組)中,像大學(a,b),大學(x,y,z),學校(p,q,r,s,t)。

然後在服務器端。 (1,a),(2,b),(3,x),(4,y),...,(10,t)。 試試這個,如果沒有工作讓我知道。 Thanx。