コードが表示されないと、状況が少し難しくなります。しかし、これは私のプロジェクトの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',
//...
});