2012-07-05 32 views
1

我是新來的jqGrid。讓我解釋我面臨的問題...JQGrid服務器端分頁不起作用?

我正在使用struts2-jQuery網格,這是內部使用JQGrid,並在外面控制網格,例如:我正在使用搜索元素篩選網格中的行。

當過網格正在加載,尋呼機工作正常,但是當我來過濾數據的尋呼機不能正常工作,它顯示了一些無窮大的值。任何一個都可以在那裏告訴我解決了這一點,因爲我不能發佈我的代碼也...如果我有任何的工作例如針對上述問題確實是明顯的...

+0

見Olegs anwser在這裏:http://stackoverflow.com/questions/8479777/add-paging-for-jqgrid –

回答

1

沒有看到任何代碼,使事情有點困難。但這裏是我在我的項目之一用來實現所使用的jqGrid項目分頁代碼(看它是否可以幫助你,無論如何,或者從哪裏開始調試指示)

服務器端代碼

public ActionResult GridData(int page, int rows, string searchField = "", string searchString = "", 
            string searchOper = "", string sidx = "ID", string sord = "desc") 
     {   
      int pageIndex = Convert.ToInt32(page) - 1; 
      int pageSize = rows; 

      var items = _repo.GetItemDatacollection(searchField, searchString, searchOper, pageIndex, pageSize, sidx, sord); 

      int totalRecords = _repo.GetAll().Count(); 
      var totalPages = (int)Math.Ceiling(totalRecords/(float)pageSize); 

      var jsonData = new 
      { 
       total = totalPages, 
       page, 
       records = totalRecords, 
       rows = (from item in items.ToList() 
         select new 
         { 
          i = item.ID, 
          cell = new[] { item.ID, item.Name } 
         }).ToArray() 
      }; 
      return Json(jsonData, JsonRequestBehavior.AllowGet); 
     } 

GetItemDataCollection基本上做了這樣的事情。 (我利用斯科特Guthrie的動態LINQ庫裏面,這是非常有用的,如果不是關鍵了使用LINQ中的jqGrid執行搜索)

return _entities.Set<T>().Where(ConvertOpr(searchOper, searchField), searchString) 
             .OrderBy(sidx + " " + sord) 
             .Skip(pageIndex * pageSize) 
             .Take(pageSize); 

jqGrid的實施

jQuery('#theGrid').jqGrid({ 
      url: '@Url.Action("GridData")', 
      datatype: 'json', 
      mtype: 'GET', 
      //... 
}); 
+0

非常感謝....我得到的答案前幾天......我也用你的同樣的方法... .. – Esh