ASP.NET : 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.

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.

▼Publicité

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 conditionnel (?:), 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>

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories