<%# 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;如果你用的是自定义实体集合,那么它可以强制类型转换为相应的实体。
转载于:https://www.cnblogs.com/nanshouyong326/archive/2007/04/24/725053.html
相关资源:Maximizing ASP.NET