DataBinder.Eval Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Verwendet Spiegelung zum Analysieren und Auswerten eines Datenbindungsausdrucks für ein Objekt zur Laufzeit.
Überlädt
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 die 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 and 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 nach dem Kürzen eine leere Zeichenfolge.
Beispiele
Die folgenden Beispiele zeigen, wie Sie die Eval
-Methode verwenden, um Daten an Repeater Steuerelement zu binden. 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 mit 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>
Sie können auch Eval
Funktion aufrufen und den parameter container
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) wie Visual Studio erstellen. 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.
Anmerkung
Da diese Methode spät gebundene Auswertungen durchführt, kann dies zur Laufzeit zu einer spürbar langsamen Leistung im Vergleich zur standardmäßigen ASP.NET Datenbindungssyntax führen.
Für alle Listenwebsteuerelemente, z. B. GridView, DetailsView, DataListoder Repeater, sollte container
Container.DataItem
sein. Wenn Sie eine Bindung für die Seite erstellen, sollte container
Page
sein.
Ab .NET Framework 4.5 können Sie die 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 and 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 Object Instanz konvertiert, die vom Datenbindungsausdruck in ein String-Objekt zurückgegeben wird.
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 Sie die Eval
-Methode verwenden, um Daten an Repeater Steuerelement zu binden. 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 mit 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>
Sie können auch Eval
Funktion aufrufen und den parameter container
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 von expression
muss in eine öffentliche Eigenschaft ausgewertet werden.
Weitere Informationen zu Formatzeichenfolgen im .NET Framework finden Sie unter Formatierungstypen.
Diese Methode wird automatisch aufgerufen, wenn Sie Datenbindungen in einem RAD-Designer (Rapid Application Development) wie Visual Studio erstellen. Sie können es auch deklarativ verwenden, um die Object aus dem Datenbindungsausdruck in einen Stringzu konvertieren. Um die Methode deklarativ zu verwenden, verwenden Sie die <%# %>
Ausdruckssyntax, wie in der Standard-ASP.NET Datenbindung verwendet.
Diese Methode ist besonders hilfreich, wenn Daten an Steuerelemente gebunden werden, die sich in einer vorlagenbasierten Liste befinden.
Anmerkung
Da diese Methode spät gebundene Auswertungen durchführt, kann dies 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 alle Listenwebsteuerelemente, z. B. GridView, DetailsView, DataListoder Repeater, sollte container
Container.DataItem
sein. Wenn Sie eine Bindung für die Seite erstellen, sollte container
Page
sein.
Ab .NET Framework 4.5 können Sie die 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 and Web Forms.