Webmatrix+couleur+cellule+datagrid

Résolu
benallai Messages postés 21 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 20 octobre 2006 - 19 sept. 2006 à 13:23
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 - 25 sept. 2006 à 17:04
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

benallai Messages postés 21 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 20 octobre 2006
25 sept. 2006 à 16:25
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.
3
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
25 sept. 2006 à 17:04
de rien ;)
ce n'est pas aussi facile mais plus facile :)
tu va voir
bon courage ;)
3
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
22 sept. 2006 à 12:44
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 ?
0
benallai Messages postés 21 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 20 octobre 2006
23 sept. 2006 à 16:22
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
23 sept. 2006 à 16:37
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
0
benallai Messages postés 21 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 20 octobre 2006
25 sept. 2006 à 11:32
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.
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
25 sept. 2006 à 12:54
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
0