下面的示例演示如何使用 Eval 方法,以将数据绑定到 Repeater 控件。 这里使用一个自定义类Product。
public class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
//加载测试数据,并绑定数据到 Repeater 控件。
public partial class ShowProducts : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var products = new List<Product>();
products.Add(new Product() { ProductID = 1, Name = "Bike", Price = 150.00 });
products.Add(new Product() { ProductID = 2, Name = "Helmet", Price = 19.99 });
products.Add(new Product() { ProductID = 3, Name = "Tire", Price = 10.00 });
ProductList.DataSource = products;
ProductList.DataBind();
}
}
//aspx文件中的使用如下
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Name") %> for only <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>
<br />
<a href='<%# DataBinder.Eval(Container.DataItem, "ProductID", "details.asp?id={0}") %>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>
//等价的实现
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# Eval("Name") %> for only <%# Eval("Price", "{0:c}") %>
<br />
<a href='<%# Eval("ProductID", "details.asp?id={0}") %>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>
//另一种不确定的实现
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# Container.DataItem("Name") %> for only <%#string.Format("{0:c}",Container.DataItem("Price")%>
<br />
<a href='<%#string.Format("details.asp?id={0}",Container.DataItem("ProductID")%>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>