我试图用LINQ进行自定义分页。一切都好。但是最后一页导致上一页输出值。我知道因为这个,
int skip = Math.Max(AC.rows * (AC.page - 1), 0); // Doing page -1.
但我需要知道如何才能使逻辑纯粹与分页一起工作。请某人指导我为此做正确的逻辑。
代码
var selectpending = CsA.CsAutoCompletes(AC, searchTerm);
var Tot = selectpending.Count();
int skip = Math.Max(AC.rows * (AC.page - 1), 0);
int totpages = Convert.ToInt32(Tot / AC.rows);
um = selectpending.Skip(skip).Take(AC.rows).ToList();
return Json(new
{
rows = um,
records = Tot,
page = AC.page,
total = totpages
}
, JsonRequestBehavior.AllowGet);
答案 0 :(得分:2)
Tot
可能无法被AC.Rows
整除,因此您应该执行int totpages = (int)Math.Ceiling(((double)Tot)/ AC.Rows);