IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

C# ASP.NET GridView image/hachurer cellule [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Points : 197
    Points
    197
    Par défaut C# ASP.NET GridView image/hachurer cellule
    Bonjour,

    Je cherche 2 choses à faire et que je n'ai pas trouvé sur internet :
    1) Comment ajouter une image de fond à une cellule d'un GridView sachant que je ne sais pas à l'avance dans quelle cellule est devra être positionnée; j'ai trouvé pour l'ajouter dans une cellule par le code ASP, mais pas par le code behind.
    2) Comment hachurer une cellule d'un gridview (je ne retrouve pas l'évent CellPainting comme en windows form)

    Merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    A mon avis une bonne façon de procéder est d'utiliser l'évènement RowDataBound.

    Ensuite dans ta CSS, tu définis un style qui affiche une image de fond (ou une image hachurée), et dans ton handler de l'évènement RowDataBound, tu affectes le style correspondant (image de fond, ou image hachurée) à ta cellule.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Points : 197
    Points
    197
    Par défaut
    Je sais pas comment définir "HtmlTextWriterStyle" dans mon code!! Peux-tu m'aider?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protected void grille_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowIndex == 0)
                {
                    HtmlTextWriterStyle htws = ???
                    e.Row.Cells[0].Style.Add(htws, "Icone ajouter.JPG");
                }
            }

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Pas besoin d'utiliser HtmlTextWriterStyle, il suffit d'un peu de CSS. Voici un exemple.

    Dans ton fichier ASPX (ou directement dans ton fichier CSS), tu ajoutes les styles suivants :
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .bgGreen { background-color: Green; }
    .bgRed { background-color: Red; }
    C'est pour la démo, donc je n'ai pas mis d'image, mais en gros tu devras définir un style avec ton image de fond, et un style avec ton image hachurée.

    Ensuite dans l'évènement RowDataBound, j'ai mis ceci :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        var cell = e.Row.Cells[2];
        if (cell.Text.Contains("1"))
             cell.CssClass = "bgRed";
        else
             cell.CssClass = "bgGreen";
    }
    Donc sur la ligne en cours de traitement, je regarde la valeur de la cellule de mon choix (ici la 3ème cellule (indice 2)), et si elle contient le chiffre 1, j'applique mon style "bgRed". Sinon, j'applique "bgGreen".
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Points : 197
    Points
    197
    Par défaut
    ok merci, j'ai eu du mal à mettre les thème de couleur dans mon fichier aspx car fallait mettre un balise style, j'y avais pas pensé^^

    je vais maintenant essayer de mettre une image à la place. je te tiens au courant

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Points : 197
    Points
    197
    Par défaut
    bon, j'ai rajouté ça dans mon fichier aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .bgImg { background-image: url("Icone ajouter.JPG") }
    ça me met bien l'image en fond, mais le seul soucis, c'est que comme l'image est plus petite que la case, il me la met plusieurs fois l'une à côté de l'autre.

    Y a t-il un moyen pour éviter celà? par exemple, d'agrandir l'image à la taille de la case?

    Edit : en rajoutant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    background-repeat:no-repeat;
    ça permet de ne pas avoir plusieurs fois l'image. 1 premier point de résolu

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Oui il faut utiliser :
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    .bgImg { background-image: url("Icone ajouter.JPG"); background-repeat: no-repeat; }

    [EDIT] : tu m'as devancé
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  8. #8
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Points : 197
    Points
    197
    Par défaut
    et ya un moyen de l'agrandir? J'ai pas trouvé!!!

  9. #9
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Oui, tu peux utiliser la propriété CSS background-size.

    [EDIT] : j'ai posté trop vite. Le lien ci-dessus est du CSS3. En CSS2 je crois qu'il n'y a pas moyen de le faire.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Points : 197
    Points
    197
    Par défaut
    ok merci, je peux donc pas le faire, pas terrible ça^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/12/2008, 17h49
  2. Methodes ASP.NET GridView
    Par barnet dans le forum SharePoint
    Réponses: 5
    Dernier message: 31/12/2007, 08h29
  3. [ASP.net][GridView] Probleme sur un update
    Par jeromechezgdf dans le forum ASP.NET
    Réponses: 6
    Dernier message: 31/05/2007, 17h23
  4. [ASP.Net/GridView] Comment effectuer une jointure ?
    Par nikalkal dans le forum Accès aux données
    Réponses: 3
    Dernier message: 20/07/2006, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo