DataBinder.Eval Methode

Definition

Verwendet Spiegelung zum Analysieren und Auswerten eines Datenbindungsausdrucks für ein Objekt zur Laufzeit.

Überlädt

Name Beschreibung
Eval(Object, String)

Wertet Datenbindungsausdrücke zur Laufzeit aus.

Eval(Object, String, String)

Wertet Datenbindungsausdrücke zur Laufzeit aus und formatiert das Ergebnis als Zeichenfolge.

Hinweise

Ab .NET Framework 4.5 können Sie modellbindung verwenden, um einige der Aufgaben zu vereinfachen, die Sie durch Datenbindung in früheren Versionen ausführen mussten. Eine Lernprogrammreihe zur Verwendung der Modellbindung mit WebFormularen finden Sie unter "Model Binding" und "Web Forms".

Eval(Object, String)

Wertet Datenbindungsausdrücke zur Laufzeit aus.

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. Dies muss ein gültiger Objektbezeichner in der angegebenen Sprache der Seite sein.

expression
String

Der Navigationspfad vom container Objekt zum öffentlichen Eigenschaftswert, der in der gebundenen Steuerelementeigenschaft platziert werden soll. Dies muss eine Zeichenfolge von Eigenschafts- oder Feldnamen sein, die durch Punkte getrennt sind, z. B. Tables[0].DefaultView.[0].Price in C# oder Tables(0).DefaultView.(0).Price in Visual Basic.

Gibt zurück

Eine Object Instanz, die aus der Auswertung des Datenbindungsausdrucks resultiert.

Ausnahmen

expression ist null oder ist eine leere Zeichenfolge nach dem Kürzen.

Beispiele

Die folgenden Beispiele zeigen, wie Die Eval Methode zum Binden von Daten an Repeater die Steuerung verwendet wird. Sie erfordert eine Datenklasse mit dem Namen "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 CodeBehind-Datei lädt Testdaten und bindet diese Daten an ein Repeater Steuerelement.

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 Container.DataItem für den 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 die Funktion aufrufen Eval und den container Parameter nicht einschließen.

<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 in eine öffentliche Eigenschaft ausgewertet werden.

Diese Methode wird automatisch aufgerufen, wenn Sie Datenbindungen in einem RAD-Designer (Rapid Application Development) erstellen, z. B. Visual Studio. Sie können es auch deklarativ verwenden, um die Umwandlung in eine Textzeichenfolge zu vereinfachen. Dazu verwenden Sie die <%# %> Ausdruckssyntax, wie in standard ASP.NET Datenbindung verwendet.

Diese Methode ist besonders hilfreich, wenn Daten an Steuerelemente gebunden werden, die sich in einer vorlagenbasierten Liste befinden.

Note

Da diese Methode spät gebundene Auswertungen durchführt, kann die Verwendung der Spiegelung zur Laufzeit zu einer spürbar langsamen Leistung im Vergleich zur standardmäßigen ASP.NET Datenbindungssyntax führen.

Für eines der Listenwebsteuerelemente, z GridView. B. , DetailsView, , DataListoder Repeater, container sollte sein Container.DataItem. Wenn Sie eine Bindung für die Seite haben, container sollte es sich um Page.

Ab .NET Framework 4.5 können Sie modellbindung verwenden, um einige der Aufgaben zu vereinfachen, die Sie durch Datenbindung in früheren Versionen ausführen mussten. Eine Lernprogrammreihe zur Verwendung der Modellbindung mit WebFormularen finden Sie unter "Model Binding" und "Web Forms".

Weitere Informationen

Gilt für:

Eval(Object, String, String)

Wertet Datenbindungsausdrücke zur Laufzeit aus und formatiert das Ergebnis als Zeichenfolge.

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. Dies muss ein gültiger Objektbezeichner in der angegebenen Sprache der Seite sein.

expression
String

Der Navigationspfad vom container Objekt zum öffentlichen Eigenschaftswert, der in der gebundenen Steuerelementeigenschaft platziert werden soll. Dies muss eine Zeichenfolge von Eigenschafts- oder Feldnamen sein, die durch Punkte getrennt sind, z. B. Tables[0].DefaultView.[0].Price in C# oder Tables(0).DefaultView.(0).Price in Visual Basic.

format
String

Eine .NET Framework-Formatzeichenfolge (z. B. von Format(String, Object)), die die vom Datenbindungsausdruck zurückgegebene Instanz Object in ein String-Objekt konvertiert.

Gibt zurück

Ein String Objekt, das aus der Auswertung des Datenbindungsausdrucks und der Konvertierung in einen Zeichenfolgentyp resultiert.

Beispiele

Die folgenden Beispiele zeigen, wie Die Eval Methode zum Binden von Daten an Repeater die Steuerung verwendet wird. Sie erfordert eine Datenklasse mit dem Namen "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 CodeBehind-Datei lädt Testdaten und bindet diese Daten an ein Repeater Steuerelement.

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 Container.DataItem für den 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 die Funktion aufrufen Eval und den container Parameter nicht einschließen.

<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, der expression in eine öffentliche Eigenschaft ausgewertet werden muss.

Weitere Informationen zum Formatieren von Zeichenfolgen im .NET Framework finden Sie unter Formatting Types.

Diese Methode wird automatisch aufgerufen, wenn Sie Datenbindungen in einem RAD-Designer (Rapid Application Development) erstellen, z. B. Visual Studio. Sie können es auch deklarativ verwenden, um das Object Ergebnis aus dem Datenbindungsausdruck in einen String. Um die Methode deklarativ zu verwenden, verwenden Sie die <%# %> Ausdruckssyntax, wie sie in der standardmäßigen ASP.NET Datenbindung verwendet wird.

Diese Methode ist besonders hilfreich, wenn Daten an Steuerelemente gebunden werden, die sich in einer vorlagenbasierten Liste befinden.

Note

Da diese Methode spät gebundene Auswertungen durchführt, kann die Verwendung der Spiegelung zur Laufzeit zu einer spürbar langsamen Leistung im Vergleich zur standardmäßigen ASP.NET Datenbindungssyntax führen. Verwenden Sie diese Methode sorgfältig, insbesondere, wenn keine Zeichenfolgenformatierung erforderlich ist.

Für eines der Listenwebsteuerelemente, z GridView. B. , DetailsView, , DataListoder Repeater, container sollte sein Container.DataItem. Wenn Sie eine Bindung für die Seite haben, container sollte es sich um Page.

Ab .NET Framework 4.5 können Sie modellbindung verwenden, um einige der Aufgaben zu vereinfachen, die Sie durch Datenbindung in früheren Versionen ausführen mussten. Eine Lernprogrammreihe zur Verwendung der Modellbindung mit WebFormularen finden Sie unter "Model Binding" und "Web Forms".

Weitere Informationen

Gilt für: