如何使用 mvc4 解决 JQGrid 中的服务器端分页问题

How do I solve server side pagination issue in JQGrid using mvc4

我在使用 mvc 的 jqgrid 中遇到服务器端分页问题。这是我的控制器代码。

[HttpGet]
public JsonResult GetAllStudents(JqGridRequest jRequest) {
    var Records =  from a in entities.studentdetails.ToList() select new {
        a.ID,
        a.Name,
        a.DOB
    };
    int pageIndex = Convert.ToInt32(jRequest.PageIndex);
    int pageSize = jRequest.RecordsCount;
    int startRow = (pageIndex * pageSize) + 1;
    int totalRecords = Records.Count();
    int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);
    Records = Records.Skip(pageIndex * pageSize).Take(pageSize).ToArray();    
    if (jRequest.Searching) {
        int sId = Convert.ToInt32(jRequest.SearchingFilters.Filters[0].SearchingValue);
        //string sName = jRequest.SearchingFilters.Filters[0].SearchingValue;
        Records = entities.studentdetails.Select(a => new {
            a.ID,
            a.Name,
            a.DOB
        }).Where(p => p.ID == sId);
    }
    else {
       Records = entities.studentdetails.Select(a => new {
           a.ID,
           a.Name,
           a.DOB
       });
    }
    var jsonData = new {
        total = totalPages,
        page = pageIndex,
        records = totalRecords,
        rows = Records
    };
    return Json(jsonData, JsonRequestBehavior.AllowGet); 
}

以下是我所做的一些更改,问题已解决。

1- int pageIndex = Convert.ToInt32(jRequest.PageIndex) + 1;

2- 记录 =

entities.studentdetails.Select(
                a => new
                {
                    a.ID,
                    a.Name,
                    a.DOB
                })**.OrderBy(s => s.ID).Skip((pageIndex-1) *   pageSize).Take(pageSize).ToArray();**