<%# DataBinder.Eval(Container.DataItem, "customerId") %>
<%# ((DataRowView)Container.DataItem)["customerId"] %>
<%# ((User)Container.DataItem).UserName%>
<%# FormatDate(DataBinder.Eval(Container.DataItem, "Ordered"))%>
<%# FormatMoney(DataBinder.Eval(Container.DataItem, "Amount"))%>
Visible='<%# (int)DataBinder.Eval(Container.DataItem, "Pets.Count") > 0 %>'>
后台:
protected
string
FormatDate(
object
date)
{

if (date == DBNull.Value)
{
return "n/a";
}

try
{
return ((DateTime)date).ToShortDateString();

}catch
{
return "n/a";
}
}

protected
string
FormatMoney(
object
amount)
{

if (amount == DBNull.Value)
{
return String.Format("{0:C}", 0);
}
return String.Format("{0:C}", amount);
}
protected
void
itemDataBoundRepeater_ItemDataBound(
object
source,

RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem ||

e.Item.ItemType == ListItemType.Item)
{
Literal lit = (Literal)e.Item.FindControl("see");

if (lit != null)
{
Owner owner = (Owner)e.Item.DataItem;

if (owner.Pets.Count == 0)
{
lit.Text = "no pets";

}else
{
lit.Text = "see pets";
}
}
}
}
Nested Data
ds.Relations.Add(
new
DataRelation(
"
CustomerOrders
"
,
ds.Tables[
0
].Columns[
"
CustomerId
"
],
ds.Tables[
1
].Columns[
"
CustomerId
"
]));
DataSource='<%# ((DataRowView)Container.DataItem).CreateChildView("CustomerOrders")%>'
DataSource='<%# DataBinder.Eval(Container.DataItem, "CutomerOrders")%>'
DataSource="<%# ((Owner)Container.DataItem).Pets%>"
DataSource='<%# DataBinder.Eval(Container.DataItem, "Pets")%>'
1
protected void dataSetCasting_ItemDataBound(object s,
2
RepeaterItemEventArgs e)
{
3
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType
4
== ListItemType.AlternatingItem)
{
5
Repeater rpt = (Repeater)e.Item.FindControl("orders");
6
if (rpt != null)
{
7
rpt.DataSource =
8
((DataRowView)e.Item.DataItem).CreateChildView("CustomerOrders");
9
rpt.DataBind();
10
}
11
}
12
}
1
<asp:LinkButton ID="delete"
2
Runat="server"
3
CommandName="Delete"
4
CommandArgument='<%# DataBinder.Eval(Container.DataItem,
5
"CustomerId") %>'>
1
protected
void
eventRepeater_ItemCommand(
object
s,
2

3

RepeaterCommandEventArgs e)
{
4
int customerId = Convert.ToInt32(e.CommandArgument);
5
switch (e.CommandName.ToUpper())
{
6
case "DELETE":
7
CustomerUtility.DeleteCustomer(customerId);
8
BindEventRepeater(false);
9
break;
10
case "Add":
11
//doesn't actually do antyhing right now.
12
break;
13
}
14
}
DataItem:如果你用的数据源是Table、DataSet之类的话,那么它可以强制类型转换为DataRowView;如果你用的是自定义实体集合,那么它可以强制类型转换为相应的实体。