DataBinder.Eval Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Gebruikt weerspiegeling om een expressie voor gegevensbinding te parseren en te evalueren op basis van een object tijdens runtime.
Overloads
| Name | Description |
|---|---|
| Eval(Object, String) |
Evalueert expressies voor gegevensbinding tijdens runtime. |
| Eval(Object, String, String) |
Evalueert expressies voor gegevensbinding tijdens runtime en formatteert het resultaat als een tekenreeks. |
Opmerkingen
Vanaf .NET Framework 4.5 kunt u modelbinding gebruiken om een aantal taken te vereenvoudigen die u moest uitvoeren via gegevensbinding in eerdere versies. Zie Modelbinding en Web Forms voor een reeks zelfstudies over het gebruik van modelbinding met Web Forms.
Eval(Object, String)
Evalueert expressies voor gegevensbinding tijdens runtime.
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
Parameters
- container
- Object
De objectverwijzing waarmee de expressie wordt geëvalueerd. Dit moet een geldige object-id zijn in de opgegeven taal van de pagina.
- expression
- String
Het navigatiepad van het container object naar de waarde van de openbare eigenschap die moet worden geplaatst in de afhankelijke besturingselementeigenschap. Dit moet een tekenreeks met eigenschaps- of veldnamen zijn, gescheiden door punten, zoals Tables[0].DefaultView.[0].Price in C# of Tables(0).DefaultView.(0).Price in Visual Basic.
Retouren
Een Object exemplaar dat het resultaat is van de evaluatie van de expressie voor gegevensbinding.
Uitzonderingen
expression is null of is een lege tekenreeks na het bijsnijden.
Voorbeelden
In de volgende voorbeelden ziet u hoe u de Eval methode gebruikt om gegevens te binden om te Repeater beheren. Hiervoor is een gegevensklasse met de naam Product vereist.
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
Het code-behind-bestand laadt testgegevens en bindt die gegevens aan een Repeater besturingselement.
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 de declaratieve syntaxis voor het Repeater besturingselement gebruikt u de Eval methode voor Container.DataItem de 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>
U kunt ook de functie aanroepen Eval en de container parameter niet opnemen.
<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>
Opmerkingen
De waarde van de expression parameter moet resulteren in een openbare eigenschap.
Deze methode wordt automatisch aangeroepen wanneer u gegevensbindingen maakt in een ontwerpfunctie voor snelle toepassingsontwikkeling (RAD), zoals Visual Studio. U kunt het ook declaratief gebruiken om het gieten naar een teksttekenreeks te vereenvoudigen. Hiervoor gebruikt u de syntaxis van de expressie <%# %>, zoals wordt gebruikt in de standaard-ASP.NET gegevensbinding.
Deze methode is met name handig bij het binden van gegevens aan besturingselementen die zich in een sjabloonlijst bevinden.
Note
Omdat deze methode te laat gebonden evaluatie uitvoert, kan het gebruik van reflectie tijdens runtime ertoe leiden dat de prestaties aanzienlijk traag zijn vergeleken met de standaardsyntaxis van ASP.NET gegevensbinding.
Voor een van de webbesturingselementen voor lijsten, zoals GridView, DetailsView, DataListof Repeater, container moet dit zijn Container.DataItem. Als u een binding aan de pagina wilt toevoegen, container moet dat zijn Page.
Vanaf .NET Framework 4.5 kunt u modelbinding gebruiken om een aantal taken te vereenvoudigen die u moest uitvoeren via gegevensbinding in eerdere versies. Zie Modelbinding en Web Forms voor een reeks zelfstudies over het gebruik van modelbinding met Web Forms.
Zie ook
Van toepassing op
Eval(Object, String, String)
Evalueert expressies voor gegevensbinding tijdens runtime en formatteert het resultaat als een tekenreeks.
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
Parameters
- container
- Object
De objectverwijzing waarmee de expressie wordt geëvalueerd. Dit moet een geldige object-id zijn in de opgegeven taal van de pagina.
- expression
- String
Het navigatiepad van het container object naar de waarde van de openbare eigenschap die moet worden geplaatst in de afhankelijke besturingselementeigenschap. Dit moet een tekenreeks met eigenschaps- of veldnamen zijn, gescheiden door punten, zoals Tables[0].DefaultView.[0].Price in C# of Tables(0).DefaultView.(0).Price in Visual Basic.
- format
- String
Een .NET Framework-indelingstekenreeks (zoals de tekenreeks die wordt gebruikt door Format(String, Object)) waarmee het Object-exemplaar wordt geconverteerd dat door de expressie voor gegevensbinding wordt geretourneerd naar een String-object.
Retouren
Een String object dat het resultaat is van het evalueren van de expressie voor gegevensbinding en het converteren naar een tekenreekstype.
Voorbeelden
In de volgende voorbeelden ziet u hoe u de Eval methode gebruikt om gegevens te binden om te Repeater beheren. Hiervoor is een gegevensklasse met de naam Product vereist.
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
Het code-behind-bestand laadt testgegevens en bindt die gegevens aan een Repeater besturingselement.
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 de declaratieve syntaxis voor het Repeater besturingselement gebruikt u de Eval methode voor Container.DataItem de 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>
U kunt ook de functie aanroepen Eval en de container parameter niet opnemen.
<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>
Opmerkingen
De waarde van expression moet worden geëvalueerd naar een openbare eigenschap.
Zie Opmaaktypen voor meer informatie over opmaaktekenreeksen in het .NET Framework.
Deze methode wordt automatisch aangeroepen wanneer u gegevensbindingen maakt in een ontwerpfunctie voor snelle toepassingsontwikkeling (RAD), zoals Visual Studio. U kunt deze ook declaratief gebruiken om het Object resultaat van de expressie voor gegevensbinding te converteren naar een String. Als u de methode declaratief wilt gebruiken, gebruikt u de syntaxis van de <%# %> expressie, zoals wordt gebruikt in de standaardgegevensbinding ASP.NET.
Deze methode is met name handig bij het binden van gegevens aan besturingselementen die zich in een sjabloonlijst bevinden.
Note
Omdat deze methode te laat gebonden evaluatie uitvoert, kan het gebruik van reflectie tijdens runtime ertoe leiden dat de prestaties aanzienlijk traag zijn vergeleken met de standaardsyntaxis van ASP.NET gegevensbinding. Gebruik deze methode zorgvuldig, met name wanneer tekenreeksopmaak niet vereist is.
Voor een van de webbesturingselementen voor lijsten, zoals GridView, DetailsView, DataListof Repeater, container moet dit zijn Container.DataItem. Als u een binding aan de pagina wilt toevoegen, container moet dat zijn Page.
Vanaf .NET Framework 4.5 kunt u modelbinding gebruiken om een aantal taken te vereenvoudigen die u moest uitvoeren via gegevensbinding in eerdere versies. Zie Modelbinding en Web Forms voor een reeks zelfstudies over het gebruik van modelbinding met Web Forms.