首页 > 技术文章 > C#-WebForm-Repeater-重复器

qq450867541 2016-12-30 11:45 原文

Repeater-重复器 - 类似WinForm中的ListView,用列表来展示数据

格式:

<body>
    <form id="form1" runat="server">
        <asp:Repeater ID="Repeater1" runat="server">  <%-- 重复器 --%>
            <HeaderTemplate></HeaderTemplate>  <%-- 头模板 --%>
            <ItemTemplate></ItemTemplate>  <%-- 项模板 --%>
            <AlternatingItemTemplate></AlternatingItemTemplate>  <%-- 交替模板 --%>
            <FooterTemplate></FooterTemplate>  <%-- 脚模板 --%>
        </asp:Repeater>
    </form>
</body>

<HeaderTemplate></HeaderTemplate> - 头模板:在循环开始时,其内容只会打印一遍

<ItemTemplate></ItemTemplate> - 项模板:重复循环打印其内容(李献策lxc)

<AlternatingItemTemplate></AlternatingItemTemplate> - 交替模板:与项模板交替打印

<FooterTemplate></FooterTemplate> - 脚模板:在循环结束时,其内容只会打印一遍

 

在后台绑定数据源

Repeater1.DataSource = new UserData().Select();
Repeater1.DataBind();

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List<Users> lu = new UsersData().Select();
        Repeater1.DataSource = lu;
        Repeater1.DataBind();
    }
}
后台绑定数据源
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style>
        #tb1 {
            width: 100%;
            text-align: center;
            background-color: navy;
        }

        #t-header {
            color: white;
        }

        .t-item {
            background-color: white;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <%-- 重复器 --%>
        <asp:Repeater ID="Repeater1" runat="server">
            <%-- 头模板 --%>
            <HeaderTemplate>
                <table id="tb1">
                    <tr id="t-header">
                        <td>编号</td>
                        <td>用户名</td>
                        <td>密码</td>
                        <td>昵称</td>
                        <td>性别</td>
                        <td>生日</td>
                        <td>民族</td>
                        <td>班级</td>
                    </tr>
            </HeaderTemplate>
            <%-- 项模板 --%>
            <ItemTemplate>
                <tr class="t-item">
                    <td><%#Eval("Ids") %></td>
                    <td><%#Eval("UserName") %></td>
                    <td><%#Eval("Password") %></td>
                    <td><%#Eval("NickName") %></td>
                    <td><%#Eval("Sex") %></td>
                    <td><%#Eval("Birthday") %></td>
                    <td><%#Eval("Nation") %></td>
                    <td><%#Eval("Class") %></td>
                </tr>
            </ItemTemplate>
            <%-- 脚模板 --%>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>

    </form>
</body>
</html>
展示数据

<ItemTemplate> 绑定数据格式:<td><%#Eval(" ") %></td>(李献策lxc)

交替展示:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style>
        #tb1 {
            width: 100%;
            text-align: center;
            background-color: navy;
        }

        #t-header {
            color: white;
        }

        .t-item {
            background-color: white;
        }
        .t-item1 {
            background-color:aqua;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <%-- 重复器 --%>
        <asp:Repeater ID="Repeater1" runat="server">
            <%-- 头模板 --%>
            <HeaderTemplate>
                <table id="tb1">
                    <tr id="t-header">
                        <td>编号</td>
                        <td>用户名</td>
                        <td>密码</td>
                        <td>昵称</td>
                        <td>性别</td>
                        <td>生日</td>
                        <td>民族</td>
                        <td>班级</td>
                    </tr>
            </HeaderTemplate>
            <%-- 项模板 --%>
            <ItemTemplate>
                <tr class="t-item">
                    <td><%#Eval("Ids") %></td>
                    <td><%#Eval("UserName") %></td>
                    <td><%#Eval("Password") %></td>
                    <td><%#Eval("NickName") %></td>
                    <td><%#Eval("Sex") %></td>
                    <td><%#Eval("Birthday") %></td>
                    <td><%#Eval("Nation") %></td>
                    <td><%#Eval("Class") %></td>
                </tr>
            </ItemTemplate>
            <%-- 交替模板 --%>
            <AlternatingItemTemplate>
                <tr class="t-item1">
                    <td><%#Eval("Ids") %></td>
                    <td><%#Eval("UserName") %></td>
                    <td><%#Eval("Password") %></td>
                    <td><%#Eval("NickName") %></td>
                    <td><%#Eval("Sex") %></td>
                    <td><%#Eval("Birthday") %></td>
                    <td><%#Eval("Nation") %></td>
                    <td><%#Eval("Class") %></td>
                </tr>
            </AlternatingItemTemplate>
            <%-- 脚模板 --%>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>

    </form>
</body>
</html>
交替展示数据

一般,如果通过条件判断来改变样式的,放在属性扩展里,单纯只改变样式,则放在HTML样式中就可以

1、Sex - 显示男女

属性扩展

    

2、Birthday - 显示年月日

<td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>

0 - 代表前面的数据,“:”后为要显示格式(李献策lxc)

  

 3、年龄小于15岁的项显示红色 - 属性扩展

  

<tr>行 展示扩展的属性,可以用来实现-预警-等功能

4、昵称后面加“同学”两个字

5、民族列为黄色(李献策lxc)

 

推荐阅读