2013-12-10 84 views
0

我一直在遵循教程在https://tpeczek.codeplex.com/獲取jqGrid工作和更新我的GetData()actionresult以啓用分頁和排序,現在我的網格不再顯示數據,但我不知道爲什麼沒有錯誤拋出拋出。代碼曾經工作:jqGrid不顯示數據,但分頁和列名顯示/工作正常

public ActionResult GetData() 
    { 
     try 
     { 
      var model = (from s in db.Sections 
         select new 
         { 
          s.ID, 
          s.RouteName, 
          s.Title 
         }).ToList(); 
      return Json(model, JsonRequestBehavior.AllowGet); 
     } 
     catch (Exception ex) 
     { 
      ErrorSignal.FromCurrentContext().Raise(ex); 
      return Json(null, JsonRequestBehavior.AllowGet); 
     } 
    } 

我的新代碼試圖添加分頁和排序。

公共的ActionResult的GetData(字符串SIDX,串SORD,INT頁,INT行) { 嘗試 { INT行數= db.Sections.Count(); int SkipCount =(page * rows);

  string OrderBy = (sidx + " " + sord); 

      var SectionData = new 
      { 
       total = (int)Math.Ceiling((float)RowCount/(float)rows), 
       page = page, 
       records = RowCount, 
       rows = (from s in db.Sections 
         select new 
         { 
          id = s.ID, 
          cell = new string[] { 
           SqlFunctions.StringConvert((double)s.ID).Trim(), 
           s.RouteName, 
           s.Title 
          } 
          .OrderBy(x => sidx) 
          .Skip(SkipCount) 
          .Take(rows) 
         }).ToArray() 
      }; 
      return Json(SectionData, JsonRequestBehavior.AllowGet); 
     } 
     catch (Exception ex) 
     { 
      ErrorSignal.FromCurrentContext().Raise(ex); 
      return Json(null, JsonRequestBehavior.AllowGet); 
     } 

    } 

編輯: 的jqGrid代碼:

<script type="text/javascript"> 
$(document).ready(function() 
{ 
    $('#Sections').jqGrid({ 
     url: '/Admin/Section/GetData', 
     datatype: 'json', 
     mtype: 'GET', 
     colNames: ['ID', 'RouteName', 'Title'], 
     colModel: [ 
        { name: 'ID', index: 'ID', width: '10' }, 
        { name: 'RouteName', index: 'RouteName', width: '50' }, 
        { name: 'Title', index: 'Title' } 
     ], 
     autowidth: true, 
     height: '100%', 
     pager: $('#SectionsPager'), 
     rowNum: 10, 
     sortname: 'ID', 
     sortorder: 'asc', 
     viewrecords: true 
    }).navGrid(
     '#SectionsPager', 
     //enabling buttons 
     { add: true, del: false, edit: false, search: false }, 
     //edit options 
     { width: 'auto' }, 
     //add options 
     { width: 'auto', url: '/Admin/Section/Add' }, 
     //delete options 
     {}); 
}); 

+0

@ Eagle..please爲jqgrid..there顯示的代碼可能是錯誤 –

+0

@Avinash對此感到遺憾被衝出工作,忘了。我現在添加了它。 – Matthew

回答

-1

所以我結束了添加命令loadonce: true到的jqGrid配置,以使客戶機側排序和已刪除在服務器端處理所有代碼排序。我的網格現在顯示的數據和排序和分頁罰款。

+0

@ Matthew..Firstly,也有jqGrid的分類有兩種方式。服務器端和客戶端。你沒有提到你的需求,即你想要客戶端還是服務器端。其次,由於你的代碼類似於服務器端分頁,我添加了答案。所以,在你投降之前請考慮一下,在問題中提到你的要求。您提出的問題以及您回答的答案會明確地誤導SO的許多用戶。有趣的是,你的問題涉及服務器端分頁,而答案是客戶端分頁。 –

+0

@Avinash我下來投你,因爲你的建議添加的'數據類型:「JSON」'已經在我的代碼,你的建議刪除'loadOnce:從我的代碼TRUE'當它不存在。您的回答沒有提供有關問題或解決方案的信息。我的問題確實有它的服務器端的代碼,但沒有要求有它在服務器或客戶端上的,所以我的回答也得到解決分頁工作的問題。對於人們試圖以某種方式做事情的問題,有很多問題,最好的答案是再做一次,這將是其中的一次。 – Matthew

-1

您需要設置:datatype: "json",如果在你使用loadOnce:true刪除..

+0

根據jqGrid文檔,loadOnce的默認設置爲false。 – Matthew