DataBinder.Eval DataBinder.Eval DataBinder.Eval DataBinder.Eval Method

定義

使用反映在 Run Time 時針對物件剖析並評估資料繫結運算式。Uses reflection to parse and evaluate a data-binding expression against an object at run time.

多載

Eval(Object, String) Eval(Object, String) Eval(Object, String) Eval(Object, String)

在執行階段評估資料繫結運算式。Evaluates data-binding expressions at run time.

Eval(Object, String, String) Eval(Object, String, String) Eval(Object, String, String) Eval(Object, String, String)

在執行階段評估資料繫結運算式,並將結果格式化為字串。Evaluates data-binding expressions at run time and formats the result as a string.

備註

從.NET Framework 4.5 開始,您可以使用模型繫結來簡化一些您已透過資料繫結在舊版本中執行的工作。Starting in .NET Framework 4.5, you can use model binding to simplify some of the tasks that you had to perform through data-binding in earlier versions. 使用具有 Web Form 模型繫結的教學課程系列,請參閱 < 模型繫結和 Web FormFor a tutorial series on using model binding with Web Forms, see Model Binding and Web Forms.

Eval(Object, String) Eval(Object, String) Eval(Object, String) Eval(Object, String)

在執行階段評估資料繫結運算式。Evaluates data-binding expressions at run time.

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 Object Object Object

運算式所據以評估的物件參考。The object reference against which the expression is evaluated. 這在網頁的指定語言中必須是有效的物件識別項。This must be a valid object identifier in the page's specified language.

expression
String String String String

巡覽路徑,從 container 物件到要放置在繫結控制項屬性中的公用屬性值。The navigation path from the container object to the public property value to be placed in the bound control property. 它必須是以句號分隔的屬性或欄位名稱的字串,例如 C# 中的 Tables[0].DefaultView.[0].Price 或 Visual Basic 中的 Tables(0).DefaultView.(0).PriceThis must be a string of property or field names separated by periods, such as Tables[0].DefaultView.[0].Price in C# or Tables(0).DefaultView.(0).Price in Visual Basic.

傳回

Object 執行個體,從資料繫結運算式的評估產生。An Object instance that results from the evaluation of the data-binding expression.

例外狀況

expressionnull,或在修剪後為空字串。expression is null or is an empty string after trimming.

範例

下列範例示範如何使用Eval方法來繫結資料Repeater控制項。The following examples show how to use the Eval method to bind data to Repeater control. 它需要名為 Product 的資料類別。It requires a data class named 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控制項。The code-behind file loads test data and binds that data to a Repeater control.

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.DataItemcontainer參數。In the declarative syntax for the Repeater control, you use the Eval method with Container.DataItem for the container parameter.

<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參數。Or, you can call Eval function and not include the container parameter.

<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參數必須評估為公用屬性。The value of the expression parameter must evaluate to a public property.

快速應用程式開發 (RAD) 設計工具,例如 Visual Studio 中建立資料繫結時,會自動呼叫這個方法。This method is automatically called when you create data bindings in a rapid application development (RAD) designer such as Visual Studio. 您可以也使用它以宣告方式簡化轉換為文字字串。You can also use it declaratively to simplify casting to a text string. 若要這樣做,您使用<%# %>運算式語法,因為標準的 ASP.NET 資料繫結中使用。To do so, you use the <%# %> expression syntax, as used in standard ASP.NET data binding.

資料繫結到樣板化的清單中的控制項時,這個方法會特別有用。This method is particularly useful when binding data to controls that are in a templated list.

注意

因為這個方法會執行晚期繫結評估,使用反映在執行階段,它可能會造成效能顯著降低相較於標準的 ASP.NET 資料繫結語法。Because this method performs late-bound evaluation, using reflection at run time, it can cause performance to noticeably slow compared to standard ASP.NET data-binding syntax.

清單的任何 Web 控制項,例如GridViewDetailsViewDataList,或Repeatercontainer應該Container.DataItemFor any of the list Web controls, such as GridView, DetailsView, DataList, or Repeater, container should be Container.DataItem. 如果您要繫結 頁面上,針對container應該是PageIf you are binding against the page, container should be Page.

從.NET Framework 4.5 開始,您可以使用模型繫結來簡化一些您已透過資料繫結在舊版本中執行的工作。Starting in .NET Framework 4.5, you can use model binding to simplify some of the tasks that you had to perform through data-binding in earlier versions. 使用具有 Web Form 模型繫結的教學課程系列,請參閱 < 模型繫結和 Web FormFor a tutorial series on using model binding with Web Forms, see Model Binding and Web Forms.

另請參閱

Eval(Object, String, String) Eval(Object, String, String) Eval(Object, String, String) Eval(Object, String, String)

在執行階段評估資料繫結運算式,並將結果格式化為字串。Evaluates data-binding expressions at run time and formats the result as a 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 Object Object Object

運算式所據以評估的物件參考。The object reference against which the expression is evaluated. 這在網頁的指定語言中必須是有效的物件識別項。This must be a valid object identifier in the page's specified language.

expression
String String String String

巡覽路徑,從 container 物件到要放置在繫結控制項屬性中的公用屬性值。The navigation path from the container object to the public property value to be placed in the bound control property. 它必須是以句號分隔的屬性或欄位名稱的字串,例如 C# 中的 Tables[0].DefaultView.[0].Price 或 Visual Basic 中的 Tables(0).DefaultView.(0).PriceThis must be a string of property or field names separated by periods, such as Tables[0].DefaultView.[0].Price in C# or Tables(0).DefaultView.(0).Price in Visual Basic.

format
String String String String

.NET Framework 格式字串 (如同 Format(String, Object) 所使用的字串),會將資料繫結運算式傳回的 Object 執行個體轉換成 String 物件。A .NET Framework format string (like those used by Format(String, Object)) that converts the Object instance returned by the data-binding expression to a String object.

傳回

String 物件,是評估資料繫結運算式並將它轉換成字串類型的結果。A String object that results from evaluating the data-binding expression and converting it to a string type.

範例

下列範例示範如何使用Eval方法來繫結資料Repeater控制項。The following examples show how to use the Eval method to bind data to Repeater control. 它需要名為 Product 的資料類別。It requires a data class named 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控制項。The code-behind file loads test data and binds that data to a Repeater control.

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.DataItemcontainer參數。In the declarative syntax for the Repeater control, you use the Eval method with Container.DataItem for the container parameter.

<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參數。Or, you can call Eval function and not include the container parameter.

<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必須評估為公用屬性。The value of expression must evaluate to a public property.

如需.NET Framework 中的格式字串的詳細資訊,請參閱格式化型別For more information about format strings in the .NET Framework, see Formatting Types.

快速應用程式開發 (RAD) 設計工具,例如 Visual Studio 中建立資料繫結時,會自動呼叫這個方法。This method is automatically called when you create data bindings in a rapid application development (RAD) designer such as Visual Studio. 您也可以使用它以宣告方式來轉換Object所產生的資料繫結運算式StringYou can also use it declaratively to convert the Object resulting from the data-binding expression to a String. 若要以宣告方式使用方法時,使用<%# %>運算式語法,因為標準的 ASP.NET 資料繫結中使用。To use the method declaratively, use the <%# %> expression syntax, as used in standard ASP.NET data binding.

資料繫結到樣板化的清單中的控制項時,這個方法會特別有用。This method is particularly useful when binding data to controls that are in a templated list.

注意

因為這個方法會執行晚期繫結評估,使用反映在執行階段,它可能會造成效能顯著降低相較於標準的 ASP.NET 資料繫結語法。Because this method performs late-bound evaluation, using reflection at run time, it can cause performance to noticeably slow compared to standard ASP.NET data-binding syntax. 請謹慎,使用這個方法,特別是當格式化字串就不需要。Use this method judiciously, particularly when string formatting is not required.

清單的任何 Web 控制項,例如GridViewDetailsViewDataList,或Repeatercontainer應該Container.DataItemFor any of the list Web controls, such as GridView, DetailsView, DataList, or Repeater, container should be Container.DataItem. 如果您要繫結 頁面上,針對container應該是PageIf you are binding against the page, container should be Page.

從.NET Framework 4.5 開始,您可以使用模型繫結來簡化一些您已透過資料繫結在舊版本中執行的工作。Starting in .NET Framework 4.5, you can use model binding to simplify some of the tasks that you had to perform through data-binding in earlier versions. 使用具有 Web Form 模型繫結的教學課程系列,請參閱 < 模型繫結和 Web FormFor a tutorial series on using model binding with Web Forms, see Model Binding and Web Forms.

另請參閱

適用於