摘要

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

   /// <summary>
/// 分页viewmodel
/// </summary>
/// <typeparam name="T"></typeparam>
public class PagedVM<T> where T : class, new()
{ private MysqlContext _mysqlContext;
/// <summary>
/// 构造函数注入数据库上下文
/// </summary>
/// <param name="mysqlContext"></param>
public PagedVM(MysqlContext mysqlContext)
{
_mysqlContext = mysqlContext;
}
public Expression<Func<T, bool>> Where { get; set; } /// <summary>
/// 分页条开始索引
/// </summary>
public int Start
{
get
{
return PageIndex - > ? PageIndex - : ;
}
}
/// <summary>
/// 分页条结束索引
/// </summary>
public int End
{
get
{
return PageIndex + > PageCount ? PageCount + : PageIndex + ;
}
}
public int PageIndex { set; get; } = ;
public int PageSize { set; get; } = ;
public bool HavePrevious { get { return PageIndex > ; } } public bool HaveNext
{
get
{
return PageIndex < PageCount;
}
}
public int PageCount
{
get
{
return (int)Math.Ceiling(TotalCount * 1.0 / PageSize);
}
}
public int TotalCount
{
get
{
return _mysqlContext.Set<T>().Count();
}
}
public List<T> Items
{
get
{
if (Where != null)
{
return _mysqlContext.Set<T>().Where(Where).ToList().Skip((PageIndex - ) * PageSize).Take(PageSize).ToList();
}
return _mysqlContext.Set<T>().ToList().Skip((PageIndex - ) * PageSize).Take(PageSize).ToList();
} } }

分布试图分页条

<ul class="pagination pagination-lg  navbar-right " style="">
@if (Model.HavePrevious)
{
<li class="previous"><a href="@Url.Content("~/home/index/")@(Model.PageIndex - 1)"> 上一页</a></li>
} @for (int i = Model.Start; i < Model.End; i++)
{
if (i == Model.PageIndex)
{
<li class="active"><a href="@Url.Content("~/home/index/")@i">@i</a></li>
}
else
{
<li><a href="@Url.Content("~/home/index/")@i">@i</a></li>
} }
@if (Model.HaveNext)
{
<li class="next"><a href="@Url.Content("~/home/index/")@(Model.PageIndex+1)">下一页</a></li>
}
</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. Day5-----------------vi编辑器

    1.操作模式 1).命令行模式 2).编辑模式 3).扩展模式 2.命令行模式 1).删除与复制 dd 删除光标所在行 ndd 删除光标向下n行 yy 复制光标所在行 nyy 复制光标乡下n行 2). ...

  2. Java基础98 gson插件的使用

    1.要用到的包 2.实例 实体类 people package com.shore.entity; /** * @author DSHORE/2019-4-21 * */ public class P ...

  3. alt-opt and end2end

    关于两种训练方式的不同,论文中一种是4阶段训练,这种容易理解,还有一种是近似联合训练, 参考:http://jacobkong.github.io/posts/3802700508/ 关于两种训练方式 ...

  4. python----线程进程协程

    python线程: import threading import time def show(arg): time.sleep() print('thread' + str(arg)) ): t = ...

  5. NBUT1457

    不知道哪里的oj..做了交不上去.. 也是莫队的模板题 #include<iostream> #include<cstring> #include<cstdio> ...

  6. python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)

    昨日内容回顾 操作系统纸带打孔计算机批处理 —— 磁带 联机 脱机多道操作系统 —— 极大的提高了CPU的利用率 在计算机中 可以有超过一个进程 进程遇到IO的时候 切换给另外的进程使用CPU 数据隔 ...

  7. 委托----Func和Action

    平时我们如果要用到委托一般都是先声明一个委托类型,比如: private delegate string Say(); string说明适用于这个委托的方法的返回类型是string类型,委托名Say后 ...

  8. PTA之简单阶乘计算

    本题要求实现一个计算非负整数阶乘的简单函数. 时间限制: 400ms 内存限制: 64MB 代码长度限制: 16KB 函数接口定义: int Factorial( const int N ); 其中N ...

  9. [转] 理解Web路由

    1. 什么是路由 在Web开发过程中,经常会遇到『路由』的概念.那么,到底什么是路由?简单来说,路由就是URL到函数的映射. 2. router和route的区别 route就是一条路由,它将一个UR ...

  10. canvas拖拽效果

    canvas拖拽和平时用的js拖拽是有区别的 普通的js是设置目标为绝对定位,再根据鼠标的移动来改变left和top的值 canvas是获得了鼠标的位置,直接在目标点进行重新绘制 下面给一个简单的拖拽 ...