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 :

[VB.NET] Changer la couleur d'une ligne dans DataGrid


Sujet :

ASP.NET

  1. #1
    Expert éminent
    Avatar de Webman
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 232
    Points : 8 154
    Points
    8 154
    Par défaut [VB.NET] Changer la couleur d'une ligne dans DataGrid
    Bonjour,

    Est-il possible dans une DataGrid de changer dynamiquement la couleur d'une ligne au passage de la souris, je l'ai déjà vu sur certains site mais je ne sais pas si c'est un controle spécifique qui est utilisé ou si c'est paramètrable sur une DataGrid. Est-ce que quelqu'un à déjà fait ca ou vu de la doc la dessus ? Merci pour votre aide

    Webman

  2. #2
    Expert éminent
    Avatar de Webman
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 232
    Points : 8 154
    Points
    8 154
    Par défaut
    Je viens de trouver ca :

    http://www.dotnetjohn.com/runtime/HighLightDataGrid.aspx

    Mais bon je ne passe pas pour le moment le post à "résolu" car peut être qu'il existe d'autre techniques encore plus économes en nombre de lignes :d et de toute façon j'aime bien toujours avoir plusieurs façons de procéder pour une même chose

    Webman

  3. #3
    Expert éminent
    Avatar de Webman
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 232
    Points : 8 154
    Points
    8 154
    Par défaut
    J'ai un petit problème maintenant, en fait si je passe sur la première ligne de mon tableau en fait ca me change la couleur de celle ci, alors que je voudrais que l'entête elle en change pas de couleur, il faut donc que je trouve comment fixer de manière définitive la mise ne forme de ma première ligne... Si qq un à une idée je suis preneur

    Sinon pour ceux que ca intéresse voilà le code source à utiliser.

    Dans la balise <ASPataGrid>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnItemDataBound="MyDataGrid2_ItemDataBound
    Dans le code behind:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub MyDataGrid2_ItemDataBound(sender As Object, e As DataGridItemEventArgs)
        If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
          e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='Silver'")
        End If
     
        If e.Item.ItemType = ListItemType.Item Then
          e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='White'")
        Else
          e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#D3E2EF'")
        End If
      End Sub

    Comme vous pouvez le voir c'est ultra simple

  4. #4
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Si j'ai bien compris le pb, peut-etre qu'en rajoutant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not e.Item.ItemIndex = -1 Then ... End If
    Il me semble que l'entete correspond à la ligne 0 (A vérifier )

  5. #5
    Expert éminent
    Avatar de Webman
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 232
    Points : 8 154
    Points
    8 154
    Par défaut
    Merci beaucoup je vais vérifier ca Pour le moment j'ai essayé pas mal de truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        e.Item.Attributes.Add("onmouseout", "this.HeaderStyle.BackColor='#FFFFC0'")
        e.Item.Attributes.Add("onmouseover", "this.HeaderStyle.BackColor=='#FFFFC0'")
    Mais tout ca sans grand succès Je vais essayer ta solution de suite

  6. #6
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Citation Envoyé par freegreg
    Si j'ai bien compris le pb, peut-etre qu'en rajoutant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not e.Item.ItemIndex = -1  Then ... End If
    Il me semble que l'entete correspond à la ligne 0 (A vérifier )
    Dans le code, j'ai mis -1 (Copier/coller trop rapide), il fallait lire 0!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not e.Item.ItemIndex = 0  Then ... End If

  7. #7
    Expert éminent
    Avatar de Webman
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 232
    Points : 8 154
    Points
    8 154
    Par défaut
    Ca marche nickel Merci beaucoup !

    Voilà le code final si ca intéresse quelqu'un:

    Dans la balise <ASPataGrid> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnItemDataBound="MyDataGrid2_ItemDataBound
    Dans le code behind:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub MyDataGrid2_ItemDataBound(sender As Object, e As DataGridItemEventArgs)
     
     
        If Not e.Item.ItemIndex = -1 Then
     
            If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
                e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='Silver'")
            End If
     
     
     
            If e.Item.ItemType = ListItemType.Item Then
                e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='White'")
            Else
                e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#D3E2EF'")
            End If
     
     
         End If
     
     
    End Sub

  8. #8
    Expert éminent
    Avatar de Webman
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 232
    Points : 8 154
    Points
    8 154
    Par défaut
    Citation Envoyé par freegreg
    Dans le code, j'ai mis -1 (Copier/coller trop rapide), il fallait lire 0!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not e.Item.ItemIndex = 0  Then ... End If

    Non non je te rassure tu étais dans le bon avec -1 ca marche et par contre avec 0 ca ne marche pas

    Webman

  9. #9
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Citation Envoyé par Webman
    Citation Envoyé par freegreg
    Dans le code, j'ai mis -1 (Copier/coller trop rapide), il fallait lire 0!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not e.Item.ItemIndex = 0  Then ... End If

    Non non je te rassure tu étais dans le bon avec -1 ca marche et par contre avec 0 ca ne marche pas

    Webman

    Comme quoi, j'ai bien fait de mettre une co****ie

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/11/2006, 12h12
  2. Changer la couleur d'une ligne dans une ListBox
    Par Leray dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 16/07/2006, 14h44
  3. [C#][VS 2005]Changer la couleur d'une ligne dans un DataGridView
    Par Mast3rMind dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/07/2006, 23h20
  4. Réponses: 5
    Dernier message: 19/06/2006, 14h17
  5. Changer la couleur d'une ligne dans un DBGrid
    Par fba dans le forum Composants VCL
    Réponses: 5
    Dernier message: 24/10/2005, 20h30

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