第一步:

在使用到自定义分页的后台代码中添加以下三行

protected void Page_Load(object sender, EventArgs e)
      { 
        UIShareMethods.InitPds(DbHelper.GetDataSet("select * from a1User").DataSet, 10, DataList1);
          if (!Page.IsPostBack)
          {
              DataList1.DataSource = UIShareMethods.Pds;
              DataList1.DataBind();
          }
     }

第二步:

在自定义公共类UIShareMethods中添加以下代码:

public static PagedDataSource Pds;
    public static DataList datlst;

/// <summary>
    /// 初始化控件PagedDataSource
    /// </summary>
    /// <param name="ds">所在页面需要翻页的datalist对应dataset</param>
    /// <param name="pagesize">所在页面包含的记录数目</param>
    /// <param name="dl">所在页面需要翻页的datalist</param>

public static void InitPds(DataSet ds,int pagesize,DataList dl)
    {
       
        Pds = new PagedDataSource();
        Pds.DataSource = ds.Tables[0].DefaultView;
        Pds.AllowPaging = true;
        Pds.PageSize = pagesize;
        datlst = dl;
    }

第三步:

创建自定义控件:dalistPager.ascx

代码如下:

1)dalistPager.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="dalistPager.ascx.cs" Inherits="dalistPager" %>
<table style=" width:50%; font-size:small; text-decoration:none"><tr><td nowrap="nowrap"><asp:LinkButton ID="lbFirst" runat="server" οnclick="lbFirst_Click">第一页</asp:LinkButton></td><td nowrap="nowrap"><asp:LinkButton ID="lbPrev" runat="server" οnclick="lbPrev_Click">上一页</asp:LinkButton></td><td nowrap="nowrap"><asp:LinkButton ID="lbNext" runat="server" οnclick="lbNext_Click">下一页</asp:LinkButton></td><td nowrap="nowrap"><asp:LinkButton ID="lbLast" runat="server" οnclick="lbLast_Click">最后一页</asp:LinkButton></td><td nowrap="nowrap">第<asp:Label ID="lblCurrentPage" runat="server"></asp:Label>页/共<asp:Label ID="lblPageCount" runat="server"></asp:Label>页</td><td nowrap="nowrap"><asp:TextBox ID="txtPageNum" runat="server" Width="27px"></asp:TextBox><asp:LinkButton ID="lbGo" runat="server" οnclick="lbGo_Click">Go</asp:LinkButton></td></tr>
</table>
<p></p>

2)dalistPager.ascx.cs

public partial class dalistPager : System.Web.UI.UserControl
{static int currentpageindex=0;protected void Page_Load(object sender, EventArgs e){lblPageCount.Text = UIShareMethods.Pds.PageCount.ToString();lblCurrentPage.Text = (currentpageindex+1).ToString();btnState();}protected void lbFirst_Click(object sender, EventArgs e){UIShareMethods.Pds.CurrentPageIndex = currentpageindex;if (UIShareMethods.Pds.CurrentPageIndex >= 0){UIShareMethods.Pds.CurrentPageIndex = 0;currentpageindex = 0;//lblCurrentPage.Text = currentpageindex.ToString();UIShareMethods.datlst.DataSource = UIShareMethods.Pds;UIShareMethods.datlst.DataBind();          }else{return;}}protected void lbPrev_Click(object sender, EventArgs e){UIShareMethods.Pds.CurrentPageIndex = currentpageindex;if (UIShareMethods.Pds.CurrentPageIndex > 0){currentpageindex=--(UIShareMethods.Pds.CurrentPageIndex);//lblCurrentPage.Text = currentpageindex.ToString();UIShareMethods.datlst.DataSource = UIShareMethods.Pds;UIShareMethods.datlst.DataBind();}else{return;}}protected void lbNext_Click(object sender, EventArgs e){UIShareMethods.Pds.CurrentPageIndex = currentpageindex;if (UIShareMethods.Pds.CurrentPageIndex < UIShareMethods.Pds.PageCount-1){currentpageindex=++( UIShareMethods.Pds.CurrentPageIndex);//lblCurrentPage.Text = currentpageindex.ToString();UIShareMethods.datlst.DataSource = UIShareMethods.Pds;UIShareMethods.datlst.DataBind();      }else{return;}}protected void lbLast_Click(object sender, EventArgs e){UIShareMethods.Pds.CurrentPageIndex = currentpageindex;if (UIShareMethods.Pds.CurrentPageIndex < UIShareMethods.Pds.PageCount - 1){UIShareMethods.Pds.CurrentPageIndex = UIShareMethods.Pds.PageCount - 1;currentpageindex = UIShareMethods.Pds.PageCount - 1;//lblCurrentPage.Text = currentpageindex.ToString();UIShareMethods.datlst.DataSource = UIShareMethods.Pds;UIShareMethods.datlst.DataBind();          }else{return;}}protected void lbGo_Click(object sender, EventArgs e){UIShareMethods.Pds.CurrentPageIndex = int.Parse(txtPageNum.Text)-1;currentpageindex = int.Parse(txtPageNum.Text)-1;//lblCurrentPage.Text = txtPageNum.Text;UIShareMethods.datlst.DataSource = UIShareMethods.Pds;UIShareMethods.datlst.DataBind();}protected void btnState(){if (currentpageindex==0){lbFirst.Enabled = false;lbPrev.Enabled = false;lbNext.Enabled = true;lbLast.Enabled = true;}else if (currentpageindex==UIShareMethods.Pds.PageCount - 1){lbFirst.Enabled = true;lbPrev.Enabled = true;lbNext.Enabled = false;lbLast.Enabled = false;}else{lbFirst.Enabled = true;lbPrev.Enabled = true;lbNext.Enabled = true;lbLast.Enabled = true;}}
}

第四步:

将自定义控件拖放到第一步中页面中的datalist的<footertemplate></footertemplate>中

自己开发的一款基于PagedDataSource的datalist repeater控件,只需要在源程序中添加三行代码,即可实现通用分页相关推荐

  1. SAP UI5 应用开发教程之一百零四 - SAP UI5 表格控件的支持复选(Multi-Select)以及如何用代码一次选中多个表格行项目

    一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...

  2. 『原创』用C++开发WM应用系列(6)——深化ListBox控件

    用C++开发WM应用系列文章索引 引言: 在上一篇博文中,我们简单的学习了ListBox控件的项添加.项的全部清除.接上一篇的尾巴,我们将在这篇博文中,介绍一些ListBox的小技巧吧,比如,获取选中 ...

  3. 【VS开发】免费打工仔:一个完善的ActiveX Web控件教程

    作者 David Marcionek. 翻译 免费打工仔 这个教程可以帮助你快速开发一个ActiveX控件.其中将要讲解关于ActiveX开发的一些基础概念,诸如方法(method).属性(prope ...

  4. 推荐三款强大且漂亮的统计图控件

    志在必得(Xuon) 一.免费且强大的Flash统计图--FusionChartsFree 官方网址: http://www.fusioncharts.com/free/ 效果图: 使用感想: 对.N ...

  5. 读书笔记:《Aspx开发200问》——如何实现Repeater控件的分页

    由于Repeater控件没有分页相关的属性,要使用System.Web.UI.WebControl中的PageDataSource类. PageDataSource封装了DataGrid控件的分页属性 ...

  6. 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) ....

    可视化webpart基础开发--TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 作者:miragesky2049 原文地址:http://blog.csdn.net/mirages ...

  7. [翻译]基于ASP.NET的NumericTextBox控件[Carol]

    原文地址:http://www.codeproject.com/useritems/ASPNET_NumericTextBox.asp demo下载 源码下载 基于ASP.NET的NumericTex ...

  8. 使用PagedDataSource类实现DataList和Repeater控件的分页显示

    Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...

  9. android 横向stepview,一款由Recyclerview打造的步骤控件,支持横向和纵向

    RecyclerviewForStepView 一款由Recyclerview打造的步骤控件,支持横向和纵向 节点的图片和样式可以根据需求改动, 节点的连接线可以自定义.可以添加动画效果,点击事件等 ...

最新文章

  1. UI设计培训教程分享:UI设计师的色彩使用技巧
  2. SQL SERVER while循环
  3. 长沙中级职称计算机考试时间,湖南土木工程中级职称注册及每年考试时间是什么时候...
  4. 模板的日常~。~。。。(持续更新中...)
  5. webStorm编辑器(左侧目录)如何显示、隐藏?
  6. Silverlight 2 搜索照片
  7. 在苹果Mac中如何一键转换繁体与简体中文?
  8. JavaScript——利用正则表达式实现二代身份证号码的验证
  9. 分享一些自己在用的maccms10的免费采集接口
  10. 在Ubuntu20.04上安装ros
  11. C语言关系运算符详解
  12. QT中的模态和非模态对话框
  13. viterbi算法词性标注_使用Viterbi算法深入研究词性标记
  14. Transformer课程 第8课NER案例代码笔记-部署简介
  15. 二叉树的公共祖先问题
  16. 远程连接mysql出现ERROR 1130 (HY000): Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server
  17. 对SAP中的公司、公司代码和工厂的理解
  18. 【数据可视化应用】可视化销售数据看板的实现(附Python代码)
  19. 【并发编程】程序的启动和终结
  20. JS元素属性操作方法,包括获取属性,修改属性,删除属性

热门文章

  1. 通过少儿英语入门孩子的自信更多
  2. Volume group VolGroup00 not found
  3. 网站“拍照”备案月底恐难实施
  4. IntelliJ IDEA开发入门教程
  5. 结构设计模式 - 装饰器设计模式
  6. 【Python】万花筒
  7. 【Liunx】Linux 文件与目录管理
  8. 【Python】字符串反转
  9. C#LeetCode刷题-线段树
  10. 如何在Go中实现Elasticsearch