DataList.ItemDataBound 事件

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<html>
<mce: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");

}

}


// --></mce:script>

<body>

<form 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"
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>
posted @ 2011-03-30 10:45  北美上映  阅读(336)  评论(0)    收藏  举报