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
}))

 

注:查询条件改日补充 

posted @ 2021-07-15 21:42  董某的智慧所在  阅读(98)  评论(0)    收藏  举报