自定义分页控件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 ...
随机推荐
- 你的眼睛背叛你的心:解决 .NET Core 中 GetHostAddressesAsync 引起的 EnyimMemcached 死锁问题
在我们将站点从 ASP.NET + Windows 迁移至 ASP.NET Core + Linux 的过程中,目前遇到的最大障碍就是 —— 没有可用的支持 .NET Core 的 memcached ...
- ABP理论学习之内嵌资源文件
返回总目录 本篇目录 介绍 创建内嵌文件 暴露内嵌文件 使用内嵌文件 介绍 在一个web应用中,有供客户端使用的javascript,css,xml等文件.它们一般是作为分离的文件被添加到web项目中 ...
- mysql字符串处理例子
项目中用到的,要判断表中某个字段的某几位,若为某个值则替换,用到了几个典型的字符串操作,记录备注实现方案如下: 备注:如果替代字符串是唯一的话,可以用replace,这里用的是concat拼接. DE ...
- Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:http://www.cnbl ...
- MySQL KEY分区
200 ? "200px" : this.width)!important;} --> 介绍 KEY分区和HASH分区相似,但是KEY分区支持除text和BLOB之外的所有数 ...
- CI框架搭建
CI 框架等移植到不同等环境十分方便,只要改很少等配置: 1.修改config.php 文件(修改这一个文件就可以跑通了): $config['base_url'] = 'http://127.0.0 ...
- Qt And MFC Mouse Over Tips
Qt鼠标提示分析说明 关于鼠标停留在控件上面,显示提示内容的方法. 对于Qt来说, Qt的某一个控件类, 如果属于GUI的, 那么这个控件类会有一个setToolTip(QString text)的方 ...
- bootstrap与Select2使用小结
这个select2组件的功能确实很强大,可以将图片放入到select里面随着文字一起显示. 组件的下载地址以及API说明地址: 1.Select2使用示例地址:https://select2.gith ...
- invalidate()和postInvalidate() 的区别及使用
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中 ...
- 交叉验证(Cross Validation)原理小结
交叉验证是在机器学习建立模型和验证模型参数时常用的办法.交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏. ...