Webmatrix+couleur+cellule+datagrid

Résolu
Signaler
Messages postés
21
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
20 octobre 2006
-
Messages postés
438
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
23 janvier 2011
-
Bonjour tout le monde,
J'ai créé une page aspx à l'aide de webmatrix qui m'affiche dans un datagrid le résultat suivant:


NVOL,
APP,
IMM,
RTNG,
DTVOL,
DTTRUCK,
DELAY,

----

AT0800,
738,
NZ,
LHR,
19/09/2006 12:40:00,
19/09/2006 11:25:00,
00:05:43,

----

AZ0879,
321,
 ,
MXP,
19/09/2006 13:10:00,
19/09/2006 11:55:00,
00:35:43,

----

LN0313,
AB6,
 ,
TIP,
19/09/2006 13:30:00,
19/09/2006 12:15:00,
00:55:43


Mon but est de colorier différemment la cellule (DELAY) à chaque fois que sa valeur est inférieure à 10:00:00 et idéalement animer le contenu de cette cellule.

La colonne DELAY est la différente entre la date système "getdate() et le DTTRUCK.
convert(varchar(8),getdate()-DTTRUCK,108) = DELAY
Est ce que quelqu'un a une idée et pourra m'aider.

Merci infiniment.

7 réponses

Messages postés
21
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
20 octobre 2006

Ok, je vais le faire, j'espère au moins que c'est aussi facile à utiliser que webmatrix
Encore une fois, merci beaucoup pour ton aide, c'était très sympa de tapart de t'avoir donné cette peine.
Messages postés
438
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
23 janvier 2011
1
de rien ;)
ce n'est pas aussi facile mais plus facile :)
tu va voir
bon courage ;)
Messages postés
438
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
23 janvier 2011
1
Salut,

il faut que tu fasses une boucle analysant chaque ligne de la colonne x, puis si la valeur est inférieur à ce que tu veux : Hop ! Tu colorie la couleur du texte (ForeColor) ou l'arrière plan (BackColor)

Tu maitrise les boucles ou tu veux que je te mette un exemple de code ?
Messages postés
21
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
20 octobre 2006

EMerci pour ta réponse,
J'avoue préférer que tu postes un bout de code que je pourrais insérer au niveau de ma apge aspx
merci également de me poster la commande de coloriage de la cellule ou la ligne en question

Many thanks
Messages postés
438
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
23 janvier 2011
1
Voici la boucle I est initier à 0 (déclarer la variable avant bien entendu) ce qui correspond à ta première ligne de l’objet
DataGridview1, et la boucle exécute les lignes de code entre le For & Next du 1° au élément au dernier se trouvant dans ton DataGridView1 (DataGridview1.Rows.Count - 1 correspondant au dernier élément du DataGridView)

For I = 0 To DataGridview1.Rows.Count - 1

Next

Jusque la, j'espère que je me suis pas trop mal exprimer lol ? Sinon repose la question y'a pas de souci.

Donc jusqu'a présent ton code va faire le tour du DataGridView ligne par ligne mais sans rien faire.
Donc maintenant on insère le code qui va 'regarder' si la valeur est supérieure ou au contraire à la valeur souhaiter.
Pour cela on utilise la syntaxe If ! Je suppose que tu connais if quand même
<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??>
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">
<v:stroke joinstyle="miter">
</v:stroke>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0">
</v:f>
<v:f eqn="sum @0 1 0">
</v:f>
<v:f eqn="sum 0 0 @1">
</v:f>
<v:f eqn="prod @2 1 2">
</v:f>
<v:f eqn="prod @3 21600 pixelWidth">
</v:f>
<v:f eqn="prod @3 21600 pixelHeight">
</v:f>
<v:f eqn="sum @0 0 1">
</v:f>
<v:f eqn="prod @6 1 2">
</v:f>
<v:f eqn="prod @7 21600 pixelWidth">
</v:f>
<v:f eqn="sum @8 21600 0">
</v:f>
<v:f eqn="prod @7 21600 pixelHeight">
</v:f>
<v:f eqn="sum @10 21600 0">
</v:f>
</v:formulas>
<v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f">
</v:path>
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
<o:lock aspectratio="t" v:ext="edit">
</o:lock>
</v:shapetype>
<v:shape id="Image_x0020_1" style="VISIBILITY: visible; WIDTH: 11.25pt; HEIGHT: 11.25pt; mso-wrap-style: square" alt="http://www.vbfrance.com/imgs2/smile_big.gif" type="#_x0000_t75" o:spid="_x0000_i1025">
<v:imagedata o:title="smile_big" src="file:///C:\DOCUME~1\BONSCO~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.gif">
</v:imagedata>
</v:shape>


Ca donnerai ca pour une valeur à 10 (au lieu de 10:00:00) :

If DataGridview1.Rows(I).Cells(0).Value < 10 Then







'On applique la couleur à la ligne, ici j'ai mis la couleur du texte à rouge





DataGridview1.Rows(I).DefaultCellStyle.ForeColor = Color.Red








End If

A toi de voir pour changer 10 en format date !
J'espère t'avoir aidé à comprendre mieux le code
Bon courage
Messages postés
21
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
20 octobre 2006

Le code est très clair sauf que j'utilise un datagrid au lieu d'un datagridview et avec un datagrid ,
'Rows' is not a member of 'System.Web.UI.WebControls.DataGrid'
alors comment faire....
many thanks et très bonne journée.
Messages postés
438
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
23 janvier 2011
1
ah ué !
Si tu peu installe Microsoft Visual Web Developer 2005 Express Edition C'est gratuit, comme WebMatrix mais ne plus simple beaucoup plus développer, et mon code marchera.

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>







Sa sera plus simle, car je n'ai plus Webmatrix et c'est un peu dépasser comme produit