.NET Framework Class Library
Repeater..::.OnItemDataBound Method

Raises the ItemDataBound event.

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)
Syntax

Visual Basic (Declaration)
Protected Overridable Sub OnItemDataBound ( _
    e As RepeaterItemEventArgs _
)
Visual Basic (Usage)
Dim e As RepeaterItemEventArgs

Me.OnItemDataBound(e)
C#
protected virtual void OnItemDataBound(
    RepeaterItemEventArgs e
)
Visual C++
protected:
virtual void OnItemDataBound(
    RepeaterItemEventArgs^ e
)
JScript
protected function OnItemDataBound(
    e : RepeaterItemEventArgs
)

Parameters

e
Type: System.Web.UI.WebControls..::.RepeaterItemEventArgs
The RepeaterItemEventArgs object that contains the event data.
Remarks

Raising an event invokes the event handler through a delegate. For more information, see Consuming Events.

Notes to Inheritors:

When overriding OnItemDataBound in a derived class, be sure to call the base class's OnItemDataBound method.

Examples

The following example illustrates a way to handle the ItemDataBound event of the Repeater control. The data is modified after it is bound to an item in the Repeater control but before it is rendered on the page.

Visual Basic
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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>
<html  >
 <head>
    <title>OnItemDataBound Example</title>

 </head>
 <body>
    <form id="form1" runat="server">

    <h3>OnItemDataBound Example</h3>


       <br />
       <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>
       <br />

    </form>
 </body>
 </html>

C#
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  >
 <head>
    <title>OnItemDataBound Example</title>
<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 id="form1" runat="server">

       <br />
       <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>
       <br />

    </form>
 </body>
 </html>

Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
See Also

Reference

Other Resources

Tags :


Page view tracker