Formation PUB770 : ASP.NET WebForms, H-2015 Aller plus loin avec le GridView

38.5 Quelques applications pratiques de Eval()


La méthode DataBinder.Eval() permet d'évaluer une expression. Plus concrètement, on utilisera Eval() à l'intérieur d'un TemplateField afin de donner une valeur à un Label, à un TextBox ou à toute autre balise qui doit obtenir une valeur par programmation.

▼Publicité Le texte se poursuit plus bas

Eval() permet également d'exécuter du code C# à l'intérieur d'une balise afin d'effectuer un traitement plus avancé, comme par exemple initialiser un attribut en fonction d'une condition ou encore de gérer les valeurs nulles.

Puisqu'il s'agit d'évaluer du code C# à l'intérieur d'une balise, on entourera l'appel à Eval() par les symboles <%# ... %>.

Dans le scénario le plus simple, on utilisera Eval() pour évaluer la valeur d'un champ à afficher.

Ex :

Fichier .aspx (ASP.NET)

<asp:GridView ... >

    <Columns>

        ...

        <asp:TemplateField>

            <ItemTemplate>

                <asp:Label ID="labelNom" runat="server" Text='<%# Eval("produit_nom") %>' />

            </ItemTemplate>

        </asp:TemplateField>

    </Columns>

</asp:GridView>

Il est également possible d'utiliser Eval() pour initialiser un attribut, comme par exemple l'attribut checked d'un CheckBox.

Ex :

Fichier .aspx (ASP.NET)

<asp:GridView ... >

    <Columns>

        ...

        <asp:TemplateField>

            <ItemTemplate>

                <asp:CheckBox ID="checkBoxDisponible" runat="server"

                    Checked='<%# Eval("produit_disponible").ToString().Equals("True") %>' />

            </ItemTemplate>

        </asp:TemplateField>

    </Columns>

</asp:GridView>

En utilisant l'opérateur ternaire (?:), aussi appelé « inline if »,  on peut obtenir des résultats encore plus intéressants.

Ex :

Fichier .aspx (ASP.NET)

<asp:GridView ... >

    <Columns>

        ...

        <asp:TemplateField>

            <ItemTemplate>

                <asp:Label ID="labelDisponible" runat="server"

                    Text='<%# Convert.ToBoolean(Eval("produit_disponible")) ? "Oui" : "Non" %>' />

            </ItemTemplate>

        </asp:TemplateField>

    </Columns>

</asp:GridView>

L'exemple suivant démontre qu'avec Eval() et l'opérateur conditionnel, il devient facile de tenir compte des valeurs nulles.

Ex :

Fichier .aspx (ASP.NET)

<asp:GridView ... >

    <Columns>

        ...

        <asp:TemplateField>

            <ItemTemplate>

                <asp:Image ID="imageDisponible" ImageUrl="Medias/Commun/Crochet.png" runat="server" 

                    Visible='<%# Eval("produit_disponible") != DBNull.Value ? Convert.ToBoolean(Eval("produit_disponible")) : false %>' />

            </ItemTemplate>

        </asp:TemplateField>

    </Columns>

</asp:GridView>

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Par Christiane Lagacé
Dernière révision le 18 août 2017
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre