·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> Repeater控件

Repeater控件

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

Repeater控件

Repeater控件和DataList控件,可以用来一次显示一组数据项。比如,可以用它们显示一个数据表中的所有行。 Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式。DataList控件也由模板驱动,和Repeater不同的是,DataList默认输出是HTML表格,DataList将数据源中的记录输出为HTML表格一个个的单元格 。


1、Repeater支持以下5种模板:

● ItemTemplate : 对每一个数据项进行格式设置 (包含要为数据源中每个数据项都要呈现一次的 HTML 元素和控件。)。 ● AlternatingItemTemplate : 对交替数据项进行格式设置(包含要为数据源中每个数据项都要呈现一次的 HTML 元素和控件。)。 ● SeparatorTemplate : 对分隔符进行格式设置(包含在每项之间呈现的元素。)。 ● HeaderTemplate : 对页眉进行格式设置(包含在列表的开始处分别呈现的文本和控件。)。 ● FooterTemplate : 对页脚进行格式设置(包含在列表的结束处分别呈现的文本和控件。)。

示例一:(基本演示)

aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="RepeaterDemo._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>            <asp:Repeater ID="rptPeople" runat="server">            <HeaderTemplate>            <table border="1">                <tr>                    <td>姓名</td>                    <td>年龄</td>                    <td>性别</td>                </tr>            </HeaderTemplate>            <ItemTemplate>                <tr>                    <td><%#DataBinder.Eval(Container.DataItem,"Name") %></td>                    <td><%#DataBinder.Eval(Container.DataItem,"Age") %></td>                    <td><%#DataBinder.Eval(Container.DataItem,"Sex") %></td>                </tr>            </ItemTemplate>            <FooterTemplate>            </table>            </FooterTemplate>        </asp:Repeater>        </div>    </form></body></html>

cs页面:

using System;using System.Collections.Generic;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace RepeaterDemo{    public partial class _Default : System.Web.UI.Page    {        PRotected void Page_Load(object sender, EventArgs e)        {            List<People> peopleList = new List<People>();            peopleList.Add(new People("韩兆新",24,Sex.男));            peopleList.Add(new People("XXXX", 25, Sex.女));            peopleList.Add(new People("YYYY", 20, Sex.男));            peopleList.Add(new People("ZZZZ", 23, Sex.男));            peopleList.Add(new People("AAAA", 23, Sex.女));            peopleList.Add(new People("BBBB", 18, Sex.女));            rptPeople.DataSource = peopleList;            rptPeople.DataBind();        }    }    public enum Sex    {         男 = 2,        女 = 1,    };    public class People    {        public People(string name, uint age, Sex sex)        {            this.Name = name;            this.Age = age;            this.Sex = sex;        }                       public string Name        {get;set;}        public uint Age        { get; private set; }        public Sex Sex        { get; private set; }    }}

示例二:(AlternatingItemTemplate 模板)

aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="RepeaterDemo._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>            <asp:Repeater ID="rptPeople" runat="server">            <HeaderTemplate>            <table border="1">                <tr>                    <td>姓名</td>                    <td>年龄</td>                    <td>性别</td>                </tr>            </HeaderTemplate>            <ItemTemplate>                <tr>                    <td><%#DataBinder.Eval(Container.DataItem,"Name") %></td>                    <td><%#DataBinder.Eval(Container.DataItem,"Age") %></td>                    <td><%#DataBinder.Eval(Container.DataItem,"Sex") %></td>                </tr>            </ItemTemplate>            <AlternatingItemTemplate>                <tr style="background:gray">                    <td><%#DataBinder.Eval(Container.DataItem,"Name") %></td>                    <td><%#DataBinder.Eval(Container.DataItem,"Age") %></td>                    <td><%#DataBinder.Eval(Container.DataItem,"Sex") %></td>                </tr>            </AlternatingItemTemplate>            <FooterTemplate>            </table>            </FooterTemplate>        </asp:Repeater>        </div>    </form></body></html>

示例三:(SeparatorTemplate模板)

aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="RepeaterDemo._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>            <asp:Repeater ID="rptPeople" runat="server">            <HeaderTemplate>            <table border="1">                <tr>                    <td>姓名</td>                    <td>年龄</td>                    <td>性别</td>                </tr>            </HeaderTemplate>            <ItemTemplate>                <tr>                    <td><%#DataBinder.Eval(Container.DataItem,"Name") %></td>                    <td><%#DataBinder.Eval(Container.DataItem,"Age") %></td>                    <td><%#DataBinder.Eval(Container.DataItem,"Sex") %></td>                </tr>            </ItemTemplate>            <AlternatingItemTemplate>                <tr style="background:gray">                    <td><%#DataBinder.Eval(Container.DataItem,"Name") %></td>                    <td><%#DataBinder.Eval(Container.DataItem,"Age") %></td>                    <td><%#DataBinder.Eval(Container.DataItem,"Sex") %></td>                </tr>            </AlternatingItemTemplate>            <SeparatorTemplate>                <tr style="background:red">                    <td>123</td>                </tr>            </SeparatorTemplate>            <FooterTemplate>            </table>            </FooterTemplate>        </asp:Repeater>        </div>    </form></body></html>

2、Repeater控件的嵌套:

示例一:(Repeater控件嵌套演示:操作子Repeater控件)

aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="RepeaterDemo._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>            <asp:Repeater ID="rptPeople" runat="server"             onitemdatabound="rptPeople_ItemDataBound">            <HeaderTemplate>            <table border="1">                <tr>                    <td>姓名</td>