Couleur des cellules d'une gridview

Signaler
Messages postés
17
Date d'inscription
jeudi 18 mai 2006
Statut
Membre
Dernière intervention
13 octobre 2009
-
Messages postés
15
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
15 février 2010
-
Bonjour, c'est malhuereux mais j'ai bien vu plusieurs forum ou tuto mais je n'y arrive pas

en fait je cherche a modifier la couleur des cellules de mon gridview, si dans ma colonne "montant" le prix est negatif
alors backcolor:red et si les prix sont positif backcolor:blue.
voici mon script :

Protected Sub gv_echeance_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv_echeance.RowDataBound
Dim valeur As Decimal
valeur = gv_echeance.Rows(5).Cells.ToString
If valeur >= 0 Then
gv_echeance.Rows(5).ControlStyle.BackColor = Drawing.Color.Aqua
Else
gv_echeance.Rows(5).ControlStyle.BackColor = Drawing.Color.Red
End If
End Sub

Et l'erreur :

L'exception ArgumentOutOfRangeException n'a pas été gérée par le code utilisateur
L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
Nom du paramètre : index

benben

6 réponses

Messages postés
18
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
13 novembre 2009

Il semble que tu dépasse la capacité.
Est tu sur du (5) ?
Il ne faut pas oublier que le rang 0 peut exister.

Ainsi un collection de 5 objets peut etre de 0 à 4 (oui oui tu peux recompter ^^) ou alors de 1 à 5.
Si ton index de champs démarre à 0 et que tu veux "lire" le 5ieme, il s'agit en fait du numéro 4.


En esperant que cela puisse t'aider !

Bonne journée.
Messages postés
17
Date d'inscription
jeudi 18 mai 2006
Statut
Membre
Dernière intervention
13 octobre 2009

Bonjour, merci de ton aide mais cela ne change rien !!
cet index, ce rang, est prix en compte par rapport à ma base sql ou a mon gridview ?


benben
Messages postés
18
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
13 novembre 2009

Ici tu colorise une "case" de ton gridview (row), d'index 5.

Il sagit bien de la valeur du grid view, mais alimentée par ta base.


Est tu sur que cette case, ce row(5), existe "physiquement" ?
Messages postés
17
Date d'inscription
jeudi 18 mai 2006
Statut
Membre
Dernière intervention
13 octobre 2009

mon select de la gridview et non de la base sql :
SELECT
echeancier.idecheancier,
echeancier.idmode_reglement,
echeancier.date_echeance,
echeancier.idfournisseur,
echeancier.date_facture,
echeancier.date_paye,
echeancier.montant,
echeancier.banque,
fournisseur.fournisseur,
echeancier.infos

les colonnes vues sont date_echeance,fournisseur,date_facture,date_payé,montant,banque,infos

et je cherche a coloré les cellules des montants (en fonction du montant)


benben
Messages postés
18
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
13 novembre 2009

Humm je m'avoue vaincu.

En général lorsque je veux agir sur mon affichage, je traite les données directement depuis la base de données.

Cependant il me semble que "gv_echeance.Rows(5).Cells.ToString"

ne soit pas un nombre. :S
Messages postés
15
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
15 février 2010

La commande rows sert en général à désigner une ligne, et je crois que tu veux colorier une colonne. tu as essayé l'instruction columns ?