Provides data for the ItemCreated and ItemDataBound events of a DataList control. This class cannot be inherited.
System.EventArgs
System.Web.UI.WebControls.DataListItemEventArgs
Namespace: System.Web.UI.WebControls
Assembly: System.Web (in System.Web.dll)
Public Class DataListItemEventArgs _ Inherits EventArgs
public class DataListItemEventArgs : EventArgs
public ref class DataListItemEventArgs : public EventArgs
type DataListItemEventArgs = class inherit EventArgs end
The DataListItemEventArgs type exposes the following members.
| Name | Description | |
|---|---|---|
|
DataListItemEventArgs | Initializes a new instance of the DataListItemEventArgs class. |
| Name | Description | |
|---|---|---|
|
Item | Gets the referenced item in the DataList control when the event is raised. |
| Name | Description | |
|---|---|---|
|
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
|
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
|
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
|
GetType | Gets the Type of the current instance. (Inherited from Object.) |
|
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
|
ToString | Returns a string that represents the current object. (Inherited from Object.) |
The ItemCreated event is raised when an item in the DataList control is created.
The ItemDataBound event is raised when an item in the DataList control is data bound to a source.
For a list of initial property values for an instance of DataListItemEventArgs, see the DataListItemEventArgs constructor.
For more information about handling events, see Consuming Events.
The following example demonstrates how to define a handler for the ItemDataBound event. The code in the handler calculates the price of items in a DataList control. This example specifies the event handler declaratively, setting the event handler for the OnItemDataBound attribute of the DataList control.
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <!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" > <script runat="server"> Function CreateDataSource() As ICollection ' Create sample data for the DataList control. Dim dt As DataTable = New DataTable() Dim dr As DataRow ' Define the columns of the table. dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32))) dt.Columns.Add(New DataColumn("StringValue", GetType(String))) dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double))) ' Populate the table with sample values. Dim i As Integer For i = 0 To 8 dr = dt.NewRow() dr(0) = i dr(1) = "Description for item " & i.ToString() dr(2) = 1.23 * (i + 1) dt.Rows.Add(dr) Next i Dim dv As DataView = New DataView(dt) Return dv End Function Sub Page_Load(sender As Object, e As EventArgs) ' Load sample data only once, when the page is first loaded. If Not IsPostBack Then ItemsList.DataSource = CreateDataSource() ItemsList.DataBind() End If End Sub Sub Item_Bound(sender As Object, e As DataListItemEventArgs) If e.Item.ItemType = ListItemType.Item Or _ e.Item.ItemType = ListItemType.AlternatingItem Then ' Retrieve the Label control in the current DataListItem. Dim PriceLabel As Label = _ CType(e.Item.FindControl("PriceLabel"), Label) ' Retrieve the text of the CurrencyColumn from the DataListItem ' and convert the value to a Double. Dim Price As Double = Convert.ToDouble( _ (CType(e.Item.DataItem, DataRowView)).Row.ItemArray(2).ToString()) ' Format the value as currency and redisplay it in the DataList. PriceLabel.Text = Price.ToString("c") End If End Sub </script> <head runat="server"> <title>DataList ItemDataBound Example</title> </head> <body> <form id="form1" runat="server"> <h3>DataList ItemDataBound Example</h3> <asp:DataList id="ItemsList" BorderColor="black" CellPadding="5" CellSpacing="5" RepeatDirection="Vertical" RepeatLayout="Table" RepeatColumns="3" OnItemDataBound="Item_Bound" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <HeaderTemplate> List of items </HeaderTemplate> <ItemTemplate> Description: <br /> <%# DataBinder.Eval(Container.DataItem, "StringValue") %> <br /> Price: <asp:Label id="PriceLabel" runat="server"/> </ItemTemplate> </asp:DataList> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <!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" > <script runat="server"> ICollection CreateDataSource() { // Create sample data for the DataList control. DataTable dt = new DataTable(); DataRow dr; // Define the columns of the table. dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); dt.Columns.Add(new DataColumn("StringValue", typeof(String))); dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double))); // Populate the table with sample values. for (int i = 0; i < 9; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Description for item " + i.ToString(); dr[2] = 1.23 * (i + 1); dt.Rows.Add(dr); } DataView dv = new DataView(dt); return dv; } void Page_Load(Object sender, EventArgs e) { // Load sample data only once, when the page is first loaded. if (!IsPostBack) { ItemsList.DataSource = CreateDataSource(); ItemsList.DataBind(); } } void Item_Bound(Object sender, DataListItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { // Retrieve the Label control in the current DataListItem. Label PriceLabel = (Label)e.Item.FindControl("PriceLabel"); // Retrieve the text of the CurrencyColumn from the DataListItem // and convert the value to a Double. Double Price = Convert.ToDouble( ((DataRowView)e.Item.DataItem).Row.ItemArray[2].ToString()); // Format the value as currency and redisplay it in the DataList. PriceLabel.Text = Price.ToString("c"); } } </script> <head runat="server"> <title>DataList ItemDataBound Example</title> </head> <body> <form id="form1" runat="server"> <h3>DataList ItemDataBound Example</h3> <asp:DataList id="ItemsList" BorderColor="black" CellPadding="5" CellSpacing="5" RepeatDirection="Vertical" RepeatLayout="Table" RepeatColumns="3" OnItemDataBound="Item_Bound" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <HeaderTemplate> List of items </HeaderTemplate> <ItemTemplate> Description: <br /> <%# DataBinder.Eval(Container.DataItem, "StringValue") %> <br /> Price: <asp:Label id="PriceLabel" runat="server"/> </ItemTemplate> </asp:DataList> </form> </body> </html>
The following example demonstrates how to specify the event handler and programmatically add it to the ItemDataBound event in the Page_Load method.
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <!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" > <script runat="server"> Function CreateDataSource() As ICollection ' Create sample data for the DataList control. Dim dt As DataTable = New DataTable() Dim dr As DataRow ' Define the columns of the table. dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32))) dt.Columns.Add(New DataColumn("StringValue", GetType(String))) dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double))) ' Populate the table with sample values. Dim i As Integer For i = 0 To 8 dr = dt.NewRow() dr(0) = i dr(1) = "Description for item " & i.ToString() dr(2) = 1.23 * (i + 1) dt.Rows.Add(dr) Next i Dim dv As DataView = New DataView(dt) Return dv End Function Sub Page_Load(sender As Object, e As EventArgs) ' Manually register the event-handling method for the ' ItemCommand event. AddHandler ItemsList.ItemDataBound, AddressOf Item_Bound ' Load sample data only once, when the page is first loaded. If Not IsPostBack Then ItemsList.DataSource = CreateDataSource() ItemsList.DataBind() End If End Sub Sub Item_Bound(sender As Object, e As DataListItemEventArgs) If e.Item.ItemType = ListItemType.Item Or _ e.Item.ItemType = ListItemType.AlternatingItem Then ' Retrieve the Label control in the current DataListItem. Dim PriceLabel As Label = _ CType(e.Item.FindControl("PriceLabel"), Label) ' Retrieve the text of the CurrencyColumn from the DataListItem ' and convert the value to a Double. Dim Price As Double = Convert.ToDouble( _ (CType(e.Item.DataItem, DataRowView)).Row.ItemArray(2).ToString()) ' Format the value as currency and redisplay it in the DataList. PriceLabel.Text = Price.ToString("c") End If End Sub </script> <head runat="server"> <title>DataList ItemDataBound Example</title> </head> <body> <form id="form1" runat="server"> <h3>DataList ItemDataBound Example</h3> <asp:DataList id="ItemsList" BorderColor="black" CellPadding="5" CellSpacing="5" RepeatDirection="Vertical" RepeatLayout="Table" RepeatColumns="3" OnItemDataBound="Item_Bound" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <HeaderTemplate> List of items </HeaderTemplate> <ItemTemplate> Description: <br /> <%# DataBinder.Eval(Container.DataItem, "StringValue") %> <br /> Price: <asp:Label id="PriceLabel" runat="server"/> </ItemTemplate> </asp:DataList> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <!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" > <script runat="server"> ICollection CreateDataSource() { // Create sample data for the DataList control. DataTable dt = new DataTable(); DataRow dr; // Define the columns of the table. dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); dt.Columns.Add(new DataColumn("StringValue", typeof(String))); dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double))); // Populate the table with sample values. for (int i = 0; i < 9; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Description for item " + i.ToString(); dr[2] = 1.23 * (i + 1); dt.Rows.Add(dr); } DataView dv = new DataView(dt); return dv; } void Page_Load(Object sender, EventArgs e) { // Manually register the event-handling method for the // ItemCommand event. ItemsList.ItemDataBound += new DataListItemEventHandler(this.Item_Bound); // Load sample data only once, when the page is first loaded. if (!IsPostBack) { ItemsList.DataSource = CreateDataSource(); ItemsList.DataBind(); } } void Item_Bound(Object sender, DataListItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { // Retrieve the Label control in the current DataListItem. Label PriceLabel = (Label)e.Item.FindControl("PriceLabel"); // Retrieve the text of the CurrencyColumn from the DataListItem // and convert the value to a Double. Double Price = Convert.ToDouble( ((DataRowView)e.Item.DataItem).Row.ItemArray[2].ToString()); // Format the value as currency and redisplay it in the DataList. PriceLabel.Text = Price.ToString("c"); } } </script> <head runat="server"> <title>DataList ItemDataBound Example</title> </head> <body> <form id="form1" runat="server"> <h3>DataList ItemDataBound Example</h3> <asp:DataList id="ItemsList" BorderColor="black" CellPadding="5" CellSpacing="5" RepeatDirection="Vertical" RepeatLayout="Table" RepeatColumns="3" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <HeaderTemplate> List of items </HeaderTemplate> <ItemTemplate> Description: <br /> <%# DataBinder.Eval(Container.DataItem, "StringValue") %> <br /> Price: <asp:Label id="PriceLabel" runat="server"/> </ItemTemplate> </asp:DataList> </form> </body> </html>
.NET Framework
Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.