Не замечая никакого кода, бит сложный. Но вот код, который я использовал в одном из моих проектов для реализации пагинации в проекте, который используется 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 в основном делает что-то подобное. (Я использовал динамическую библиотеку LINQ Скотта Гатри внутри него, что было очень полезно, если не решающее значение для осуществления поиска в JQgrid с использованием LINQ)
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',
//...
});
См Olegs anwser здесь: http://stackoverflow.com/questions/8479777/add-paging-for-jqgrid –