DataBinder.Eval 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在运行时使用反射来分析和计算对象的数据绑定表达式。
重载
Eval(Object, String) |
在运行时计算数据绑定表达式。 |
Eval(Object, String, String) |
在运行时计算数据绑定表达式,并将结果的格式设置为字符串。 |
注解
从 .NET Framework 4.5 开始,可以使用模型绑定来简化必须在早期版本中通过数据绑定执行的一些任务。 有关将模型绑定与 Web Forms 配合使用的教程系列,请参阅模型绑定和Web Forms。
Eval(Object, String)
在运行时计算数据绑定表达式。
public:
static System::Object ^ Eval(System::Object ^ container, System::String ^ expression);
public static object Eval (object container, string expression);
static member Eval : obj * string -> obj
Public Shared Function Eval (container As Object, expression As String) As Object
参数
- container
- Object
表达式根据其进行计算的对象引用。 此标识符必须是以页的指定语言表示的有效对象标识符。
- expression
- String
从 container
对象到要放置在绑定控件属性中的公共属性值的导航路径。 这必须是由句点分隔的属性或字段名称的字符串,例如 Tables[0].DefaultView.[0].Price
在 C# 或 Tables(0).DefaultView.(0).Price
Visual Basic 中。
返回
Object 实例,它是数据绑定表达式的计算结果。
例外
expression
为 null
或修整后变成空字符串。
示例
以下示例演示如何使用 Eval
方法将数据绑定到控件 Repeater 。 它需要名为 Product 的数据类。
public class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
Public Class Product
Public Property ProductID As Integer
Public Property Name As String
Public Property Price As Double
End Class
代码隐藏文件加载测试数据并将该数据绑定到控件 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();
}
}
Public Class ShowProducts
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim products As New List(Of Product)()
products.Add(New Product With {.ProductID = 1, .Name = "Bike", .Price = 150.0})
products.Add(New Product With {.ProductID = 2, .Name = "Helmet", .Price = 19.99})
products.Add(New Product With {.ProductID = 3, .Name = "Tire", .Price = 10.0})
ProductList.DataSource = products
ProductList.DataBind()
End Sub
End Class
在 控件的声明性语法中Repeater,对 参数使用 Eval 方法Container.DataItem
container
。
<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>
<%# 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>
或者,可以调用 Eval
函数,但不包括 container
参数。
<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>
<%# 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>
注解
参数的值 expression
的计算结果必须为公共属性。
在快速应用程序开发 (RAD) 设计器(如 Visual Studio)中创建数据绑定时,会自动调用此方法。 还可以以声明方式使用它来简化文本字符串的强制转换。 为此,请使用 <%# %>
标准 ASP.NET 数据绑定中使用的表达式语法。
将数据绑定到模板化列表中的控件时,此方法特别有用。
注意
由于此方法执行后期绑定计算(在运行时使用反射),因此与标准 ASP.NET 数据绑定语法相比,它可能会导致性能明显变慢。
对于任何列表,Web 控件(如 GridView、 DetailsView、 DataList或 Repeater) container
都应为 Container.DataItem
。 如果针对页面进行绑定, container
应为 Page
。
从 .NET Framework 4.5 开始,可以使用模型绑定来简化必须在早期版本中通过数据绑定执行的一些任务。 有关将模型绑定与 Web Forms 配合使用的教程系列,请参阅模型绑定和Web Forms。
另请参阅
适用于
Eval(Object, String, String)
在运行时计算数据绑定表达式,并将结果的格式设置为字符串。
public:
static System::String ^ Eval(System::Object ^ container, System::String ^ expression, System::String ^ format);
public static string Eval (object container, string expression, string format);
static member Eval : obj * string * string -> string
Public Shared Function Eval (container As Object, expression As String, format As String) As String
参数
- container
- Object
表达式根据其进行计算的对象引用。 此标识符必须是以页的指定语言表示的有效对象标识符。
- expression
- String
从 container
对象到要放置在绑定控件属性中的公共属性值的导航路径。 这必须是由句点分隔的属性或字段名称的字符串,例如 Tables[0].DefaultView.[0].Price
在 C# 或 Tables(0).DefaultView.(0).Price
Visual Basic 中。
- format
- String
.NET Framework 格式字符串(如 Format(String, Object) 使用的字符串),它将数据绑定表达式返回的 Object 实例转换为 String 对象。
返回
String 对象,它是计算数据绑定表达式和向字符串类型转换的结果。
示例
以下示例演示如何使用 Eval
方法将数据绑定到控件 Repeater 。 它需要名为 Product 的数据类。
public class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
Public Class Product
Public Property ProductID As Integer
Public Property Name As String
Public Property Price As Double
End Class
代码隐藏文件加载测试数据并将该数据绑定到控件 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();
}
}
Public Class ShowProducts
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim products As New List(Of Product)()
products.Add(New Product With {.ProductID = 1, .Name = "Bike", .Price = 150.0})
products.Add(New Product With {.ProductID = 2, .Name = "Helmet", .Price = 19.99})
products.Add(New Product With {.ProductID = 3, .Name = "Tire", .Price = 10.0})
ProductList.DataSource = products
ProductList.DataBind()
End Sub
End Class
在 控件的声明性语法中Repeater,对 参数使用 Eval 方法Container.DataItem
container
。
<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>
<%# 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>
或者,可以调用 Eval
函数,但不包括 container
参数。
<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>
<%# 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>
注解
的值 expression
的计算结果必须为公共属性。
有关.NET Framework中的格式字符串的详细信息,请参阅格式设置类型。
在快速应用程序开发 (RAD) 设计器(如 Visual Studio)中创建数据绑定时,会自动调用此方法。 还可以以声明方式使用它,将 Object 数据绑定表达式生成的 转换为 String。 若要以声明方式使用 方法,请使用 <%# %>
在标准 ASP.NET 数据绑定中使用的表达式语法。
将数据绑定到模板化列表中的控件时,此方法特别有用。
注意
由于此方法执行后期绑定计算(在运行时使用反射),因此与标准 ASP.NET 数据绑定语法相比,它可能会导致性能明显变慢。 谨慎使用此方法,尤其是在不需要字符串格式设置时。
对于任何列表,Web 控件(如 GridView、 DetailsView、 DataList或 Repeater) container
都应为 Container.DataItem
。 如果针对页面进行绑定, container
应为 Page
。
从 .NET Framework 4.5 开始,可以使用模型绑定来简化必须在早期版本中通过数据绑定执行的一些任务。 有关将模型绑定与 Web Forms 配合使用的教程系列,请参阅模型绑定和Web Forms。