摘要

一直在用前后端分离,在一个后台管理的页面中,尝试封装了一个辅助类。

  1. /// <summary>
  2. /// 分页viewmodel
  3. /// </summary>
  4. /// <typeparam name="T"></typeparam>
  5. public class PagedVM<T> where T : class, new()
  6. {
  7.  
  8. private MysqlContext _mysqlContext;
  9. /// <summary>
  10. /// 构造函数注入数据库上下文
  11. /// </summary>
  12. /// <param name="mysqlContext"></param>
  13. public PagedVM(MysqlContext mysqlContext)
  14. {
  15. _mysqlContext = mysqlContext;
  16. }
  17. public Expression<Func<T, bool>> Where { get; set; }
  18.  
  19. /// <summary>
  20. /// 分页条开始索引
  21. /// </summary>
  22. public int Start
  23. {
  24. get
  25. {
  26. return PageIndex - > ? PageIndex - : ;
  27. }
  28. }
  29. /// <summary>
  30. /// 分页条结束索引
  31. /// </summary>
  32. public int End
  33. {
  34. get
  35. {
  36. return PageIndex + > PageCount ? PageCount + : PageIndex + ;
  37. }
  38. }
  39. public int PageIndex { set; get; } = ;
  40. public int PageSize { set; get; } = ;
  41. public bool HavePrevious { get { return PageIndex > ; } }
  42.  
  43. public bool HaveNext
  44. {
  45. get
  46. {
  47. return PageIndex < PageCount;
  48. }
  49. }
  50. public int PageCount
  51. {
  52. get
  53. {
  54. return (int)Math.Ceiling(TotalCount * 1.0 / PageSize);
  55. }
  56. }
  57. public int TotalCount
  58. {
  59. get
  60. {
  61. return _mysqlContext.Set<T>().Count();
  62. }
  63. }
  64. public List<T> Items
  65. {
  66. get
  67. {
  68. if (Where != null)
  69. {
  70. return _mysqlContext.Set<T>().Where(Where).ToList().Skip((PageIndex - ) * PageSize).Take(PageSize).ToList();
  71. }
  72. return _mysqlContext.Set<T>().ToList().Skip((PageIndex - ) * PageSize).Take(PageSize).ToList();
  73. }
  74.  
  75. }
  76.  
  77. }

分布试图分页条

  1. <ul class="pagination pagination-lg navbar-right " style="">
  2. @if (Model.HavePrevious)
  3. {
  4. <li class="previous"><a href="@Url.Content("~/home/index/")@(Model.PageIndex - 1)"> 上一页</a></li>
  5. }
  6.  
  7. @for (int i = Model.Start; i < Model.End; i++)
  8. {
  9. if (i == Model.PageIndex)
  10. {
  11. <li class="active"><a href="@Url.Content("~/home/index/")@i">@i</a></li>
  12. }
  13. else
  14. {
  15. <li><a href="@Url.Content("~/home/index/")@i">@i</a></li>
  16. }
  17.  
  18. }
  19. @if (Model.HaveNext)
  20. {
  21. <li class="next"><a href="@Url.Content("~/home/index/")@(Model.PageIndex+1)">下一页</a></li>
  22. }
  23. </ul>

测试

[Asp.net core]bootstrap分页的更多相关文章

  1. ASP.NET MVC+Bootstrap分页Helper

    <div class="pagination"> <ul> //************分页HTML********* </ul> </d ...

  2. 使用Angular 4、Bootstrap 4、TypeScript和ASP.NET Core开发的Apworks框架案例应用:Task List

    最近我为我自己的应用开发框架Apworks设计了一套案例应用程序,并以Apache 2.0开源,开源地址是:https://github.com/daxnet/apworks-examples,目的是 ...

  3. 再谈使用X.PagedList.Mvc 分页(ASP.NET Core 2.1)

    在以前的博文中写过使用X.PagedList.Mvc组件来对ASP.NET MVC应用程序进行分页,可以参考此篇随笔:Asp.net MVC 使用PagedList(新的已更名 为X.PagedLis ...

  4. Working with Data » Getting started with ASP.NET Core and Entity Framework Core using Visual Studio » 排序、筛选、分页以及分组

    Sorting, filtering, paging, and grouping 7 of 8 people found this helpful By Tom Dykstra The Contoso ...

  5. 学习ASP.NET Core Razor 编程系列十九——分页

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  6. asp.net core 排序过滤分页组件:sieve(1)

    使用asp.net core开发时避免不了要用一个合适的分页组件来让前端获取分页数据.github上面有一个开源的分页组件在这方面很适合我的使用,于是我把他的文档翻译一下,随后会分析它里面的源码.这是 ...

  7. ASP.NET Core Web App应用第三方Bootstrap模板

    引言 作为后端开发来说,前端表示玩不转,我们一般会选择套用一些开源的Bootstrap 模板主题来进行前端设计.那如何套用呢?今天就简单创建一个ASP.NET Core Web MVC 模板项目为例, ...

  8. asp.net core下一个简单的分页技术

    在做web应用的时候免不了要对数据进行分页,我最近在做asp.net core的开发的时候就遇到了这个需求,现在简单的记录一下: public class PaginatedList<T> ...

  9. [转]Build beautiful, responsive sites with Bootstrap and ASP.NET Core

    本文转自:https://docs.microsoft.com/en-us/aspnet/core/client-side/bootstrap?view=aspnetcore-2.1 Bootstra ...

随机推荐

  1. sklearn学习笔记

    用Bagging优化模型的过程:1.对于要使用的弱模型(比如线性分类器.岭回归),通过交叉验证的方式找到弱模型本身的最好超参数:2.然后用这个带着最好超参数的弱模型去构建强模型:3.对强模型也是通过交 ...

  2. vue-router两种模式,到底什么情况下用hash,什么情况下用history模式呢?

    转:https://segmentfault.com/q/1010000010340823/a-1020000010598395 为什么要有 hash 和 history 对于 Vue 这类渐进式前端 ...

  3. java多线程快速入门(六)

    多线程应用实例(批量发送短信) 1.创建实体类 package com.cppdy; public class UserEntity { private int id; private String ...

  4. js数组合并为一个字符串

    var arr=new Array("hello","word","java","eclipse","jsp& ...

  5. 易错之for循环

    for i in range(3): print(i) print(i,"---") #Python的问题就在于,当循环结束以后,循环体中的临时变量i不会销毁,而是继续存在于执行环 ...

  6. 认识js运动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)

    先来回顾一下昨天的内容 网络编程开发架构 B/S C/S架构网卡 mac地址网段 ip地址 : 表示了一台电脑在网络中的位置 子网掩码 : ip和子网掩码按位与得到网段 网关ip : 内置在路由器中的 ...

  8. 一份针对nginx的内核优化参数

    首先,需要修改/etc/sysctl.conf来更改内核参数.例如,最常用的配置: # ·file-max:这个参数表示进程(比如一个worker进程)可以同时打开的最大句柄数,这个参数直接限制最大并 ...

  9. 在django中使用FormView,success_url死活不能生效的问题

    真的不知道是怎么回事, 以前都是手动的, form使用modelform. view使用createview. 今天写新系统时,为了更灵活. form使用form,(这样一来,可以在form是随便按数 ...

  10. C# Winform将控件作为参数传递

    最近做个Winform 的程序设计,需要将窗体的控件作为参数传递到另外一个类的函数中去使用,每次都会忘记,简单的记下来,以备即时查看. 1. 设置控件的modifier属性设置为public 2. 以 ...