關於Repeater控制項的使用

來源:互聯網
上載者:User
控制項 關於Repeater控制項的使用



Repeater控制項是一個資料顯示控制項,該控制項允許通過為列表中顯示的每一項重複使用指定的模板來自訂布局。



要顯示資料,必須先建立模板來綁定資料列表,模組定義如下(另見SDK):



模板
說明

AlternatingItemTemplate
與 ItemTemplate 元素類似,但在 重複器控制項中隔行(交替項)呈現一次。通過設定 AlternatingItemTemplate 元素的樣式屬性,可以為其指定不同的外觀。

FooterTemplate
在所有資料繫結行呈現之後呈現一次的元素。典型的用途是關閉在 HeaderTemplate 項中開啟的元素(使用 </table> 這樣的標記)。

注意 FooterTemplate 不能是資料繫結的。

HeaderTemplate
在所有資料繫結行呈現之前呈現一次的元素。典型的用途是開始一個容器元素(如表)。

注意 HeaderTemplate 項不能是資料繫結的。

ItemTemplate
為資料來源中的每一行都呈現一次的元素。若要顯示 ItemTemplate 中的資料,請聲明一個或多個 Web 伺服器控制項並設定其資料繫結運算式以使其計算為 重複器控制項(即容器控制項)的 DataSource 中的欄位。以下樣本顯示一個樣本聲明,它顯示包含 Label 控制項中的第一個名稱的欄位。

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

SeparatorTemplate
在各行之間呈現的元素,通常是分行符(<br> 標記)、水平線(<hr> 標記)等。

注意 SeparatorTemplate 項不能是資料繫結的。


註:該控制項是不能通過可視化編輯模板的,而DataList的DataGrid控制項就可以。



下面說一下程式的建立過程:

1、 建立一個WEB應用程式,將預設的WEB表單改名為:Repeater.aspx。

2、 切換到“HTML”視圖,輸入下列代碼:

<%@ Page language="c#" Codebehind="Repeater.aspx.cs" AutoEventWireup="false" Inherits="TeachShow.Charpter7.Repeater" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<HTML>

<HEAD>

<title>Repeater</title>

<LINK rel="stylesheet" type="text/css" href="../Style.css">

<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">

<meta name="CODE_LANGUAGE" Content="C#">

<meta name="vs_defaultClientScript" content="JavaScript">

<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">

</HEAD>

<body MS_POSITIONING="GridLayout">

<form id="Form1" method="post" runat="server">

<div align="center">

<center>

<table border="0" cellpadding="0" cellspacing="0" width="272" height="136">

<tr>

<td width="272" height="136">

<div align="center">

<center>

<table border="1" cellpadding="0" cellspacing="0" width="272" height="60" bordercolorlight="#000000"

bordercolordark="#ffffff" class="smallRed">

<asp:Repeater id="Repeater1" runat="server">

<HeaderTemplate>

<tr>

<td width="90" height="30"><FONT face="宋體">數字</FONT></td>

<td width="91" height="30"><FONT face="宋體">平方</FONT></td>

<td width="91" height="30"><FONT face="宋體">立方</FONT></td>

</tr>

</HeaderTemplate>

<ItemTemplate>

<tr>

<td width="90" height="30"><%# DataBinder.Eval(Container.DataItem,"數字") %></td>

<td width="91" height="30"><%# DataBinder.Eval(Container.DataItem,"平方") %></td>

<td width="91" height="30"><%# DataBinder.Eval(Container.DataItem,"立方") %></td>

</tr>

</ItemTemplate>

</asp:Repeater>

</table>

</center>

</div>

</td>

</tr>

</table>

</center>

</div>

</form>

</body>

</HTML>



解釋一下程式中用到的方法:

DataBinder.Eval()方法:該方法用於在運行時計算資料繫結運算式,並且根據瀏覽器的需要來格式化輸出結果。該方法有三個參數:

A、 資料項目的命名容器:命名容器是一個對象引用,該對象即是計算運算式所針對的對象。如果綁定是針對清單控制項(如Repeater、DataList或DataGrid)的,則命名容器將始終是Container.DataItem。如果綁定是針對頁面的,則命名容器是Page。

B、 資料欄位名:綁定表格的列名(此例如“平方”等)。

C、 格式字串

如果要求高效能,不建議使用DataBinder.Eval()方法



3、 開啟Repeater.aspx.cs檔案,輸入下面的代碼:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;



namespace TeachShow.Charpter7

{

/// <summary>

/// Repeater 的摘要說明。

/// </summary>

public class Repeater : System.Web.UI.Page

{

protected System.Web.UI.WebControls.Repeater Repeater1;



private void Page_Load(object sender, System.EventArgs e)

{

// 在此處放置使用者代碼以初始化頁面

if(!this.IsPostBack)

{

DataTable mydt=new DataTable();

DataRow mydr;

mydt.Columns.Add(new DataColumn("數字",typeof(Int32)));

mydt.Columns.Add(new DataColumn("平方",typeof(Int32)));

mydt.Columns.Add(new DataColumn("立方",typeof(Int32)));



for(int i=0;i<=10;i++)

{

mydr=mydt.NewRow();

mydr[0]=i;

mydr[1]=i*i;

mydr[2]=i*i*i;

mydt.Rows.Add(mydr);

}



this.Repeater1.DataSource=mydt;

this.Repeater1.DataBind();

}

}



#region Web Form設計器產生的程式碼

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: 該調用是 ASP.NET Web Form設計器所必需的。

//

InitializeComponent();

base.OnInit(e);

}



/// <summary>

/// 設計器支援所需的方法 - 不要使用代碼編輯器修改

/// 此方法的內容。

/// </summary>

private void InitializeComponent()

{

this.Repeater1.ItemCommand += new System.Web.UI.WebControls.RepeaterCommandEventHandler(this.Repeater1_ItemCommand);

this.Load += new System.EventHandler(this.Page_Load);



}

#endregion



private void Repeater1_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)

{



}

}

}

4、 最後瀏覽,看看有什麼結果?見下表:

數字
平方
立方

0
0
0

1
1
1

2
4
8

3
9
27

4
16
64

5
25
125

6
36
216

7
49
343

8
64
512

9
81
729

10
100
1000




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。