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 Reflektion, um einen Datenbindungsausdruck für ein Objekt zur Laufzeit zu analysieren und auszuwerten.
Überlädt
Eval(Object, String) |
Wertet Datenbindungsausdrücke zur Laufzeit aus |
Eval(Object, String, String) |
Wertet zur Laufzeit Datenbindungsausdrücke aus und formatiert das Ergebnis als Zeichenfolge |
Hinweise
Ab .NET Framework 4.5 können Sie die Modellbindung verwenden, um einige aufgaben zu vereinfachen, die Sie in früheren Versionen über die Datenbindung ausführen mussten. Eine Tutorialreihe zur Verwendung der Modellbindung mit Web Forms finden Sie unter Modellbindung 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. Dabei muss es sich um einen gültigen Objektbezeichner in der angegebenen Sprache der Seite handeln.
- expression
- String
Der Pfad vom container
-Objekt zum Wert der öffentlichen Eigenschaften, der in der Eigenschaft des gebundenen Steuerelements platziert werden soll. Dies muss eine Zeichenfolge von Eigenschaften- oder Feldnamen sein, die durch Punkte getrennt sind, z Tables[0].DefaultView.[0].Price
. B. in C# oder Tables(0).DefaultView.(0).Price
in Visual Basic.
Gibt zurück
Eine Object-Instanz, die bei der Auswertung des Datenbindungsausdrucks entsteht
Ausnahmen
expression
ist null
oder entspricht nach dem Verkürzen einer leeren Zeichenfolge.
Beispiele
Die folgenden Beispiele zeigen, wie Sie die Eval
-Methode verwenden, um Daten an das Steuerelement zu Repeater binden. Hierfür ist eine Datenklasse mit dem Namen Product erforderlich.
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>
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 zu einer öffentlichen 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 sie in der Standarddatenbindung ASP.NET verwendet wird.
Diese Methode ist besonders nützlich, wenn Daten an Steuerelemente gebunden werden, die sich in einer Liste mit Vorlagen befinden.
Hinweis
Da diese Methode eine spät gebundene Auswertung unter Verwendung von Reflektion zur Laufzeit durchführt, kann die Leistung im Vergleich zur Standardmäßigen ASP.NET Datenbindungssyntax spürbar verlangsamt werden.
Für jedes der Listenwebsteuerelemente, z GridView. B. , DetailsView, DataListoder Repeater, container
sollte sein Container.DataItem
. Wenn Sie eine Bindung für die Seite erstellen, container
sollte sein Page
.
Ab .NET Framework 4.5 können Sie die Modellbindung verwenden, um einige aufgaben zu vereinfachen, die Sie in früheren Versionen über die Datenbindung ausführen mussten. Eine Tutorialreihe zur Verwendung der Modellbindung mit Web Forms finden Sie unter Modellbindung und Web Forms.
Weitere Informationen
Gilt für:
Eval(Object, String, String)
Wertet zur Laufzeit Datenbindungsausdrücke 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. Dabei muss es sich um einen gültigen Objektbezeichner in der angegebenen Sprache der Seite handeln.
- expression
- String
Der Pfad vom container
-Objekt zum Wert der öffentlichen Eigenschaften, der in der Eigenschaft des gebundenen Steuerelements platziert werden soll. Dies muss eine Zeichenfolge von Eigenschaften- oder Feldnamen sein, die durch Punkte getrennt sind, z Tables[0].DefaultView.[0].Price
. B. in C# oder 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 konvertiert
Gibt zurück
Ein String-Objekt, das sich beim Auswerten des Datenbindungsausdrucks und dem Konvertieren in einen Zeichenfolgentyp ergibt
Beispiele
Die folgenden Beispiele zeigen, wie Sie die Eval
-Methode verwenden, um Daten an das Steuerelement zu Repeater binden. Hierfür ist eine Datenklasse mit dem Namen Product erforderlich.
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>
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 von expression
muss zu einer öffentlichen 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 das Object aus dem Datenbindungsausdruck resultierende in eine Stringzu konvertieren. Um die Methode deklarativ zu verwenden, verwenden Sie die <%# %>
Ausdruckssyntax, wie sie in der Standarddatenbindung ASP.NET verwendet wird.
Diese Methode ist besonders nützlich, wenn Daten an Steuerelemente gebunden werden, die sich in einer Liste mit Vorlagen befinden.
Hinweis
Da diese Methode eine spät gebundene Auswertung unter Verwendung von Reflektion zur Laufzeit durchführt, kann die Leistung im Vergleich zur Standardmäßigen ASP.NET Datenbindungssyntax spürbar verlangsamt werden. Verwenden Sie diese Methode mit Bedacht, insbesondere wenn keine Zeichenfolgenformatierung erforderlich ist.
Für jedes der Listenwebsteuerelemente, z GridView. B. , DetailsView, DataListoder Repeater, container
sollte sein Container.DataItem
. Wenn Sie eine Bindung für die Seite erstellen, container
sollte sein Page
.
Ab .NET Framework 4.5 können Sie die Modellbindung verwenden, um einige aufgaben zu vereinfachen, die Sie in früheren Versionen über die Datenbindung ausführen mussten. Eine Tutorialreihe zur Verwendung der Modellbindung mit Web Forms finden Sie unter Modellbindung und Web Forms.