代码改变世界

Repeater控件用法

2016-12-12 15:10  若藜520  阅读(414)  评论(0编辑  收藏  举报
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Repeater.aspx.cs" Inherits="FileUpload自动上传文件.Repeater" %>

<!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>
    <table >
                <tr>
                    <th>标题1</th>
                    <th>标题2</th>
                    <th>标题3</th>
                    <th>标题4</th>
                </tr>
    <asp:Repeater ID ="rptList" runat ="server" >
   <%--     <HeaderTemplate >
            <table >
                <tr>
                    <th>标题1</th>
                    <th>标题2</th>
                    <th>标题3</th>
                    <th>标题4</th>
                </tr>
            
         </HeaderTemplate>--%>
            <SeparatorTemplate >
            <tr>
                <td colspan ="4"><hr /></td>
            </tr>
            </SeparatorTemplate>
        <ItemTemplate >
        <tr>
            <td><%#DataBinder.Eval(Container.DataItem,"title1")%>1</td>
            <td><%#DataBinder.Eval(Container.DataItem, "title2")%></td>
            <td><%#DataBinder.Eval(Container.DataItem, "title3")%></td>
            <td><%#DataBinder.Eval(Container.DataItem, "title4")%></td>

        </tr>
        </ItemTemplate>

      
        
        <%--<FooterTemplate ></table></FooterTemplate>--%>
        <FooterTemplate >
        <tr>
        <td colspan ="4"  style ="text-align :center;" >结尾</td>
        </tr>
        </FooterTemplate>
    </asp:Repeater>
    </table>
    </div>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace FileUpload自动上传文件
{
    public partial class Repeater : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("title1");
            dt.Columns.Add("title2");
            dt.Columns.Add("title3");
            dt.Columns.Add("title4");

            for (int i = 1; i < 5; i++)
            {
                DataRow row = dt.NewRow();
                row["title1"] = "title1"+i;
                row["title2"] = "title2" + i;
                row["title3"] = "title3" + i;
                row["title4"] = "title4" + i;
                dt.Rows.Add(row);

            }
            rptList.DataSource = dt;
            rptList.DataBind();
        }
    }
}
View Code

 

AlternatingItemTemplate
与 ItemTemplate 元素类似,但在 Repeater 控件中隔行(交替项)呈现一次。通过设置 AlternatingItemTemplate 元素的样式属性,可以为其指定不同的外观。

FooterTemplate
在所有数据绑定行呈现之后呈现一次的元素。典型的用途是关闭在 HeaderTemplate 项中打开的元素(使用 </table> 这样的标记)。

注意 FooterTemplate 不能是数据绑定的。 

HeaderTemplate
在所有数据绑定行呈现之前呈现一次的元素。典型的用途是开始一个容器元素(如表),或者用于设置列名注意 HeaderTemplate 项不能是数据绑定的。

ItemTemplate
为数据源中的每一行都呈现一次的元素。若要显示 ItemTemplate 中的数据,请声明一个或多个 Web 服务器控件并设置其数据绑定表达式以使其计算为 Repeater 控件(即容器控件)的 DataSource 中的字段。以下示例显示一个示例声明,它显示包含 Label 控件中的第一个名称的字段。

First Name:
<asp:Label runat="server"
Text="<%# Container.DataItem.FirstName %>" />

SeparatorTemplate
在各行之间呈现的元素,通常是分行符(<br> 标记)、水平线(<hr> 标记)等。

注意 SeparatorTemplate 项不能是数据绑定的。


摘抄于http://www.wzsky.net/html/Program/net/28134.html

Repeater联合UpdatePanal使用,有时候为了局部更新就得使用UpdatePanal

注:UpdatePanal要放在<table></table>外面,每次都应更新整个table,否则会有意想不到的问题

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Repeater.aspx.cs" Inherits="FileUpload自动上传文件.Repeater" %>

<!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">
    <asp:ScriptManager runat ="server" ></asp:ScriptManager>
    <div>
        <asp:Button ID ="btnSearch" runat ="server" Text ="刷新" onclick="btnSearch_Click"  />
    </div>
    <div>

    <asp:UpdatePanel ID ="UpdatePanel1" runat ="server" RenderMode ="Inline"  UpdateMode ="Conditional" >
    <ContentTemplate >
    <table >
                <tr>
                    <th>标题1</th>
                    <th>标题2</th>
                    <th>标题3</th>
                    <th>标题4</th>
                    <th>时间</th>
                </tr>
                
    <asp:Repeater ID ="rptList" runat ="server" >
            <SeparatorTemplate >
            <tr>
                <td colspan ="4"><hr /></td>
            </tr>
            </SeparatorTemplate>
        <ItemTemplate >
        <tr>
            <td><%#DataBinder.Eval(Container.DataItem,"title1")%>1</td>
            <td><%#DataBinder.Eval(Container.DataItem, "title2")%></td>
            <td><%#DataBinder.Eval(Container.DataItem, "title3")%></td>
            <td><%#DataBinder.Eval(Container.DataItem, "title4")%></td>
            <td><%#DateTime.Now.ToString()%></td>
        </tr>
        </ItemTemplate>
    </asp:Repeater>
     </table>
    
  </ContentTemplate>
  <Triggers >
  <asp:AsyncPostBackTrigger ControlID ="btnSearch" EventName ="click" />
  </Triggers>
  </asp:UpdatePanel>
   
    </div>
    </form>
</body>
</html>

 

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

namespace FileUpload自动上传文件
{
    public partial class Repeater : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindRptData();
            }
        }

        protected void btnSearch_Click(object sender, EventArgs e)
        {
            BindRptData();
        }

        private void BindRptData()
        {
             DataTable dt = new DataTable();
            dt.Columns.Add("title1");
            dt.Columns.Add("title2");
            dt.Columns.Add("title3");
            dt.Columns.Add("title4");

            for (int i = 1; i < 5; i++)
            {
                DataRow row = dt.NewRow();
                row["title1"] = "title1"+i;
                row["title2"] = "title2" + i;
                row["title3"] = "title3" + i;
                row["title4"] = "title4" + i;
                dt.Rows.Add(row);

            }
            rptList.DataSource = dt;
            rptList.DataBind();
        }
    }
}
View Code