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

Nom Description
Eval(Object, String)

Évalue les expressions de liaison de données au moment de l’exécution.

Eval(Object, String, String)

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

Remarques

À partir 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 les expressions de liaison de données 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 de l’objet container à la valeur de propriété publique à placer dans la propriété de contrôle liée. Il doit s’agir d’une chaîne de noms de propriété ou de champs séparés par des points, tels que Tables[0].DefaultView.[0].Price en C# ou Tables(0).DefaultView.(0).Price dans Visual Basic.

Retours

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

Exceptions

expression est null ou est une chaîne vide après la suppression.

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 <%# %>, comme utilisé 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 de modèles.

Note

Étant donné que cette méthode effectue une évaluation à liaison tardive, à l’aide de la réflexion au moment de l’exécution, les performances peuvent ralentir sensiblement par rapport à la syntaxe de liaison de données standard ASP.NET.

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

À partir 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 de 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 de l’objet container à la valeur de propriété publique à placer dans la propriété de contrôle liée. Il doit s’agir d’une chaîne de noms de propriété ou de champs séparés par des points, tels que Tables[0].DefaultView.[0].Price en C# ou Tables(0).DefaultView.(0).Price dans Visual Basic.

format
String

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

Retours

Objet String qui résulte de l’évaluation de l’expression de liaison de données et de sa conversion en type de 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 .NET Framework, consultez Formatting Types.

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 résultat de l’expression Object de liaison de données en un String. Pour utiliser la méthode de manière déclarative, utilisez la syntaxe d’expression <%# %>, comme utilisé 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 de modèles.

Note

Étant donné que cette méthode effectue une évaluation à liaison tardive, à l’aide de la réflexion au moment de l’exécution, les performances peuvent ralentir sensiblement 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 requise.

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

À partir 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 à