JQGrid服务器端分页不起作用?

时间:2012-07-05 06:54:56

标签: jquery-ui struts2 jqgrid pagination

我是JQGrid的新手。让我解释一下我面临的问题......

我正在使用struts2-jquery网格,它在内部使用JQGrid,并在外面控制网格,例如:我使用搜索元素来过滤网格中的行。

当网格加载时,寻呼机工作正常,但是当过滤数据时,寻呼机不工作并且它显示一些无限值。任何人都可以告诉我解决方案,因为我也不能发布我的代码......如果我得到任何有关上述问题的工作实例真的很明显......

1 个答案:

答案 0 :(得分: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基本上是这样做的。 (我在其中使用了Scott 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',
           //...
 });