MVC+EF+分页条 实现刷新分页
Ef实现分页的方法:
Skip : 跳过指定的条数
Take : 取出连续的条数
注意:Ef分页要先指定一个排序
例如:假设每页显示5条 page,rows
第一页:page= 1, rows =5
Oae.Users.orderby(a=>a.Id).skip(0).take(5)
Oae.Users.orderby(a=>a.Id).skip((page-1)* rows).take(rows)
第二页:page= 2, rows =5
Oae.Users.orderby(a=>a.Id).skip(5).take(5)
Oae.Users.orderby(a=>a.Id).skip((page-1)* rows).take(rows)
第三页:
Oae.Users.orderby(a=>a.Id).skip(10).take(5)
Oae.Users.orderby(a=>a.Id).skip((page-1)* rows).take(rows)
在前台实现分页条
这是写好的分页条
创建数据库和用户表
插入测试数据
在后台实现代码:
在DAL层写方法
/// <summary>
/// 分页查询用户表
/// </summary>
/// <param name="page"></param>
/// <param name="rows"></param>
/// <returns></returns>
public List<Users> GetList(int page,int rows)
{
OAEntities oae = new OAEntities();
List<Users> ulist = oae.Users.OrderBy(a => a.Id).Skip((page - 1) * rows).Take(rows).ToList();
return ulist;
}
/// <summary>
/// 查询总条数
/// </summary>
/// <returns></returns>
public int GetAllCount()
{
OAEntities oae = new OAEntities();
return oae.Users.Count();
}
在控制台调用方法
public ActionResult Index(int? page,int? rows)
{
//实例化DAL层
UserDAL ud = new UserDAL();
if (page==null)//第一次加载
{
page = 1;
rows = 5;
}
List<Users> ulist = ud.GetList((int)page, (int)rows); //调用分页查询用户表的方法
ViewBag.ulist = ulist;
//把当前页传到前台
ViewBag.cpage = page;
//总条数
int allcount = ud.GetAllCount();
//把总条数变成总页数
int allpage = (int)(allcount/rows);
if (allcount%rows!=0)
{
allpage = allpage + 1; //如果余数不为0总页数就加上1
}
//把总页数传到前台
ViewBag.allpage = allpage;
return View();
}
在前台把用户表遍历出来
取出当前页和总页数
最后在网页中实现分页的效果