2013-03-25 122 views
0

我有一個要求,動態填充一個網格基於視圖的選擇。 我已經按照下面的鏈接動態地填充網格。分頁不工作動態填充JqGrid

https://codereview.stackexchange.com/questions/3668/suggestions-for-jqgrid-dynamic-columns-and-server-side-paging-sortin-filterin

Problem showing jqgrid with dynamic column binding

它使用兩個Ajax調用。一個爲JqGrid獲取ColModel和ColNames,另一個獲取colData。 返回的數據僅適用於當前頁面(即20條記錄-Pagesize 20)。

我的問題是我的服務器端分頁不工作。當我點擊尋呼機上的下一個按鈕時,只有第一頁再次被加載。

在處理程序中的代碼如下

   var numberOfRows = context.Request["rowsPerPage"]; 
       int nRows, iPage; 
       if (String.IsNullOrEmpty(numberOfRows) || !int.TryParse(numberOfRows, NumberStyles.Integer, CultureInfo.InvariantCulture, out nRows)) 
        nRows = PageSize; // default value 
       var pageIndex = context.Request["pageIndex"]; 
       if (String.IsNullOrEmpty(pageIndex) || !int.TryParse(pageIndex, NumberStyles.Integer, CultureInfo.InvariantCulture, out iPage)) 
        iPage = 1; // default value 

context.Request [ 「rowsPerPage」]和context.Request [ 「的PageIndex」]總是返回null,被設置爲默認值。 我錯過了什麼。請幫忙。

回答

0

你是否檢查jqGrid的POST?它應該包括sidx,sord,頁面,行,_search,過濾器值。

然後,您的控制器將想要訪問這些值來處理數據列的排序順序以及要顯示的頁面。控制器的一個例子是:

public ActionResult getGridData(string sidx, string sord, int page, int rows, bool _search, string filters) 

編輯:

Passing Data to the jqGrid: 
      var jsonData = new 
     { 
      total = (totalRecords + rows - 1)/rows, 
      page = page, 
      records = totalRecords,     
      userdata = new { TradeIniator = tradeIniator, TradeRecepient = tradeRecepient, AnonUser = anonUser, Subtotal = tradeTotal.ToString(), FoilTradeAmount = "Trade Total" }, 
      rows = (
       from tempCard in pagedQuery.ToList()      
       select new 
       { 
        cell = new string[] {      
         value1, 
         value2, 
         .... 
        } 
       }).ToArray() 
     };//var jsonData 

return Json(jsonData, JsonRequestBehavior.AllowGet); 
+0

是的,我已經設置了參數名稱如下: – user1077595 2013-03-25 23:25:12

+0

prmNames:{頁: 「PageIndex的」 行: 「rowsPerPage」,排序: 「sortByColumn」,爲了 「中將sortOrder」,搜索: 「isSearching」}, – user1077595 2013-03-25 23:25:58

+0

所以您的jqGrid傳遞這些參數,您的控制器正在接收這些值,並且您正在根據這些參數更改您提供給jqGrid的數據集? – Mark 2013-03-25 23:51:45

0

好吧,我發現這個問題。我在colModel [{「name」:「Id」,「width」:「300」},{「name」:「Name」,「width」:「300」},{「name」: 「類型」, 「寬度」: 「300」}];

並且在我的網格初始化中width =「auto」。

因此,分頁和排序參數返回null。我刪除了線寬=「自動」,現在參數傳遞正確的值。