本文摘自PHP中文网,作者Y2J,侵删。
Repeater控件是一个数据绑定容器控件,它能够生成各个项的列表,并可以使用模板定义网页上各个项的布局。本文对此进行详细介绍,下面跟着小编一起来看下吧Repeater控件是一个数据绑定容器控件,它能够生成各个项的列表,并可以使用模板定义网页上各个项的布局。当该页运行时,该控件为数据源中的每个项重复此布局。
配合模板使用repeater控件
若要使用repeater控件,需创建定义控件内容布局的模板。模板可以包含标记和控件的任意组合。如果未定义模板,或者模板都不包含元素,则当应用程序运行时,该控件不显示在页面上。
ItemTemplate : 含要为数据源中每个数据项都要呈现一次的 HTML 元素和控件。
AlternatingItemTemplate : 对交替数据项进行格式设置(包含要为数据源中每个数据项都要呈现一次的 HTML 元素和控件。通常,可以使用此模板为交替项创建不同的外观,例如指定一种与在ItemTemplate中指定的颜色不同的背景色)。
SeparatorTemplate : 对分隔符进行格式设置(包含在每项之间呈现的元素。)。
HeaderTemplate : 对页眉进行格式设置(包含在列表的开始处分别呈现的文本和控件。)。
FooterTemplate : 对页脚进行格式设置(包含在列表的结束处分别呈现的文本和控件。)。
Repeater分页效果如下:
前台代码:
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 | <body>
<asp:Repeater ID= "Repeater1" runat= "server" >
<HeaderTemplate>
<p style= "background-color:#988c6e;width:400px;padding-top:5px;padding-bottom:5px;margin-left:30px;margin-top:30px;border-radius:5px;color:#fff;font-weight:bold;" ><span style= "padding-left:30px;" >用户名</span><span style= "padding-left:100px;" >注册时间</span><span style= "padding-left:90px;" >访问量</span></p>
<table style= "margin-left:30px;margin-top:30px;" >
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style= "width:120px;text-align:left; padding-left:20px;" ><%# Eval ( "Username" ) %></td>
<td style= "width:170px;text-align:left; " ><%# Eval ( "RegistrationTime" ) %></td>
<td style= "width:50px;text-align:left; " ><%# Eval ( "AccessAmount" ) %></td>
</tr>
<tr>
<td colspan= "3" style= "border-bottom:1px inset #C0D9D9;padding-top:7px;" ></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<p style= "margin-left:50px;" >
<p style= "margin:0 auto; margin-top:50px;border:1px solid #fff;font-size:16px;font-family:" microsoft yahei "," 宋体 ";" >
<a><p style= "border:1px solid #000; width:60px; float:left; margin:5px;text-align:center;" ><a style= "color:#000" >共<asp:Label runat = "server" ID= "zong" > </asp:Label>页</a></p></a>
<a><p style= "border:1px solid #000; width:60px; float:left;margin:5px;text-align:center;" ><a style= "color:#000" >第<asp:Label runat = "server" ID= "dangqian" > </asp:Label>页</a></p></a>
<a><p style= "border:1px solid #000; width:40px; float:left;margin:5px;text-align:center;" > <a style= "color:#000" ><asp:hyperlink id= "first" runat= "server" style= "color:#000" >首页</asp:hyperlink></a></p></a>
<a><p style= "border:1px solid #000; width:60px; float:left;margin:5px;text-align:center;" ><a style= "color:#000" ><asp:hyperlink id= "lnkPrev" runat= "server" style= "color:#000" >上一页</asp:hyperlink></a></p></a>
<a><p style= "border:1px solid #000; width:60px; float:left;margin:5px;text-align:center;" ><a style= "color:#000" ><asp:hyperlink id= "lnkNext" runat= "server" style= "color:#000" >下一页</asp:hyperlink></a></p></a>
<a><p style= "border:1px solid #000; width:40px; float:left;margin:5px;text-align:center;" > <a style= "color:#000" ><asp:hyperlink id= "end" runat= "server" style= "color:#000" >尾页</asp:hyperlink></a></p></a>
</p>
</p>
</body>
|
后台代码:
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 | protected void Page_Load( object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
getUsers();
}
}
private void getUsers()
{
List<Users1> list = new AdminManager().QueryUsers();
PagedDataSource pag = new PagedDataSource();
pag.AllowPaging = true ;
pag.PageSize = 10;
pag.DataSource = list;
zong.Text = pag.PageCount.ToString();
int CurrentPage;
if (Request.QueryString[ "Page" ] != null )
{
CurrentPage = Convert.ToInt32(Request.QueryString[ "Page" ]);
}
else
{
CurrentPage = 1;
}
if (Request.QueryString[ "PageSize" ] != null )
{
pag.PageSize = Convert.ToInt32(Request.QueryString[ "PageSize" ]);
}
else
{
pag.PageSize = 10;
}
pag.CurrentPageIndex = CurrentPage - 1;
dangqian.Text = CurrentPage.ToString();
if (!pag.IsFirstPage)
{
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage - 1);
}
if (!pag.IsLastPage)
{
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage + 1);
}
first.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
end.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + pag.PageCount.ToString();
if (Convert.ToInt32(HttpContext.Current.Request[ "page" ]) > pag.PageCount)
{
first.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
}
this .Repeater1.DataSource = pag;
this .Repeater1.DataBind();
}
|
如果不需要进行分页,可执行以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 | protected void Page_Load( object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
getUsers();
}
}
private void getUsers()
{
List<Users1> list = new AdminManager().QueryUsers();
this .Repeater1.DataSource = list ;
this .Repeater1.DataBind();
}
|
【相关推荐】
1. 特别推荐:“php程序员工具箱”V0.1版本下载
2. ASP免费视频教程
3. 李炎恢ASP基础视频教程
以上就是.NET用repeater实现分页效果的代码详解的详细内容!
相关阅读 >>
c#中foreach实例代码
解析.net逻辑分层架构
.net中关于接口和类之间的区别介绍
极客学院c#视频教程的资料推荐
core实现全面扫盲贴的asp方法详解
c#中值类型与引用类型的详细介绍
比较.net中接口与类
介绍asp.net的几种分页方式
c# 5.0引入了两个关键字 --async和await
.net core2.0小技巧之memorycache问题修复解决的方法(图)
更多相关阅读请进入《.net》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » .NET用repeater实现分页效果的代码详解