DataBinder.Eval メソッド

定義

リフレクションを使用して、オブジェクトに対するデータ バインディング式を実行時に解析および評価します。Uses reflection to parse and evaluate a data-binding expression against an object at run time.

オーバーロード

Eval(Object, String)

実行時にデータ バインディング式を評価します。Evaluates data-binding expressions at run time.

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 フォームでのモデルバインドの使用に関するチュートリアルシリーズについては、「モデルバインドと Web フォーム」を参照してください。For a tutorial series on using model binding with Web Forms, see Model Binding and Web Forms.

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

式の評価に使用するオブジェクト参照。The object reference against which the expression is evaluated. これは、ページの指定された言語による有効なオブジェクト識別子である必要があります。This must be a valid object identifier in the page's specified language.

expression
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).Price など、ピリオドで区切られたプロパティ名またはフィールド名から成る文字列である必要があります。This 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コントロールの宣言型の構文では、 containerパラメーターにEval対してContainer.DataItemメソッドを使用します。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.

このメソッドは、Visual Studio などの迅速なアプリケーション開発 (RAD) デザイナーでデータバインディングを作成するときに自動的に呼び出されます。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 GridViewコントロール ( DetailsView DataList、、、 Repeaterなど)Container.DataItemの場合は、である必要があります。containerFor any of the list Web controls, such as GridView, DetailsView, DataList, or Repeater, container should be Container.DataItem. ページにバインドする場合、 containerはであるPage必要があります。If 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 フォームでのモデルバインドの使用に関するチュートリアルシリーズについては、「モデルバインドと Web フォーム」を参照してください。For a tutorial series on using model binding with Web Forms, see Model Binding and Web Forms.

こちらもご覧ください

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

式の評価に使用するオブジェクト参照。The object reference against which the expression is evaluated. これは、ページの指定された言語による有効なオブジェクト識別子である必要があります。This must be a valid object identifier in the page's specified language.

expression
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).Price など、ピリオドで区切られたプロパティ名またはフィールド名から成る文字列である必要があります。This 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

データ バインディング式によって返された Object インスタンスを String オブジェクトに変換する (Format(String, Object) で使用されているような) .NET Framework 書式指定文字列。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コントロールの宣言型の構文では、 containerパラメーターにEval対してContainer.DataItemメソッドを使用します。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.

このメソッドは、Visual Studio などの迅速なアプリケーション開発 (RAD) デザイナーでデータバインディングを作成するときに自動的に呼び出されます。This method is automatically called when you create data bindings in a rapid application development (RAD) designer such as Visual Studio. また、これを宣言によって使用Objectして、結果のをデータバインディング式Stringからに変換することもできます。You 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 GridViewコントロール ( DetailsView DataList、、、 Repeaterなど)Container.DataItemの場合は、である必要があります。containerFor any of the list Web controls, such as GridView, DetailsView, DataList, or Repeater, container should be Container.DataItem. ページにバインドする場合、 containerはであるPage必要があります。If 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 フォームでのモデルバインドの使用に関するチュートリアルシリーズについては、「モデルバインドと Web フォーム」を参照してください。For a tutorial series on using model binding with Web Forms, see Model Binding and Web Forms.

こちらもご覧ください

適用対象