Mastering DataBinding In Asp.net

it2022-05-09  23

<%# 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

最新回复(0)