0

我需要根据视图的选择动态填充网格。我按照下面的链接动态填充网格。

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

显示带有动态列绑定的 jqgrid 的问题

它使用两个 ajax 调用。一次获取 JqGrid 的 ColModel 和 ColNames,第二次调用获取 colData。返回的数据仅针对当前 Page(即 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 并设置为默认值。我错过了什么。请帮忙。

4

2 回答 2

0

你在检查来自 jqGrid 的 POST 吗?它应该包括 sidx、sord、page、rows、_search、filters 值。

然后,您的控制器将希望访问这些值以处理数据列的排序顺序以及要显示的页面。控制器的一个例子是:

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);
于 2013-03-25T22:48:44.950 回答
0

好的,我发现了问题。我的 colModel [{"name":"Id","width":"300"},{"name":"Name","width":"300"},{"name":"类型","宽度":"300"}];

以及我的网格初始化中的 width="auto" 。

因此,分页和排序参数返回 null。我删除了 line width="auto",现在参数以正确的值传递。

于 2013-03-26T13:40:36.643 回答