.NET中的repeater简介及分页效果
Repeater控件是一个数据绑定容器控件,它能够生成各个项的列表,并可以使用模板定义网页上各个项的布局。当该页运行时,该控件为数据源中的每个项重复此布局。
配合模板使用repeater控件
若要使用repeater控件,需创建定义控件内容布局的模板。模板可以包含标记和控件的任意组合。如果未定义模板,或者模板都不包含元素,则当应用程序运行时,该控件不显示在页面上。
ItemTemplate:含要为数据源中每个数据项都要呈现一次的HTML元素和控件。
AlternatingItemTemplate:对交替数据项进行格式设置(包含要为数据源中每个数据项都要呈现一次的HTML元素和控件。通常,可以使用此模板为交替项创建不同的外观,例如指定一种与在ItemTemplate中指定的颜色不同的背景色)。
SeparatorTemplate:对分隔符进行格式设置(包含在每项之间呈现的元素。)。
HeaderTemplate:对页眉进行格式设置(包含在列表的开始处分别呈现的文本和控件。)。
FooterTemplate:对页脚进行格式设置(包含在列表的结束处分别呈现的文本和控件。)。
Repeater分页效果如下:
前台代码:
<body> <asp:RepeaterID="Repeater1"runat="server"> <HeaderTemplate> <pstyle="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;"><spanstyle="padding-left:30px;">用户名</span><spanstyle="padding-left:100px;">注册时间</span><spanstyle="padding-left:90px;">访问量</span></p> <tablestyle="margin-left:30px;margin-top:30px;"> </HeaderTemplate> <ItemTemplate> <tr> <tdstyle="width:120px;text-align:left;padding-left:20px;"><%#Eval("Username")%></td> <tdstyle="width:170px;text-align:left;"><%#Eval("RegistrationTime")%></td> <tdstyle="width:50px;text-align:left;"><%#Eval("AccessAmount")%></td> </tr> <tr> <tdcolspan="3"style="border-bottom:1pxinset#C0D9D9;padding-top:7px;"></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> <divstyle="margin-left:50px;"> <divstyle="margin:0auto;margin-top:50px;border:1pxsolid#fff;font-size:16px;font-family:"microsoftyahei","宋体";"> <a><divstyle="border:1pxsolid#000;width:60px;float:left;margin:5px;text-align:center;"><astyle="color:#000">共<asp:Labelrunat="server"ID="zong"></asp:Label>页</a></div></a> <a><divstyle="border:1pxsolid#000;width:60px;float:left;margin:5px;text-align:center;"><astyle="color:#000">第<asp:Labelrunat="server"ID="dangqian"></asp:Label>页</a></div></a> <a><divstyle="border:1pxsolid#000;width:40px;float:left;margin:5px;text-align:center;"><astyle="color:#000"><asp:hyperlinkid="first"runat="server"style="color:#000">首页</asp:hyperlink></a></div></a> <a><divstyle="border:1pxsolid#000;width:60px;float:left;margin:5px;text-align:center;"><astyle="color:#000"><asp:hyperlinkid="lnkPrev"runat="server"style="color:#000">上一页</asp:hyperlink></a></div></a> <a><divstyle="border:1pxsolid#000;width:60px;float:left;margin:5px;text-align:center;"><astyle="color:#000"><asp:hyperlinkid="lnkNext"runat="server"style="color:#000">下一页</asp:hyperlink></a></div></a> <a><divstyle="border:1pxsolid#000;width:40px;float:left;margin:5px;text-align:center;"><astyle="color:#000"><asp:hyperlinkid="end"runat="server"style="color:#000">尾页</asp:hyperlink></a></div></a> </div> </div> </body>
后台代码:
protectedvoidPage_Load(objectsender,EventArgse) { if(!Page.IsPostBack) { getUsers(); } } privatevoidgetUsers() { List<Users1>list=newAdminManager().QueryUsers(); PagedDataSourcepag=newPagedDataSource(); pag.AllowPaging=true;//设置允许分页 pag.PageSize=10;//每页显示为3行 pag.DataSource=list;//模板绑定数据源 zong.Text=pag.PageCount.ToString();//显示总共页数 intCurrentPage; //请求页码为不为null设置当前页,否则为第一页 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;//当前页所引为页码-1 dangqian.Text=CurrentPage.ToString();//当前页 if(!pag.IsFirstPage) { //Request.CurrentExecutionFilePath为当前请求虚拟路径 lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(CurrentPage-1); } //如果不是最后一页,通过参数Page设置下一页为当前页+1,否则不显示连接 if(!pag.IsLastPage) { //Request.CurrentExecutionFilePath为当前请求虚拟路径 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(); }
如果不需要进行分页,可执行以下代码:
protectedvoidPage_Load(objectsender,EventArgse) { if(!Page.IsPostBack) { getUsers(); } } privatevoidgetUsers() { List<Users1>list=newAdminManager().QueryUsers(); this.Repeater1.DataSource=list; this.Repeater1.DataBind(); }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!