<%
@ Page Language="C#" AutoEventWireup="True"
%>
<% @ Import Namespace="System.Data" %>
< html >
< 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 >
< 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"
ShowBorder ="True"
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 >
<% @ Import Namespace="System.Data" %>
< html >
< 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 >
< 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"
ShowBorder ="True"
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 >