写自己的分页控件
来源:互联网 发布:同程网络2017校园招聘 编辑:程序博客网 时间:2024/04/29 11:49
首先我们创建一个Web用户控件
在 .ascx.cs里面写我们对页码条的控制,相当于一个类,继承与UserControl类
public partial class PageData : System.Web.UI.UserControl { public string strHtml; private int currentPage;//当前页 public int CurrentPage { get { return currentPage; } set { currentPage = value; } } private int currentPageCount;//总页数 public int CurrentPageCount { get { return currentPageCount; } set { currentPageCount = value; } } protected void Page_Load(object sender, EventArgs e) { if (CurrentPageCount <= 1) //如果只有一页,不现实分页条 { return; } int startPage = CurrentPage - 3; //这里保持当前页在页码条中间 if (startPage <= 1) { startPage = 1; } int endPage = startPage + 6; //这里保持当前页在页码条中间 if (endPage > CurrentPageCount) { endPage = CurrentPageCount; startPage = endPage - 6; if (startPage <= 1) { startPage = 1; } } StringBuilder sb = new StringBuilder(); sb.AppendFormat(" <a href=?page={0}>首页</a> ", 1); if (currentPage > 1) { sb.AppendFormat(" <a href=?page={0}>上一页</a> ", CurrentPage - 1); } else { sb.AppendFormat(" <a href=javascript:void(0)>上一页</a> "); } for (int i = startPage; i <= endPage; i++) { if (i == CurrentPage) { sb.Append(" " + i + " "); } else { sb.AppendFormat(" <a href=?page={0}>[" + i + "]</a> ", i); } } if (currentPage < CurrentPageCount) { sb.AppendFormat(" <a href=?page={0}>下一页</a> ", CurrentPage + 1); } else { sb.AppendFormat(" <a href=javascript:void(0)>下一页</a> "); } sb.AppendFormat(" <a href=?page={0}>末页</a> ", CurrentPageCount); strHtml = sb.ToString(); } }
完成之后,在.ascx里面写我们的空间容器,相当于一个html页面
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PageData.ascx.cs" Inherits="Asp.net项目.MyControl.PageData" %><div id="pageDiv"><%=strHtml %></div>
cs里面的strHtml输出到容器里,这里也可以用css来美化~
我们在web窗体里面用的时候直接像托控件一样拖过去
<uc1:PageData runat="server" ID="PageData" />
后台代码:
public partial class WebForm1 : System.Web.UI.Page { public List<Book> list; protected void Page_Load(object sender, EventArgs e) { int pageIndex; if (Request["page"] != null) { pageIndex = Convert.ToInt32(Request["page"]); } else { pageIndex = 1; } int maximumRows = 9; OnSaleBooksBLL bll = new OnSaleBooksBLL(); //---------------这里是我们自定义的分页控件----------------- //可以直接点出来,初始化它的属性... PageData.CurrentPage = pageIndex; PageData.CurrentPageCount = (bll.GetCount() + maximumRows - 1) / maximumRows; //----------------------------------- int startRowIndex = (pageIndex - 1) * maximumRows + 1; list = bll.GetModelList_Page(startRowIndex, maximumRows); }
它会保持当前页在中间显示
末页
- 写自己的分页控件
- 自己写的实现分页的控件
- 自己写的Winform分页控件
- 自己写的分页
- 自己写的DataList分页控件(源码)
- 自己写的.net分页控件,测试没有问题!
- 自己写的一个分页控件类(WinForm)
- C#自己写的一个自定义分页控件
- c# asp.net 自己写的分页 没有使用控件原始分页
- 自己写的分页代码
- 自己写的一个分页
- 自己写的数据分页
- 自己写的分页条
- 自己写的freemarker分页
- 自己写的分页类
- 自己学习的分页控件
- 分享下自己在项目中写的一个分页控件
- 我自己写的一个分页控件(源码和演示代码)PostBack分页版 for vs2003、SQL Server
- C语言拾遗(五):分析switch语句机制
- 栈(stack)与堆(heap)
- 调试单向链表遇到问题总结
- mini2440 安装OpenWrt 过程记录
- sourceinsight如何显示完整文件路径
- 写自己的分页控件
- 今天开学Oralce 现在坚持每天写技术文档,也就是笔记了!!
- OpenCV实现RGB颜色空间和HSI颜色空间的相互转换
- C++读书笔记之纯虚函数pure virtual function
- 在Android虚拟机中安装GooglePlayServices
- java反射
- 网络编程中一些小函数
- WebService开发经验
- HDU-2057A + B Again