自定义分页控件PageList
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Web; namespace Commons { public class PageList<T> : IEnumerable<T> { private int pageIndex; private int pageSize; private int totalPage; private int totalCount; private IList<T> list; /// <summary> /// 单页数据,总条数,计算出总页数,然后封装成分页对象 /// </summary> /// <param name="list"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <param name="totalCount"></param> public PageList(IList<T> list, int pageIndex, int pageSize, int totalCount) { if (list != null) { this.pageIndex = pageIndex; this.pageSize = pageSize; this.totalCount = totalCount; this.totalPage = totalCount / pageSize; ) ; this.list = list; } else { this.list = new List<T>(); } } /// <summary> /// 全部数据,筛选出当页数据且计算出总条数和总页数,然后封装成分页对象 /// </summary> /// <param name="list"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> public PageList(IList<T> list, int pageIndex, int pageSize) { if (list != null) { this.pageIndex = pageIndex; this.pageSize = pageSize; this.totalCount = list.Count; this.totalPage = list.Count / pageSize; ) ; )).Take(pageSize).ToList(); } else { this.list = new List<T>(); } } public int PageIndex { get { return this.pageIndex; } } public int PageSize { get { return this.pageSize; } } public int TotalPage { get { return this.totalPage; } } public int TotalCount { get { return this.totalCount; } } public IEnumerator<T> GetEnumerator() { foreach (var item in this.list) { yield return item; } } IEnumerator IEnumerable.GetEnumerator() { throw new NotImplementedException(); } public IHtmlString PageBar(string url, object property) { if (string.IsNullOrEmpty(url)) url = string.Empty; else { url = url.Trim().TrimEnd('?', '&'); if (url.Contains("?")) url += "&"; else url += "?"; } string html = "<ul class=\"pagination\">{0}</ul>"; , pageMax = this.TotalPage; string page = string.Empty; ; (i > ()) && i > ; i--) { string pageUrl = string.Format("{0}pageIndex={1}", url, i); page = "<li><a href=\"" + pageUrl + "\">" + i + "</a></li>" + page; pageMin = i; } page = page + "<li class=\"active\"><a href=\"#\">" + this.pageIndex + "</a></li>"; ; (i < ()) && i < ; i++) { string pageUrl = string.Format("{0}pageIndex={1}", url, i); page = page + "<li><a href=\"" + pageUrl + "\">" + i + "</a></li>"; pageMax = i; } //第一页和最后一页 ) { ) > ) page = "<li><a>...</a></li>" + page; ); page = + "</a></li>" + page; } if (pageMax < this.TotalPage) { ) page = page + "<li><a>...</a></li>"; string pageUrl = string.Format("{0}pageIndex={1}", url, this.TotalPage); page = page + "<li><a href=\"" + pageUrl + "\">" + this.TotalPage + "</a></li>"; } //上一页和下一页 ) page = "<li class=\"prev disabled\"><a href=\"#\"><span class=\"fa fa-angle-left\"></span> 上一页</a></li>" + page; else page = ) + "\"><span class=\"fa fa-angle-left\"></span> 上一页</a></li>" + page; if (this.pageIndex == this.TotalPage) page = page + "<li class=\"next disabled\"><a href=\"#\">下一页 <span class=\"fa fa-angle-right\"></span></a></li>"; else page = page + ) + "\">下一页 <span class=\"fa fa-angle-right\"></span></a></li>"; html = string.Format(html, page); return new HtmlString(html); } } }
自定义分页控件PageList的更多相关文章
- asp.net webform 自定义分页控件
做web开发一直用到分页控件,自己也动手实现了个,使用用户自定义控件. 翻页后数据加载使用委托,将具体实现放在在使用分页控件的页面进行注册. 有图有真相,给个直观的认识: 自定义分页控件前台代码: & ...
- C# DataGridView自定义分页控件
好些日子不仔细写C#代码了,现在主要是Java项目,C#.Net相关项目不多了,有点手生了,以下代码不足之处望各位提出建议和批评. 近日闲来无事想研究一下自定义控件,虽然之前也看过,那也仅限于皮毛,粗 ...
- Mvc自定义分页控件
MVC开发分页常常使用第三方控件,生成的分页HTML带有版权申明,虽然免费,但是总有的别扭.于是,某日,楼主闲来蛋疼,折腾了个自定义分页控件: 先来展示下效果图: 1>当分页不超过10页的时候, ...
- WPF自定义分页控件,样式自定义,简单易用
WPF自定义分页控件 做了许久伸手党,终于有机会贡献一波,搜索一下WPF分页控件,还是多,但是不太通用,主要就是样式问题,这个WPF很好解决,还有一个就是分页控件嘛,只关心几个数字的变动就行了,把页码 ...
- 自定义分页控件-基于Zhifeiya的分页控件改版
基于Zhifeiya的分页控件改版的分页. html显示代码: <div class="pagelist"> {{.pagerHtml}} </div> c ...
- Winform自定义分页控件的实现
实现效果 有点丑陋 但是功能是没问题的 测试过 实现思路 先创建一个用户控件 代码实现 public partial class PagerControl : UserControl { ; /// ...
- winform 自定义分页控件 及DataGridview数据绑定
分页效果如上图所示,用到的控件均为基本控件 ,其方法如下 右击项目-添加-新建项 选择用户控件 然后在用户控件中拖入所需要的Label,Button,Text 用户控件全部代码: using Syst ...
- WPF管理系统自定义分页控件 - WPF特工队内部资料
最近做一个演示的管理系统项目,需要用到分页控件,在网上找了很多,依然找到与UI模版匹配的,最后干脆自己写一个. 分页控件分析: 1.分页控件分简单显示和复杂显示两种: 2.包含上一页.下一页以及页码明 ...
- WPF 自定义分页控件二
一:添加自定义分页控件,命名为KDataPagerTwo: public class KDataPagerTwo : Control, INotifyPropertyChanged { static ...
随机推荐
- js问题杂记
1.如何把字符串数组 转成数组对象? eval妙用 var str = "[\"UserName=1,Pwd=1\",\"UserNmae=1,Pwd=1,Sa ...
- Java工作环境笔记
环境 1. Jvm最简生存指南: http://www.importnew.com/10127.html 2. 所有路径中,不要出现中文,即使开始的时候,调试Tomcat时,路径有中文也可以,你真不知 ...
- ABP理论学习之Nuget包
返回总目录 本篇目录 框架 测试基 ABP已经发布在Nuget上,这里是所有包的列表. 框架 Abp Abp系统的核心包.所有其他的包都依赖这个包. Abp.Web 提供了MVC和Web API都使用 ...
- C# 的 Dictionary 寫入前應注意事項
一個已上線.用戶龐大的系統,幾個月來第一次出現這個系統錯誤訊息 : 「已經加入含有相同索引鍵的項目」「已添加了具有相同键的项」An item with the same key has already ...
- SSH实战 · JAVA发送邮件相关
发送激活邮件 电子邮箱:邮件服务器上的一块空间: 邮件服务器:类比于web服务器(tomcat),有相应的服务器软件: 邮件协议:大公司发送和接收服务器分开,也可以都用一个服务器. ...
- spring快速入门(一)
对于为什么使用spring框架,这里不多做解释,详情请百度.本人推荐面向驱动程序学习,通过实战来瞧瞧spring技术的伟大.所以先来看看原始开发一个简单的例子,由例子引入spring相关的技术.如果错 ...
- Underscore.js使用
Underscore 是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象. 他解决了这个问题:"如果我面对一个空白的 ...
- PHP中的list()说明
list() 用于在一次操作中给一组变量赋值. 注释:list()只用于数字索引的数组,且假定数字索引从 0 开始. 说明 list() 用数组中的元素为一组变量赋值. 注意,与 array() 类似 ...
- Disk Space Usage 术语理解:unallocated, unused and reserved
通过standard reports查看Disk Usage,选中Database,右击,选择Reports->Standard Reports->Disk Space Usage,截图如 ...
- 【WP开发】读写剪贴板
在WP 8.1中只有Silverlight App支持操作剪贴板的API,Runtime App并不支持.不过,在WP 10中也引入了可以操作剪贴板的API. 顺便说点题外话,有人会说,我8.1的开发 ...