使用C#在LINQ中自定义分页

时间:2013-02-01 06:58:01

标签: asp.net-mvc-3 linq

我试图用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);

1 个答案:

答案 0 :(得分:2)

Tot可能无法被AC.Rows整除,因此您应该执行int totpages = (int)Math.Ceiling(((double)Tot)/ AC.Rows);

之类的操作