Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

DataBinder.Eval méthode (Object, String)

 

Date de publication : novembre 2016

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

Espace de noms:   System.Web.UI
Assembly:  System.Web (dans System.Web.dll)

public static object Eval(
	object container,
	string expression
)

Paramètres

container
Type: System.Object

La référence d’objet par rapport à laquelle l’expression est évaluée. Ce doit être un identificateur d’objet valide dans le langage spécifié de la page.

expression
Type: System.String

Le chemin de navigation de la container objet à la valeur de propriété à placer dans la propriété du contrôle lié. Ce doit être une chaîne des noms de propriété ou de champ séparés par des points, tels que Tables[0].DefaultView.[0].Price en c# ou Tables(0).DefaultView.(0).Price dans Visual Basic.

Valeur de retour

Type: System.Object

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

Exception Condition
ArgumentNullException

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

La valeur de le expression paramètre doit correspondre à une propriété publique.

Cette méthode est appelée automatiquement lorsque vous créez des liaisons de données dans un concepteur de développement rapide d’applications tels que Visual Studio. Vous pouvez également l’utiliser de façon déclarative pour simplifier le cast en une chaîne de texte. Pour ce faire, vous utilisez la <%#  %> syntaxe d’expression, comme utilisé dans la liaison de données ASP.NET standard.

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

System_CAPS_noteRemarque

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

Pour tout de la liste de contrôles Web, tel que GridView, DetailsView, DataList, ou Repeater, container doit être Container.DataItem. Si vous exécutez une liaison à la page, container doit être Page.

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

Les exemples suivants montrent comment utiliser le Eval pour lier des données à méthode Repeater contrôle. Elle requiert une classe de données nommée produit.

public class Product
{
    public int ProductID { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
}

Le fichier code-behind des données de test de charge et lie les données d’une 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();
    }
}

Dans la syntaxe déclarative pour les 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>

Ou, vous pouvez appeler Eval la fonction et 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>

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: