分页无法处理动态填充的JqGrid

时间:2013-03-25 21:08:27

标签: asp.net jquery 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并设置为默认值。 我错过了什么请帮忙。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

好的,我发现了问题。我的colModel中有以下内容 [{"名称":"标识""宽度":" 300"},{"名称":& #34;名称""宽度":" 300"},{"名称":"类型""宽度":" 300"}];

并且width =" auto"在我的网格初始化。

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