DataBinder.Eval Methode

Definitie

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.

Zie ook

Van toepassing op