GridView remplacement d'un champ en fonction de la valeur [Résolu]

id060261 5 Messages postés mercredi 2 février 2005Date d'inscription 27 juillet 2008 Dernière intervention - 26 juil. 2008 à 17:15 - Dernière réponse : id060261 5 Messages postés mercredi 2 février 2005Date d'inscription 27 juillet 2008 Dernière intervention
- 27 juil. 2008 à 11:34
Bonjour,

J'ai une collone dans ma GridView qui affiche 1 ou 0 si un produit est de stock ou pas.
Dans ma base de donéne SQL Server, j'ai donc un champs "stock" avec la valeur 1 si le produit est de stock, et 0 s'il ne l'est pas.

Pour que ce soit plus présentable, je voudrais que dans ma GridView ASP.net s'affiche une petite image picto verte si ma valeur En Stock est égale à 1 (à la place de juste afficher un petit "1"), et ne rien afficher si la valeur est égale à 0.

Ma question est donc : Comment remplacer une valeur d'une de mes colones de mon GridView et pouvoir afficher une image à la place si cette valeur est égale à "1" ?

D'avance merci :-)
Marc
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
ggtry 417 Messages postés vendredi 13 juin 2008Date d'inscription 21 juillet 2010 Dernière intervention - 26 juil. 2008 à 22:32
3
Merci
Bonsoir,

En créant un templatefield et en mettant une image dans l'itemtemplate, tu peux faire comme cela, sur l'événement rowcreated du gridview :

Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim im As Image = CType(e.Row.FindControl("Image1"), Image)
            Dim p As Integer = DataBinder.Eval(e.Row.DataItem, "TonChampdeTable")
            If p = 0 Then
                im.ImageUrl = "../tonImage1.png"
            Else
                im.ImageUrl = "../tonImage2.png"
            End If
        End If  
    End Sub

Cordialement,

GGtry

Merci ggtry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de ggtry
Meilleure réponse
ggtry 417 Messages postés vendredi 13 juin 2008Date d'inscription 21 juillet 2010 Dernière intervention - 27 juil. 2008 à 10:13
3
Merci
Bonjour,

Ton champ email est une chaîne de caractères, pas un Integer. D'autre part, not ... is nothing n'est pas approprié.
N'oublie pas non plus de changer "im" en ton "imMail"
Tu peux faire plutôt (en supposant donc que s'il n'y a pas d'e-mail, le champ est Null) :

If IsDBNull(DataBinder.Eval(e.Row.DataItem, "email")) = False Then
                imMail.ImageUrl = "../mail.png"
            Else
                imMail.Visible = False
End If

GGtry

Merci ggtry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de ggtry
id060261 5 Messages postés mercredi 2 février 2005Date d'inscription 27 juillet 2008 Dernière intervention - 27 juil. 2008 à 01:53
0
Merci
Bonsoir

Merci ! Ca fonctionne à merveille
Juste une autre petite question en rapport : J'ai aussi un champ e-mail qui contient des adresse e-mails dans ma table. Je voudrais que si le champ e-mail est rempli, il affiche une image, mais que si celui-ci est vide, il n'affiche rien.

J'ai fais

        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim imMail As Image = CType(e.Row.FindControl("ImageMail"), Image)
            Dim pMail As Integer = DataBinder.Eval(e.Row.DataItem, "email")
            If Not pMail Is Nothing Then
                im.ImageUrl = "../mail.png"
            End If
        End If  

Mais ca ne fonctionne pas. Une idée ?

Encore merci
Commenter la réponse de id060261
id060261 5 Messages postés mercredi 2 février 2005Date d'inscription 27 juillet 2008 Dernière intervention - 27 juil. 2008 à 11:34
0
Merci
Nickel !
Encore une fois merci  C'est parfait.

A++
Marc
Commenter la réponse de id060261

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.