2013-03-25 124 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。我删除了线宽=“自动”,现在参数传递正确的值。