EF CodeFirst 完成分页显示
一,创建步骤在 ‘’EF CodeFirst 具体创建步骤‘’ 那篇博文中
注意:
需要多表时要声明外键
[ForeignKey("school")]
public int SId { set; get; }
并在类中创建主表类的属性 --School:主表类(自己起的名)
public School school { set; get; }
二,Dal层分页方法
增删改查之前要先实例化‘上下文’
//实例化上下文
UsersDbContext db = new UsersDbContext();
/// <summary>
/// 分页显示
/// </summary>
/// <param name="Name">名字模糊查</param>
/// <param name="pageIndex">当前页码</param>
/// <param name="pageSize">页大小</param>
/// <param name="totalCount">总条数</param>
/// <param name="pageCount">总页数</param>
/// <returns></returns>
public List<Users> PageShow(string Name ,int pageIndex,int pageSize,ref int totalCount,ref int pageCount)
{
IQueryable<Users> page = db.Users.Include("school");
//查询条件
if(!string.IsNullOrEmpty(Name))
{
page = page.Where(u => u.UName.Contains(Name));
}
totalCount = page.Count();
pageCount = (int)Math.Ceiling(totalCount * 1.0 / pageSize);
return page.OrderBy(u => u.UId).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
}
查询条件可以根据要求增加
三,编写控制器中代码并创建视图
强类型(只需一个方法):
public ActionResult Index(string Name , int pageIndex=1,int pageSize=3)
{
int totalCount = 0, pageCount = 0;
var list = dal.PageShow(Name, pageIndex, pageSize, ref totalCount, ref pageCount);
var pageList = new StaticPagedList<Users>(list, pageIndex, pageSize, totalCount);
return View(pageList);
}
--分页要在引用中下载NuGet程序包
四,视图(自己敲)
大概如下:
@using PagedList.Mvc
@using PagedList
@using 作业7._15.Models
@model StaticPagedList<Users>
@{
ViewBag.Title = "Index";
}
<h2>显示</h2>
<table class="table">
<tr>
<td>姓名</td>
<td>性别</td>
<td>生日</td>
<td>校区</td>
<td>邮箱</td>
<td>爱好</td>
<td>籍贯</td>
<td>操作</td>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.UName</td>
<td>@item.Sex</td>
<td>@item.Birthday</td>
<td>@item.school.SName</td>
<td>@item.Email</td>
<td>@item.Hobby</td>
<td>@item.JiGuan</td>
<td><a href="/Users/Del?id=@item.UId">删除</a></td>
</tr>
}
</table>
@Html.PagedListPager(Model,pageIndex=>Url.Action("Index",new {
pageIndex
}))
注:查询条件改日补充

浙公网安备 33010602011771号