Repeater.OnItemDataBound メソッド
アセンブリ: System.Web (system.web.dll 内)
構文
イベントが発生すると、デリゲートを使用してイベント ハンドラが呼び出されます。詳細については、「イベントの利用」を参照してください。
継承時の注意 派生クラスで OnItemDataBound をオーバーライドする場合は、基本クラスの OnItemDataBound メソッドを呼び出してください。Repeater コントロールの ItemDataBound イベントを処理する方法の例を次に示します。データは Repeater コントロールの項目にバインドされてから、ページ上に表示されるまでの間に変更されています。
<%@ Page Language="VB" AutoEventWireup="True" %> <html> <head> <script language="VB" runat="server"> Sub Page_Load(Sender As Object, e As EventArgs) If Not IsPostBack Then Dim values As New ArrayList() values.Add(New Evaluation("Razor Wiper Blades", "Good")) values.Add(New Evaluation("Shoe-So-Soft Softening Polish", "Poor")) values.Add(New Evaluation("DynaSmile Dental Fixative", "Fair")) Repeater1.DataSource = values Repeater1.DataBind() End If End Sub Sub R1_ItemDataBound(Sender As Object, e As RepeaterItemEventArgs) ' This event is raised for the header, the footer, separators, and items. ' Execute the following logic for Items and Alternating Items. If (e.Item.ItemType = ListItemType.Item) Or _ (e.Item.ItemType = ListItemType.AlternatingItem) Then If CType(e.Item.DataItem, Evaluation).Rating = "Good" Then CType(e.Item.FindControl("RatingLabel"), Label).Text = _ "<b>***Good***</b>" End If End If End Sub Public Class Evaluation Private myProductid As String Private myRating As String Public Sub New(newProductid As String, newRating As String) Me.myProductid = newProductid Me.myRating = newRating End Sub Public ReadOnly Property ProductID() As String Get Return myProductid End Get End Property Public ReadOnly Property Rating() As String Get Return myRating End Get End Property End Class </script> </head> <body> <h3>OnItemDataBound Example</h3> <form runat=server> <p> <asp:Repeater id=Repeater1 OnItemDataBound="R1_ItemDataBound" runat="server"> <HeaderTemplate> <table border=1> <tr> <td><b>Product</b></td> <td><b>Consumer Rating</b></td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td> <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "ProductID") %>' Runat="server"/> </td> <td> <asp:Label id=RatingLabel Text='<%# DataBinder.Eval(Container.DataItem, "Rating") %>' Runat="server"/> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> <p> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <html> <head> <script language="C#" runat="server"> void Page_Load(Object Sender, EventArgs e) { if (!IsPostBack) { ArrayList values = new ArrayList(); values.Add(new Evaluation("Razor Wiper Blades", "Good")); values.Add(new Evaluation("Shoe-So-Soft Softening Polish", "Poor")); values.Add(new Evaluation("DynaSmile Dental Fixative", "Fair")); Repeater1.DataSource = values; Repeater1.DataBind(); } } void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e) { // This event is raised for the header, the footer, separators, and items. // Execute the following logic for Items and Alternating Items. if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { if (((Evaluation)e.Item.DataItem).Rating == "Good") { ((Label)e.Item.FindControl("RatingLabel")).Text= "<b>***Good***</b>"; } } } public class Evaluation { private string productid; private string rating; public Evaluation(string productid, string rating) { this.productid = productid; this.rating = rating; } public string ProductID { get { return productid; } } public string Rating { get { return rating; } } } </script> </head> <body> <h3>OnItemDataBound Example</h3> <form runat=server> <p> <asp:Repeater id=Repeater1 OnItemDataBound="R1_ItemDataBound" runat="server"> <HeaderTemplate> <table border=1> <tr> <td><b>Product</b></td> <td><b>Consumer Rating</b></td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td> <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "ProductID") %>' Runat="server"/> </td> <td> <asp:Label id=RatingLabel Text='<%# DataBinder.Eval(Container.DataItem, "Rating") %>' Runat="server"/> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> <p> </form> </body> </html>
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- Repeater.OnItemDataBound メソッドのページへのリンク