Bonjour,
J'ai créé un simple gridview relié à une bd access sous web developer en VB.
Je désire que lorsque quelqu'un effectue une modification, celle-ci s'affiche d'une autre couleur dans le gridview.
Merci de m'aider
Version imprimable
Bonjour,
J'ai créé un simple gridview relié à une bd access sous web developer en VB.
Je désire que lorsque quelqu'un effectue une modification, celle-ci s'affiche d'une autre couleur dans le gridview.
Merci de m'aider
De quelle partie exactement ? Tu parles de la ligne en edition ?Citation:
Envoyé par 0365752
Je désire que une fois l'enregistrement modifié, quand on retourne sur la page, les données modifiées aparaissent en rouge.
Donc, on peut savoir que la donnée en rouge est une donnée qui a été modifiée de ce qu'elle était au début.
Le but est uniquement d'indiquer qu'il y a eu modification à une ligne du gridview.
Il faut avoir un Flag dans ta bd qui permetterait de savoir si la ligne a été modifiée ou pas, ensuite dans l'évenement RowCreated tu fais :
Code:
1
2
3
4
5
6
7 if (e.Row.RowType == DataControlRowType.DataRow) { bool modifiée = (bool)System.Web.UI.DataBinder.Eval(e.Row.DataItem, "Flag"); e.Row.BackColor = modifiée ? System.Drawing.Color.White : System.Drawing.Color.Black; }
et comment mettre un "flag" dans une bd access ?
et mon application est en VB non en C#
0365752, bizarre comme pseudo....
ALors, pour mettre un flag dans ta bd, tu ajoute simplement un champ que tu modifieras lors des Update dans la base.
Mais avant ça, éclaire moi sur un détail : sur quel critère te base tu pour savir que la ligne a été modifiée ?
Prenons un exemple :
- il y a 5 lignes dans ta table
- un utilisateur vient modifier la ligne 3 donc elle apparait en rouge
- un autre utiisateur vient modifier la ligne 5 donc elle apparait en rouge
- encore un autre utilisateur vient modifier une nouvelle fois la ligne 3 elle apparait comment alors ?
Ou plus globalement, la modification de la ligne intervient comment et pourquoi ?
Parce qu'il y a aussi une autre possibilité qui va t'obligé à revoir la structure de ta table : il faut que tu place deux chamsp date, Date_Ajout, Date_Modification que tu initialise avec un Now() (ça doit être comme ç en Acces pour récupérer la date courante).
Donc, lrosque l'enregistrement est créé, les deux chamsp ont la même date.
dés que quelqu'un modifie, tu mets dans l'UPDATE un Now() pour le champ date de modificationet donc tes deux n'ont plus la mêm valeur et donc tu peux savoir que la ligne est modifiée.
De fait, en reprenant le bout de code qui t'a été donné plus bas, tu fais le test pour afficher ta ligne rouge sur la différence de date.
Tu voudrais pas nous filer le bout de code que tu utilises pour charger ton gridview, comme ça on pourrait voir plus en détail.
Kenavo
AUCUN
Comment veux tu savoir qu'une ligne a été modifiée ?
Il faut bien le sauvegarder quelque part dans ta base de données. Zoofy a bien expliqué le mécanisme par Flag ou date.
Et enfin le code de changement de couleur tu l'as déjà, certes en C# mais on pourra le traduire en VB.Net quand tu seras convaincu de la solution
Salut,
Il y a possibilité de se connecter à un module administrateur. Ceux-ci peuvent, ajouter, modifier et effacer les données. Dans le cas de l'horaire des employés, il arrive fréquemment qu'un administrateur change l'heure ou le lieu du match de hockey. Présentement, tout fonctionne à merveille. Par contre, quand un administrateur change une donnée, il faut que l'employé le voit (d'une façon ou d'une autre) quand il se connecte... Il faut qu'il soit averti que son horaire a été modifié.
Vous pouvez aller voir sur le même site et vous connecter en tant qu'administrateur pour visualiser la chose. "513" et "gestionz5"
Je suis désolé si je comprends les choses moins rapidement, je suis encore débutant. Si vous voulez avoir un accès ftp pour voir mes fichiers, je vous le donnerai par courriel.
Merci de vous impliquer autant, c'est vraiment apprécié, d'autant plus que la saison débute sous peu.
bon, je comprends mieux.
Je penbse en fait que ton problème ne vient pas forcément du fait savoir changer la couleur ou pas. Pour ça, tu attends Lundi, j'ai un bout de code en VB qui marche bien, mais il est au bureau.
Par contre, ton vrai problème est dans la conception de ta base de données.
Je vasi réexprimé ton vrai besoin et tu vas mieux comprendre :
ce que tu souhaite c'est que les utilisateurs passant sur le tableau des matchs soient informé qu'il y a des données qu'il n'ont pas lu (et pas forcément qu'elle soient modifiées). Donc il faut que tu mette ne palce une structure de base de donnée qui permet de savoir si tel employé à lu toute les données du tableau ou pas. ça se fait en SQL avec plusieurs tables et une grosse requête qui va nourrir ton GridView. Ensuite tu fais une recherche du flag qui dit que c'est pas lu et là tu change la couleur.
Je pourrais t'aider mieu Lundi, quand je serais au boulot, d'abords arce que j'ai ma pelouse à tondre, mais surtout parce que j'ai pas les outils ici, chez moi. En attendant, essaye de me faire un script de création de tes tables. Comme ça, je pourrais voir à quoi elle ressemble de plus près. En fait, envoi moi carrément ton fichier ACCESS par mail ou donne moi un accès FTP pour que j'aille le rechercher.
Kenavo
Bon, je viens de descendre deux de tes trois bases.
outre le fait que vraiment il faut que tu revoi ton modèle de données, je vasi te donner une marche à suivre pour tenter de t'apporter une solution :
- il faut que tu crée une table à deux champs qui va reprendre les caratactèristiques de l'id user de la table des user et de l'ID de la table des infos
- ensuite tu prépares une requête qui va faire un jointure externe (LEFT JOIN) sur l'id des info entre cette nouvelle table et la table des infos. Dans cette requête tu envoi un clause where ou directement dans l'expression de la jointure l'id du user connecté. Ainsi tu aura des champ vide et des champ avec l'id du user.
- si l'id du user tu mets la ligne en bleu (exemple ! ) si l'id est vide tu mets la ligne en rouge (autre exemple).
Pour gérer ce genre de chose voici un bout de code que j'utilise pour savoir si un message est lu ou pas en fonction de la présence d'un 1 ou d'un 0 dans une colone de la table :
Voilà, avec ça tu es paré pour l'aventure. Désolé dene pas t'écrire la requête pour faire la jointure, mais ACCESS gère vraimetn trop mal ces truc là et j'ai décroché de ACCESS avec la version 97, donc.......Code:
1
2
3
4
5
6
7
8
9
10
11
12 Protected Sub gvMsgRecu_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvMsgRecu.DataBound For i As Int16 = 0 To gvMsgRecu.Rows.Count - 1 If dtm.DefaultView.Item(gvMsgRecu.Rows(i).DataItemIndex).Item("lu") = 0 Then gvMsgRecu.Rows(i).BackColor = Drawing.Color.Green ElseIf dtm.DefaultView.Item(gvMsgRecu.Rows(i).DataItemIndex).Item("lu") = 1 Then gvMsgRecu.Rows(i).BackColor = Drawing.Color.Red Else gvMsgRecu.Rows(i).BackColor = Drawing.Color.White End If Next End Sub
Si tu passe en SQL server, j'y connais un peu plus.
Kenavo
Merci Kenavo... je vais essayer de m'initier à toute cette programmation.
Peux-tu me dire plus précisement comment "revoir" mon modèle comme tu le dis ?
Ben pour revoir ton modèle y a du boulot.
Faudrait plutôt que tu t'oriente vers un tutorial de BDD ou un truc traite de MERISE. C'est une super méthode pour mettre en place des BDD.
Sincèrement, je ne pense pas disposer du temps necéssaire pour t'apporter autant d'aide. En tout cas avec MERISE comme mot clé, tu va trouver plein de truc trés abordable sur le net.
Bonne continuation.
Kenavo
PS : Kenavo n'est pas mon pseudo, ça veux dire "au revoir" en breizhoneg
Merci.
Si jamais tu connais un programmeur qui peut réviser le tout à prix raisonnable, fais-le moi savoir.
Bonne journée.