DataBinder.Eval Methode

Definition

Verwendet Reflektion, um einen Datenbindungsausdruck für ein Objekt zur Laufzeit zu analysieren und auszuwerten.Uses reflection to parse and evaluate a data-binding expression against an object at run time.

Überlädt

Eval(Object, String)

Wertet Datenbindungsausdrücke zur Laufzeit ausEvaluates data-binding expressions at run time.

Eval(Object, String, String)

Wertet zur Laufzeit Datenbindungsausdrücke aus und formatiert das Ergebnis als ZeichenfolgeEvaluates data-binding expressions at run time and formats the result as a string.

Hinweise

Ab .NET Framework 4,5 können Sie die Modell Bindung verwenden, um einige der Aufgaben zu vereinfachen, die Sie über die Datenbindung in früheren Versionen durchführen mussten.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. Eine tutorialreihe zur Verwendung der Modell Bindung mit Web Forms finden Sie unter Modell Bindung und Web Forms.For a tutorial series on using model binding with Web Forms, see Model Binding and Web Forms.

Eval(Object, String)

Wertet Datenbindungsausdrücke zur Laufzeit ausEvaluates 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

Parameter

container
Object

Der Objektverweis, für den der Ausdruck ausgewertet wird.The object reference against which the expression is evaluated. Dabei muss es sich um einen gültigen Objektbezeichner in der angegebenen Sprache der Seite handeln.This must be a valid object identifier in the page's specified language.

expression
String

Der Pfad vom container-Objekt zum Wert der öffentlichen Eigenschaften, der in der Eigenschaft des gebundenen Steuerelements platziert werden soll.The navigation path from the container object to the public property value to be placed in the bound control property. Dieser muss eine Zeichenfolge von Eigenschaften- oder Feldnamen sein, die durch Punkte voneinander getrennt sind, z.B. Tables[0].DefaultView.[0].Price in C# oder Tables(0).DefaultView.(0).Price in Visual Basic.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.

Gibt zurück

Object

Eine Object-Instanz, die bei der Auswertung des Datenbindungsausdrucks entstehtAn Object instance that results from the evaluation of the data-binding expression.

Ausnahmen

expression ist null oder entspricht nach dem Verkürzen einer leeren Zeichenfolge.expression is null or is an empty string after trimming.

Beispiele

In den folgenden Beispielen wird gezeigt, wie die-Methode verwendet wird Eval , um Daten an Steuerelemente zu binden Repeater .The following examples show how to use the Eval method to bind data to Repeater control. Hierfür ist eine Datenklasse mit dem Namen Product erforderlich.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

Die Code-Behind-Datei lädt Testdaten und bindet diese Daten an ein- Repeater Steuerelement.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

In der deklarativen Syntax für das- Repeater Steuerelement verwenden Sie die- Eval Methode mit Container.DataItem für den- container Parameter.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>

Oder Sie können Eval die-Funktion aufrufen und den- container Parameter nicht einschließen.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>

Hinweise

Der Wert des- expression Parameters muss zu einer öffentlichen Eigenschaft ausgewertet werden.The value of the expression parameter must evaluate to a public property.

Diese Methode wird automatisch aufgerufen, wenn Sie Daten Bindungen in einem Rad-Designer (Rapid Application Development), z. b. Visual Studio, erstellen.This method is automatically called when you create data bindings in a rapid application development (RAD) designer such as Visual Studio. Sie können Sie auch deklarativ verwenden, um das Umwandeln in eine Text Zeichenfolge zu vereinfachen.You can also use it declaratively to simplify casting to a text string. Zu diesem Zweck verwenden Sie die <%# %> Ausdruckssyntax, die in der ASP.net-Standarddaten Bindung verwendet wird.To do so, you use the <%# %> expression syntax, as used in standard ASP.NET data binding.

Diese Methode ist besonders nützlich, wenn Sie Daten an Steuerelemente binden, die sich in einer Vorlagenliste befinden.This method is particularly useful when binding data to controls that are in a templated list.

Hinweis

Da diese Methode eine spät gebundene Auswertung ausführt und die Reflektion zur Laufzeit verwendet, kann dies zu einer deutlich langsamen Leistung im Vergleich zur standardmäßigen ASP.NET-Daten Bindungs Syntax führen.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.

Für eines der Listen-websteuer Elemente, z GridView DetailsView . b.,, DataList oder Repeater , container sollte lauten Container.DataItem .For any of the list Web controls, such as GridView, DetailsView, DataList, or Repeater, container should be Container.DataItem. Wenn Sie eine Bindung mit der Seite durchlaufen, container sollte lauten Page .If you are binding against the page, container should be Page.

Ab .NET Framework 4,5 können Sie die Modell Bindung verwenden, um einige der Aufgaben zu vereinfachen, die Sie über die Datenbindung in früheren Versionen durchführen mussten.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. Eine tutorialreihe zur Verwendung der Modell Bindung mit Web Forms finden Sie unter Modell Bindung und Web Forms.For a tutorial series on using model binding with Web Forms, see Model Binding and Web Forms.

Siehe auch

Gilt für:

Eval(Object, String, String)

Wertet zur Laufzeit Datenbindungsausdrücke aus und formatiert das Ergebnis als ZeichenfolgeEvaluates 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

Parameter

container
Object

Der Objektverweis, für den der Ausdruck ausgewertet wird.The object reference against which the expression is evaluated. Dabei muss es sich um einen gültigen Objektbezeichner in der angegebenen Sprache der Seite handeln.This must be a valid object identifier in the page's specified language.

expression
String

Der Pfad vom container-Objekt zum Wert der öffentlichen Eigenschaften, der in der Eigenschaft des gebundenen Steuerelements platziert werden soll.The navigation path from the container object to the public property value to be placed in the bound control property. Dieser muss eine Zeichenfolge von Eigenschaften- oder Feldnamen sein, die durch Punkte voneinander getrennt sind, z.B. Tables[0].DefaultView.[0].Price in C# oder Tables(0).DefaultView.(0).Price in Visual Basic.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

Eine .NET Framework-Formatierungszeichenfolge (wie von Format(String, Object) verwendet), die die vom Datenbindungsausdruck zurückgegebene Object-Instanz in ein String-Objekt konvertiertA .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.

Gibt zurück

String

Ein String-Objekt, das sich beim Auswerten des Datenbindungsausdrucks und dem Konvertieren in einen Zeichenfolgentyp ergibtA String object that results from evaluating the data-binding expression and converting it to a string type.

Beispiele

In den folgenden Beispielen wird gezeigt, wie die-Methode verwendet wird Eval , um Daten an Steuerelemente zu binden Repeater .The following examples show how to use the Eval method to bind data to Repeater control. Hierfür ist eine Datenklasse mit dem Namen Product erforderlich.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

Die Code-Behind-Datei lädt Testdaten und bindet diese Daten an ein- Repeater Steuerelement.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

In der deklarativen Syntax für das- Repeater Steuerelement verwenden Sie die- Eval Methode mit Container.DataItem für den- container Parameter.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>

Oder Sie können Eval die-Funktion aufrufen und den- container Parameter nicht einschließen.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>

Hinweise

Der Wert von expression muss zu einer öffentlichen Eigenschaft ausgewertet werden.The value of expression must evaluate to a public property.

Weitere Informationen zu Format Zeichenfolgen im .NET Framework finden Sie unter Formatieren von Typen.For more information about format strings in the .NET Framework, see Formatting Types.

Diese Methode wird automatisch aufgerufen, wenn Sie Daten Bindungen in einem Rad-Designer (Rapid Application Development), z. b. Visual Studio, erstellen.This method is automatically called when you create data bindings in a rapid application development (RAD) designer such as Visual Studio. Sie können Sie auch deklarativ verwenden, um das Object resultierende aus dem Daten Bindungs Ausdruck in eine zu konvertieren String .You can also use it declaratively to convert the Object resulting from the data-binding expression to a String. Um die Methode deklarativ zu verwenden, verwenden Sie die <%# %> Ausdruckssyntax, wie Sie in der ASP.net-Standarddaten Bindung verwendet wird.To use the method declaratively, use the <%# %> expression syntax, as used in standard ASP.NET data binding.

Diese Methode ist besonders nützlich, wenn Sie Daten an Steuerelemente binden, die sich in einer Vorlagenliste befinden.This method is particularly useful when binding data to controls that are in a templated list.

Hinweis

Da diese Methode eine spät gebundene Auswertung ausführt und die Reflektion zur Laufzeit verwendet, kann dies zu einer deutlich langsamen Leistung im Vergleich zur standardmäßigen ASP.NET-Daten Bindungs Syntax führen.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. Verwenden Sie diese Methode mit bedacht, insbesondere dann, wenn keine Zeichen folgen Formatierung erforderlich ist.Use this method judiciously, particularly when string formatting is not required.

Für eines der Listen-websteuer Elemente, z GridView DetailsView . b.,, DataList oder Repeater , container sollte lauten Container.DataItem .For any of the list Web controls, such as GridView, DetailsView, DataList, or Repeater, container should be Container.DataItem. Wenn Sie eine Bindung mit der Seite durchlaufen, container sollte lauten Page .If you are binding against the page, container should be Page.

Ab .NET Framework 4,5 können Sie die Modell Bindung verwenden, um einige der Aufgaben zu vereinfachen, die Sie über die Datenbindung in früheren Versionen durchführen mussten.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. Eine tutorialreihe zur Verwendung der Modell Bindung mit Web Forms finden Sie unter Modell Bindung und Web Forms.For a tutorial series on using model binding with Web Forms, see Model Binding and Web Forms.

Siehe auch

Gilt für: