2017-05-11 72 views
0

這裏新鮮和新鮮的jqgrid .i有一些關於按給定列排序jqgrid的問題。請給我一個例子,以下是我的代碼。如何排序一列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 ...請 –

+0

您確定它是jqgrid嗎?因爲你提到了「$ gridList.dataGrid」而不是「$ gridList..jqGrid」 –

回答

0

如果你需要FinishRate列到網格進行排序,那麼你應該添加的jqGrid的sortname: "FinishRate"參數。它會發送附加參數sidx=FinishRateurl: '@Url.Action("GetMonthEnrollPlanFinishRateData")'。順便說一下,我不確定是否要在與服務器通信時使用XML或JSON格式的數據。如果服務器('@Url.Action("GetMonthEnrollPlanFinishRateData")')返回JSON數據,則應添加datatype: "json"

重要的是理解比jqGrid允許你兩種替代方案:在服務器端或客戶端的排序,尋呼和過濾/搜索。如果網格中的總行數不是太大(例如< 1000或< 10000),則建議使用客戶端方案。您只需將loadonce: trueforceClientSorting: true選項添加到網格並從服務器返回所有項目的數組。 jqGrid會自動爲你分類數據。僅當您使用free jqGrid分叉時,才能使用forceClientSorting: true選項,這一點很重要。

如果您使用舊版本的jqGrid或沒有免費的jqGrid,那麼您將不得不在本地對數據進行排序或使用the answer中描述的技巧。

如果你有大量的網格項目,前提是你不能使用loadonce: true,你將不得不基礎上sidx價值觀和sord參數服務器上的數據進行排序(sord描述排序方向,它具有值"asc""desc")。