博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Repeater控件的分页实现
阅读量:5950 次
发布时间:2019-06-19

本文共 3437 字,大约阅读时间需要 11 分钟。

本文讲解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代码。来自 

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
>

 

下载代码示例: 

转载于:https://www.cnblogs.com/ranran/p/4140511.html

你可能感兴趣的文章
Java 集合框架查阅技巧
查看>>
apache配置虚拟主机
查看>>
CollectionView水平和竖直瀑布流的实现
查看>>
redis安装(windows)
查看>>
前端知识复习一(css)
查看>>
从输入网址到显示网页的全过程分析
查看>>
spark集群启动步骤及web ui查看
查看>>
Maven学习笔记二:常用命令
查看>>
利用WCF改进文件流传输的三种方式
查看>>
程序员的素养
查看>>
Spring学习总结(2)——Spring的常用注解
查看>>
关于IT行业人员吃的都是青春饭?[透彻讲解]
查看>>
C# Winform 中DataGridView 实现单元格输入下拉框功能
查看>>
钱到用时方恨少(随记)
查看>>
python 时间操作
查看>>
【oracle】一些的常用命令
查看>>
5、通过Appium Desktop实现页面元素定位
查看>>
JNDI 是什么
查看>>
有关一个java项目到eclipse中运行
查看>>
centos 7 下安装mysql5.7
查看>>