Repeater控件的分页实现
本文讲解Repeater控件与PagedDataSource相结合实现其分页功能。PagedDataSource 类封装那些允许数据源控件(如 DataGrid、GridView)执行分页操作的属性。如果控件开发人员需对自定义数据绑定控件提供分页支持,即可使用此类。
PagedDataSource 类的部分公共属性:
AllowCustomPaging // 获取或设置指示是否启用自定义分页的值。
AllowPaging // 获取或设置指示是否启用分页的值。
Count // 获取要从数据源使用的项数。
CurrentPageIndex // 获取或设置当前页的索引。
DataSource // 获取或设置数据源。
DataSourceCount // 获取数据源中的项数。
FirstIndexInPage // 获取页中的第一个索引。
IsCustomPagingEnabled // 获取一个值,该值指示是否启用自定义分页。
IsFirstPage // 获取一个值,该值指示当前页是否是首页。
IsLastPage // 获取一个值,该值指示当前页是否是最后一页。
IsPagingEnabled // 获取一个值,该值指示是否启用分页。
IsReadOnly // 获取一个值,该值指示数据源是否是只读的。
IsSynchronized // 获取一个值,该值指示是否同步对数据源的访问(线程安全)。
PageCount // 获取显示数据源中的所有项所需要的总页数。
PageSize // 获取或设置要在单页上显示的项数。
VirtualCount // 获取或设置在使用自定义分页时数据源中的实际项数。
下面是PagedDataSource类实现Repeater控件的分页显示例子,如图:
本例使用vs.net 2008(C#)编写。后台.CS代码。来自 admin10000.com
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
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 += "<a href=\"javascript:void(0)\">首页</a>"; } else { pageBar += "<a href=\"" + Request.CurrentExecutionFilePath + "?Page=1\">首页</a>"; } if ((currentPageIndex - 1) < 1) { pageBar += "<a href=\"javascript:void(0)\">上一页</a>"; } else { pageBar += "<a href=\"" + Request.CurrentExecutionFilePath + "?Page=" + (currentPageIndex - 1) + "\">上一页</a>"; } if ((currentPageIndex + 1) > pds.PageCount) { pageBar += "<a href=\"javascript:void(0)\">下一页</a>"; } else { pageBar += "<a href=\"" + Request.CurrentExecutionFilePath + "?Page=" + (currentPageIndex + 1) + "\">下一页</a>"; } if (currentPageIndex == pds.PageCount) { pageBar += "<a href=\"javascript:void(0)\">末页</a>"; } else { pageBar += "<a href=\"" + Request.CurrentExecutionFilePath + "?Page=" + pds.PageCount + "\">末页</a>"; } 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;} |
前台.aspx代码
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<form id="form1" runat="server"> <div> <asp:Repeater ID="rptDocumentList" runat="server"> <HeaderTemplate> <ul> </HeaderTemplate> <ItemTemplate> <li> <%# DataBinder.Eval(Container.DataItem, "Title")%></li> </ItemTemplate> <FooterTemplate> </ul> </FooterTemplate> </asp:Repeater> </div> <div class="pageBar"> <asp:Literal ID="ltlPageBar" runat="server"></asp:Literal> </div></form> |
下载代码示例:
PageDemo.RAR
Repeater控件的分页实现的更多相关文章
- repeater控件实现分页
repeater控件实现排序的方法,今天我再向大家介绍repeater控件如何实现分页的效果. 分页分为真分页和假分页. 真分页:控件上一页需要显示多少数据,就从数据库取出并绑定多少数据,每次换页时都 ...
- Repeater控件的分页效果
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" HorizontalAlign=" ...
- ASP.NET Repeater控件实现简单分页
早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pa ...
- Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能) 摘自:http://www.cnblogs.com/alanliu/archive/2008/02/25/914779.html 前臺代碼 <%@ ...
- (转) .NET实现Repeater控件+AspNetPager控件分页
SqlConnection (.NET C#) 连接及分页 .net的访问数据机制决定了访问大量数据时会致使客户端机器消耗大量资源,因此有必要对数据进行分页显示,开发工具vs.net+sqlserve ...
- repeater控件自定义Url分页带参数
repeater控件的效果图如下: 该页面实现的功能如下: 1.上下分页,(也可以带首页和末页,我只是禁掉了没用) 2.根据用户输入的指定分页索引进行跳转 3.根据筛选数据的参数进行URL分页的参数传 ...
- asp.net动态网站repeater控件使用及分页操作介绍
asp.net动态网站repeater控件使用及分页操作介绍 1.简单介绍 Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功 ...
- 使用Sql分页方法给Repeater控件分页的方法
页面代码 <div class="bookList"> <asp:Repeater ID="rpBooks" runat="serv ...
- 使用Repeater控件实现三层嵌套以及分页效果
PS: 第一次用Repeater控件 记录一下 请忽略我的命名不规范 请忽略我的最终效果图(太丑了) 需要用到的朋友可以自行调整的漂亮点 ====================最终效果图===== ...
随机推荐
- "Regressing Robust and Discriminative 3D Morphable Models with a very Deep Neural Network" 解读
简介:这是一篇17年的CVPR,作者提出使用现有的人脸识别深度神经网络Resnet101来得到一个具有鲁棒性的人脸模型. 原文链接:https://www.researchgate.net/publi ...
- bower配置私服nexus3
内容来自 https://help.sonatype.com/repomanager3/bower-repositories#BowerRepositories-BrowsingBowerReposi ...
- PTA (Advanced Level) 1002 A+B for Polynomials
1002 A+B for Polynomials This time, you are supposed to find A+B where A and B are two polynomials. ...
- 01_python2.x和python3.x中range()的区别
Py2.x 1) .range 和xrange都是经常使用的,特别是range()返回一个列表 2) .xrange()一般用来创建迭代对象 Py3.x xrange()不存在了,只有range()而 ...
- 笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)
初识遗传算法Genetic Algorithm(GA) 遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种.进化算法借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传.突变.自然选 ...
- Bitcoin区块验证
目录 区块的生成 区块的验证链接 验证过程 Merkle Tree结构 区块的生成 矿工在挖矿前要组建区块 将coinbase交易打包进区块 将交易池中高优先级的交易打包进区块 优先级 = 交易的额度 ...
- Vue 和 angular
vue适合移动端的项目,而angular更适合运用于Pc端的项目.
- Activiti源码学习:ExecutionListener与TaskListener的区别
/** Callback interface to be notified of execution events like starting a process instance, * ending ...
- 统计nginx日志的状态码
日志格式 61.159.140.123 - - [23/Aug/2014:00:01:42 +0800] "GET /favicon.ico HTTP/1.1" 404 \ &qu ...
- Ubutnu linux 下升级python版本,以2.x升级到3.x为例
Linux操作系统一般 都会自带python,但是python版本会比主流低,故升级python, 主要思路:自带的python的链接link文件是在/usr/bin 下,采用sudo apt-get ...