自己开发的一款基于PagedDataSource的datalist repeater控件,只需要在源程序中添加三行代码,即可实现通用分页
第一步:
在使用到自定义分页的后台代码中添加以下三行
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控件,只需要在源程序中添加三行代码,即可实现通用分页相关推荐
- SAP UI5 应用开发教程之一百零四 - SAP UI5 表格控件的支持复选(Multi-Select)以及如何用代码一次选中多个表格行项目
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
- 『原创』用C++开发WM应用系列(6)——深化ListBox控件
用C++开发WM应用系列文章索引 引言: 在上一篇博文中,我们简单的学习了ListBox控件的项添加.项的全部清除.接上一篇的尾巴,我们将在这篇博文中,介绍一些ListBox的小技巧吧,比如,获取选中 ...
- 【VS开发】免费打工仔:一个完善的ActiveX Web控件教程
作者 David Marcionek. 翻译 免费打工仔 这个教程可以帮助你快速开发一个ActiveX控件.其中将要讲解关于ActiveX开发的一些基础概念,诸如方法(method).属性(prope ...
- 推荐三款强大且漂亮的统计图控件
志在必得(Xuon) 一.免费且强大的Flash统计图--FusionChartsFree 官方网址: http://www.fusioncharts.com/free/ 效果图: 使用感想: 对.N ...
- 读书笔记:《Aspx开发200问》——如何实现Repeater控件的分页
由于Repeater控件没有分页相关的属性,要使用System.Web.UI.WebControl中的PageDataSource类. PageDataSource封装了DataGrid控件的分页属性 ...
- 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) ....
可视化webpart基础开发--TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 作者:miragesky2049 原文地址:http://blog.csdn.net/mirages ...
- [翻译]基于ASP.NET的NumericTextBox控件[Carol]
原文地址:http://www.codeproject.com/useritems/ASPNET_NumericTextBox.asp demo下载 源码下载 基于ASP.NET的NumericTex ...
- 使用PagedDataSource类实现DataList和Repeater控件的分页显示
Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...
- android 横向stepview,一款由Recyclerview打造的步骤控件,支持横向和纵向
RecyclerviewForStepView 一款由Recyclerview打造的步骤控件,支持横向和纵向 节点的图片和样式可以根据需求改动, 节点的连接线可以自定义.可以添加动画效果,点击事件等 ...
最新文章
- UI设计培训教程分享:UI设计师的色彩使用技巧
- SQL SERVER while循环
- 长沙中级职称计算机考试时间,湖南土木工程中级职称注册及每年考试时间是什么时候...
- 模板的日常~。~。。。(持续更新中...)
- webStorm编辑器(左侧目录)如何显示、隐藏?
- Silverlight 2 搜索照片
- 在苹果Mac中如何一键转换繁体与简体中文?
- JavaScript——利用正则表达式实现二代身份证号码的验证
- 分享一些自己在用的maccms10的免费采集接口
- 在Ubuntu20.04上安装ros
- C语言关系运算符详解
- QT中的模态和非模态对话框
- viterbi算法词性标注_使用Viterbi算法深入研究词性标记
- Transformer课程 第8课NER案例代码笔记-部署简介
- 二叉树的公共祖先问题
- 远程连接mysql出现ERROR 1130 (HY000): Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server
- 对SAP中的公司、公司代码和工厂的理解
- 【数据可视化应用】可视化销售数据看板的实现(附Python代码)
- 【并发编程】程序的启动和终结
- JS元素属性操作方法,包括获取属性,修改属性,删除属性