Repeater控件

本文转自:http://www.cnblogs.com/me115/archive/2011/04/09/2010682.html

Repeater基础

在aspx文件中加入Repeater 控件,在<ItemTemplate></ItemTemplate>包含的范围里加入自己控制的代码,需要替换的变量使用<%# Eval("SellerName")%>;注意两侧的引号。

.aspx:

1 <asp:Repeater ID="SellerRpt" runat="server">
2 <ItemTemplate>
3 <li><a href=‘<%# Eval("SellerName")%>‘ target="_blank">
4 <%# Eval("ComName")%></a></li>
5 </ItemTemplate>
6 </asp:Repeater>

对应的后台cs中,在页面加载处加入数据绑定的代码:

.cs

1 protected void Page_Load(object sender, EventArgs e)
2 {
3 if (!IsPostBack)
4 {
5 DataTable dt = SellerDA.GetTopHotSellers(9);
6 SellerRpt.DataSource = dt;
7 SellerRpt.DataBind();
8 }
9 }

aspx中"SellerName"、"ComName"为DataTable 中的列名。

优化

直接使用DataItem可减少Eval函数的执行步骤,优化页面解析时间:

<%# ((DataRowView)Container.DataItem)["SellerName"]%>替换<%# Eval("SellerName")%>

ArrayList数据源

如果数据源是ArrayList,并且ArrayList为一列string数组,则可不用写出列名:

.aspx:

1 <asp:Repeater ID="topAdHintRpt" runat="server">
2 <ItemTemplate>
3 <asp:Label ID="BarLabel" CssClass="bar" runat="server" Text="|"></asp:Label>
4 <a href="#"><span>
5 <%#Container.DataItem%></span></a>
6 </ItemTemplate>
7 </asp:Repeater>

.cs:

1 ArrayList alterText;
2 AdDA.GetIndexTopList(out alterText);
3 topAdHintRpt.DataSource = alterText;
4 topAdHintRpt.DataBind();

处理后显示

某些情况下,数据库中检索出来的数据并不适合直接显示出来,想要适当处理后显示(eg:日期的格式,字符串长度的控制),可使用标签来占位,在onitemdatabound函数中自行控制:

.aspx:

1 <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="ProRpt_ItemDataBound">
2 <ItemTemplate>
3 <asp:Label ID="colinDate" runat="server" Text=""></asp:Label>
4 </ItemTemplate>
5 </asp:Repeater>

.cs:

 1 protected void ProRpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
 2 {
 3 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
 4 {
 5 DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项
 6 string strDate = rowv["clDate"].ToString();
 7 Label DateLB = e.Item.FindControl("colinDate") as Label;
 8 DateLB.Text = strDate.Substring(0, 10);
 9 }
10 }

嵌套Reapeter的显示

对于某些复杂的显示逻辑,需用用到Reapeter的嵌套,这里需要自行控制2层数据源的数据绑定:

.aspx:

 1 <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="ProRpt_ItemDataBound">
 2 <ItemTemplate>
 3 <asp:Repeater ID="ParaRpt" runat="server" OnItemDataBound="ParaRpt_ItemDataBound">
 4 <ItemTemplate>
 5 <asp:Label ID="bar" CssClass="bar" runat="server" Text="|"></asp:Label>
 6 <span class="para">
 7 <%# Eval("Name")%>:
 8 <%# Eval("Value")%></span>
 9 </ItemTemplate>
10 </asp:Repeater>
11 </ItemTemplate>
12 </asp:Repeater>

.cs:

 1 protected void ProRpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
 2 {
 3 //判断里层repeater处于外层repeater的哪个位置( AlternatingItemTemplate,FooterTemplate,
 4 //HeaderTemplate,,ItemTemplate,SeparatorTemplate
 5 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
 6 {
 7 Repeater rep = e.Item.FindControl("ParaRpt") as Repeater;//找到里层的repeater对象
 8 DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项
 9 string str = Convert.ToString(rowv["Pro_Content"]); //获取填充子类的内容
10 rep.DataSource = Product.FillPara(str);
11 rep.DataBind();
12 }
13 }
时间: 2024-10-10 10:31:22

Repeater控件的相关文章

webform(三)Repeater控件

Repeater 控件用于显示重复的项目列表,这些项目被限制在该控件.Repeater 控件可被绑定到数据库表.XML 文件或者其他项目列表. 一.建实体类和数据访问类 建立的方法和winform一样,建立时会提示类文件应该放在App_Code文件里,是否放入,选择是,会自动创建该文件夹并将类放进去. webform没有命名空间. 实体类: public class Users { public int Ids { get; set; } public string Ucode { get; s

【2017-05-18】WebForm的Repeater控件和一些简单控件

一.Repeater控件 1. <%@ %> - 这里面写一些声明和引用的 <%  %> - 编写C#代码的 <%= %> - 往界面上输出一个变量的值 <%# Eval("属性名","可选,格式字符串")%> - 在Repeater数据展示中使用 2.Repeater控件   - 用来展示数据重复执行. <HeaderTemplate></HeaderTemplate>     先执行,执行一

Webform(Repeater控件)

一.Repeater控件 有五大模板 ItemTemplate :有多少条数据,执行多少遍        AlternatingItemTemplate : 对交替数据项进行格式设置       SeparatorTemplate : 对分隔符进行格式设置        HeaderTemplate : 对页眉进行格式设置 ,在加载开始执行一遍      FooterTemplate : 对页脚进行格式设置,在加载最后执行一遍 1.数据绑定 list<Users> li =new usersD

Repeater控件 ---表格展示数据

简介: Repeater控件是Web 服务器控件中的一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表. Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局.当该页运行时, Repeater 控件依次通过数据源中的记录为每个记录呈现一个项. Repeater控件不具备内置的呈现功能,所以我们得用一些模板来实现他的数据呈现 下表描述了 Repeater 控件支持的模板.  模板属性                           

Repeater控件-2

本文转自:http://www.cnblogs.com/foolin/archive/2011/08/31/2161342.html 文章最后更新于2011年9月2日,增加Demo代码. 一般开发绑定数据的时候,Repeater控件是非常好用的控件,但是很多.net开发人员苦恼于无法分页,于是开发一个基于Repeater的分页控件,现在拿出来和大家一起分享分享.写得不好大家可以尽管拍砖,源码在本文后面.其实这个分页控件非常简单,分页控件只是根据记录数和当前页数等设置而输出一个分页导航条而已,并没

repeater控件实现分页

repeater控件实现排序的方法,今天我再向大家介绍repeater控件如何实现分页的效果. 分页分为真分页和假分页. 真分页:控件上一页需要显示多少数据,就从数据库取出并绑定多少数据,每次换页时都需要访问数据库. 假分页:从数据库一次性取出所有数据绑定到控件上,再将所有数据根据一页显示多少条而分页. 从以上二者的概念上我们可以看出,区别在于分页时从数据库读取信息的方式,真分页的效率无疑是最高的.假分页在首次页面加载的时候会比较慢(如果数据量较多). 二者其实各有各的优缺点,可根据需要来自行选

WebForm(四)——Repeater控件(重要、好用)

Repeater控件,可以用来一次显示一组数据项.比如,可以用它们显示一个数据表中的所有行.             Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式. 一.Repeater控件显示数据 要使用Repeater控件显示数据,必须创建ItemTemplate.如下所示: 例1:使用ItemTemplate显示数据 <asp:Repeater ID="Repeater1" runat="server" DataSou

C#Repeater控件的使用

一.Repeater的用途 用来显示数据 二.Repeater的使用步骤 step1:在网页中拖入一个Repeater控件.在后台代码中,指定它的数据源,需要一个List泛型集合. public partial class query : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Repeater1.DataSource = new FruitDA().select(); Repeate

repeater控件自定义Url分页带参数

repeater控件的效果图如下: 该页面实现的功能如下: 1.上下分页,(也可以带首页和末页,我只是禁掉了没用) 2.根据用户输入的指定分页索引进行跳转 3.根据筛选数据的参数进行URL分页的参数传递 4.数据的导出功能 前台代码: <!--表格具体内容--> <div class="table-box"> <table> <thead> <tr> <th>编号</th> <th>姓名&l