Partager via


DataBinder.Eval Méthode

Définition

Utilise la réflexion pour analyser et évaluer une expression de liaison de données par rapport à un objet au moment de l'exécution.

Surcharges

Eval(Object, String)

Évalue des expressions de liaison de données XPath au moment de l'exécution.

Eval(Object, String, String)

Évalue les expressions de liaison aux données au moment de l'exécution et met en forme le résultat sous forme de chaîne.

Remarques

À compter de .NET Framework 4.5, vous pouvez utiliser la liaison de modèle pour simplifier certaines des tâches que vous deviez effectuer via la liaison de données dans les versions antérieures. Pour obtenir une série de tutoriels sur l’utilisation de la liaison de modèle avec Web Forms, consultez Liaison de modèle et Web Forms.

Eval(Object, String)

Évalue des expressions de liaison de données XPath au moment de l'exécution.

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

Paramètres

container
Object

Référence d'objet par rapport à laquelle l'expression est évaluée. Il doit s'agir d'un identificateur d'objet valide dans la langue spécifiée de la page.

expression
String

Chemin de navigation à partir de l'objet container jusqu'à la valeur de propriété à placer dans la propriété du contrôle lié. Il doit s’agir d’une propriété de type chaîne ou de noms de champs séparés par des points, par exemple Tables[0].DefaultView.[0].Price en C# ou Tables(0).DefaultView.(0).Price en Visual Basic.

Retours

Object

Instance de Object qui résulte de l'évaluation de l'expression de liaison aux données.

Exceptions

expression est null ou une chaîne vide ("") après rognage.

Exemples

Les exemples suivants montrent comment utiliser la Eval méthode pour lier des données au Repeater contrôle. Elle nécessite une classe de données nommée 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

Le fichier code-behind charge les données de test et lie ces données à un Repeater contrôle.

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

Dans la syntaxe déclarative du Repeater contrôle, vous utilisez la Eval méthode avec Container.DataItem pour le container paramètre.

<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>

Vous pouvez également appeler Eval la fonction et ne pas inclure le container paramètre.

<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>

Remarques

La valeur du expression paramètre doit être évaluée à une propriété publique.

Cette méthode est automatiquement appelée lorsque vous créez des liaisons de données dans un concepteur de développement d’applications rapide (RAD), tel que Visual Studio. Vous pouvez également l’utiliser de manière déclarative pour simplifier la conversion en chaîne de texte. Pour ce faire, vous utilisez la <%# %> syntaxe d’expression, telle qu’elle est utilisée dans la liaison de données standard ASP.NET.

Cette méthode est particulièrement utile lors de la liaison de données à des contrôles qui se trouvent dans une liste modèle.

Notes

Étant donné que cette méthode effectue une évaluation à liaison tardive, à l’aide de la réflexion au moment de l’exécution, elle peut entraîner un ralentissement notable des performances par rapport à la syntaxe de liaison de données standard ASP.NET.

Pour l’un des contrôles Web de liste, tels que GridView, , DataListDetailsViewou , container doit Repeaterêtre Container.DataItem. Si vous effectuez une liaison avec la page, container doit être Page.

À compter de .NET Framework 4.5, vous pouvez utiliser la liaison de modèle pour simplifier certaines des tâches que vous deviez effectuer via la liaison de données dans les versions antérieures. Pour obtenir une série de tutoriels sur l’utilisation de la liaison de modèle avec Web Forms, consultez Liaison de modèle et Web Forms.

Voir aussi

S’applique à

Eval(Object, String, String)

Évalue les expressions de liaison aux données au moment de l'exécution et met en forme le résultat sous forme de chaîne.

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

Paramètres

container
Object

Référence d'objet par rapport à laquelle l'expression est évaluée. Il doit s'agir d'un identificateur d'objet valide dans la langue spécifiée de la page.

expression
String

Chemin de navigation à partir de l'objet container jusqu'à la valeur de propriété à placer dans la propriété du contrôle lié. Il doit s’agir d’une propriété de type chaîne ou de noms de champs séparés par des points, par exemple Tables[0].DefaultView.[0].Price en C# ou Tables(0).DefaultView.(0).Price en Visual Basic.

format
String

Chaîne de format .NET Framework (comme celles utilisées par Format(String, Object)) qui convertit l'instance de Object retournée par l'expression de liaison aux données à un objet String.

Retours

String

Objet String qui résulte de l'évaluation de l'expression de liaison aux données et de sa conversion en un type chaîne.

Exemples

Les exemples suivants montrent comment utiliser la Eval méthode pour lier des données au Repeater contrôle. Elle nécessite une classe de données nommée 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

Le fichier code-behind charge les données de test et lie ces données à un Repeater contrôle.

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

Dans la syntaxe déclarative du Repeater contrôle, vous utilisez la Eval méthode avec Container.DataItem pour le container paramètre.

<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>

Vous pouvez également appeler Eval la fonction et ne pas inclure le container paramètre.

<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>

Remarques

La valeur de expression doit être évaluée à une propriété publique.

Pour plus d’informations sur les chaînes de format dans le .NET Framework, consultez Types de mise en forme.

Cette méthode est automatiquement appelée lorsque vous créez des liaisons de données dans un concepteur de développement d’applications rapide (RAD), tel que Visual Studio. Vous pouvez également l’utiliser de manière déclarative pour convertir le Object résultat de l’expression de liaison de données en un String. Pour utiliser la méthode de manière déclarative, utilisez la <%# %> syntaxe d’expression, telle qu’elle est utilisée dans la liaison de données standard ASP.NET.

Cette méthode est particulièrement utile lors de la liaison de données à des contrôles qui se trouvent dans une liste modèle.

Notes

Étant donné que cette méthode effectue une évaluation à liaison tardive, à l’aide de la réflexion au moment de l’exécution, elle peut entraîner un ralentissement notable des performances par rapport à la syntaxe de liaison de données standard ASP.NET. Utilisez cette méthode judicieusement, en particulier lorsque la mise en forme de chaîne n’est pas nécessaire.

Pour l’un des contrôles Web de liste, tels que GridView, , DataListDetailsViewou , container doit Repeaterêtre Container.DataItem. Si vous effectuez une liaison avec la page, container doit être Page.

À compter de .NET Framework 4.5, vous pouvez utiliser la liaison de modèle pour simplifier certaines des tâches que vous deviez effectuer via la liaison de données dans les versions antérieures. Pour obtenir une série de tutoriels sur l’utilisation de la liaison de modèle avec Web Forms, consultez Liaison de modèle et Web Forms.

Voir aussi

S’applique à