Repeater控件与PagedDataSource结合实现分页功能

 Repeater控件与PagedDataSource相结合实现其分页功能,如果控件开发人员需对自定义数据绑定控件提供分页支持,即可使用此类

本文讲解Repeater控件与PagedDataSource相结合实现其分页功能。PagedDataSource 类封装那些允许数据源控件(如 DataGrid、GridView)执行分页操作的属性。如果控件开发人员需对自定义数据绑定控件提供分页支持,即可使用此类。 
 
PagedDataSource 类的部分公共属性: 
 
AllowCustomPaging // 获取或设置指示是否启用自定义分页的值。 AllowPaging // 获取或设置指示是否启用分页的值。 Count // 获取要从数据源使用的项数。 CurrentPageIndex // 获取或设置当前页的索引。 DataSource // 获取或设置数据源。 DataSourceCount // 获取数据源中的项数。 FirstIndexInPage // 获取页中的第一个索引。 IsCustomPagingEnabled // 获取一个值,该值指示是否启用自定义分页。 IsFirstPage // 获取一个值,该值指示当前页是否是首页。 IsLastPage // 获取一个值,该值指示当前页是否是最后一页。 IsPagingEnabled // 获取一个值,该值指示是否启用分页。 IsReadOnly // 获取一个值,该值指示数据源是否是只读的。 IsSynchronized // 获取一个值,该值指示是否同步对数据源的访问(线程安全)。 PageCount // 获取显示数据源中的所有项所需要的总页数。 PageSize // 获取或设置要在单页上显示的项数。 VirtualCount // 获取或设置在使用自定义分页时数据源中的实际项数。 
下面是PagedDataSource类实现Repeater控件的分页显示例子,如图: 
 
 代码如下:
protected void Page_Load(object sender, EventArgs e) 

if (!Page.IsPostBack) 

int pageIndex = 1; 
try 

pageIndex = Convert.ToInt32(Request.QueryString["Page"]); 
if (pageIndex <= 0) pageIndex = 1; 

catch 

pageIndex = 1; 

DataTable dt = GetDocumentTable(); 
PagedDataSource pds = new PagedDataSource(); 
pds.DataSource = dt.DefaultView; // 设置数据源 
pds.AllowPaging = true; // 设置指示是否启用分页的值 
pds.PageSize = 5; // 设置要在每页显示的数量 
pds.CurrentPageIndex = pageIndex - 1; // 设置当前页的索引。 
rptDocumentList.DataSource = pds; 
rptDocumentList.DataBind(); 
ltlPageBar.Text = GetPageBar(pds); 


// 分页条 
private string GetPageBar(PagedDataSource pds) 

string pageBar = string.Empty; 
int currentPageIndex = pds.CurrentPageIndex + 1; 
if (currentPageIndex == 1) 

pageBar += "首页"; 

else 

pageBar += " + Request.CurrentExecutionFilePath + "?Page=1">首页"; 

if ((currentPageIndex - 1) < 1) 

pageBar += "上一页"; 

else 

pageBar += " + Request.CurrentExecutionFilePath + "?Page=" + (currentPageIndex - 1) + "">上一页"; 

if ((currentPageIndex + 1) > pds.PageCount) 

pageBar += "下一页"; 

else 

pageBar += " + Request.CurrentExecutionFilePath + "?Page=" + (currentPageIndex + 1) + "">下一页"; 

if (currentPageIndex == pds.PageCount) 

pageBar += "末页"; 

else 

pageBar += " + Request.CurrentExecutionFilePath + "?Page=" + pds.PageCount + "">末页"; 

return pageBar; 

// 创建测试表 
DataTable GetDocumentTable() 

DataTable dt = new DataTable(); 
dt.Columns.Add("DocumentId", typeof(int)); 
dt.Columns.Add("Title", typeof(string)); 
for (int i = 1; i <= 30; i++) 

DataRow row = dt.NewRow(); 
row["DocumentId"] = i; 
row["Title"] = "文档标题 " + i + ""; 
dt.Rows.Add(row); 

return dt; 

 

时间: 2024-09-29 15:37:38

Repeater控件与PagedDataSource结合实现分页功能的相关文章

Repeater控件与PagedDataSource结合实现分页功能_实用技巧

本文讲解Repeater控件与PagedDataSource相结合实现其分页功能.PagedDataSource 类封装那些允许数据源控件(如 DataGrid.GridView)执行分页操作的属性.如果控件开发人员需对自定义数据绑定控件提供分页支持,即可使用此类. PagedDataSource 类的部分公共属性: AllowCustomPaging // 获取或设置指示是否启用自定义分页的值. AllowPaging // 获取或设置指示是否启用分页的值. Count // 获取要从数据源使

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

分页|控件|显示     Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,所以很多时候我们喜欢使用DataList或Repeater控件来显示数据.  实现DataList或Repeater控件的分页显示有几种方法:  1.写一个方法或存储过程,根据传入的页数返回需要显示的数据表(DataTable)  2.使用Pa

Repeater控件分页的例子

分页|控件   Repeater和DataList控件提供了一个快速.灵活的表现数据的方式,但是,它们没有内建的分页功能:DataGrid控件提供了内建的分页功能,但它的结构比较复杂.下面就用PagedDataSource类实现Repeater和DataList的分页. PagedDataSource封装了DataGrid的分页属性,我们可以象DataGrid那样进行分页.代码如下:   <%@ Page Language="C#" %> <%@ import nam

.NET实现Repeater控件+AspNetPager控件分页_实用技巧

当然首先你要把bin文件放进你的项目,并加到你的工具栏去 //页头需引用的 <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> 控件部分(格式已经设计好) <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Alw

Repeater控件的分页问题

分页|控件|问题 以前做ASP的时间不算短,可是做ASP.NET我是个新手.前几天做项目,遇到一个问题,要求比较复杂的数据格式显示,用DataGrid非常难实现,后来改用了Repeater控件来实现.不过这样就带来一个新问题:怎么分页?Repeater没有内置的分页功能.后来自己试着写了一个,侥幸成功了.匆匆写就,肯定不完善,哪位高手有何高见请及时指正,很愿意与各位交流(zhoubin@mail.sdu.edu.cn) protected System.Web.UI.WebControls.Re

repeater控件分页复选框状态

问题描述 大家好,请教一个问题.我用repeater控件进行分页显示数据.现在的问题是,我在第一页的时候选中2个复选框,然后点第二页,再返回到第一页,刚刚在第一页选中的2个复选框就丢失了.有什么好的解决方案吗,或是提供个例子.谢谢大家.我的QQ:936944308验证问题:林志炫 解决方案 解决方案二:这个基本上没有好办法,得自己写方法,你可以用一个变量记录每一页被选中条目的index,然后再将对应的index里的复选框选中.解决方案三:能写个例子给我看看吗?谢谢

asp.net中Repeater控件用法笔记

  大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用repeater作为我们的数据绑定控件了.Repeater控件与DataGrid (以及DataList)控件的主要区别是在于如何处理HTML.ASP.NET建立HTML代码以显示DataGrid控件,但Repeater允许开发人员决定如何显示数据.所以,你可以选择将数据显示在一个HTML表格中或者一个顺序列表中.这主要取决于你的选择,但你必须将正确的HTML插入到 ASP.NET页面中. 模板与DataList

详解ASP.NET数据绑定操作中Repeater控件的用法_实用技巧

一.绑定控件之Repeater.NET封装了多种数据绑定控件,诸如GridView.DataList等但该篇文章将会从Repeater入手,因为Repeater只提供了基本的数据绑定模板,没有内置其它分页等功能,所以它是最原始的数据绑定控件,只要能够熟练运用Repeater控件其它的绑定控件也就很简单了.1.Repeater简介Repeater 控件是基本模板化数据列表. 它不像GridView控件一样能够可视化的设计格式或样式,因此开发时在控件模板中必须显式声明所有格式.格式和样式标记.另外R

ASP.NET:Repeater控件的详解

asp.net|控件|详解     在学习DataGrid控件和DataList控件后,我们知道,DataGrid控件对数据输出格式是自动生成HtmlTable标记的,DataList控件也是这样,它根据数据内容来生成数据控制表格.而Repeater 控件是模板化的数据绑定列表,Repeater 控件是"无外观的",即:它不具有任何内置布局或样式,也就不会产生任何数据控制表格来控制数据的显示.因此,我们必须在控件的模板中明确声明所有 HTML 布局标记.格式标记和样式标记. 在第一节里