begin process at 2010 02 10 07:06:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

MAJ de DataGrid


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

MAJ de DataGrid

mercredi 23 février 2005 à 14:30:28 | MAJ de DataGrid

Gaxx

Membre Club
Bonjour,
 
Dans mon programme j'utilise deux datagrid en lecture seule pour représentaer une relation maître-détail. Disons dgG (à gauche) en maître et dgD (donc à droite) en détail. La sélection d'une ligne de mon dgG conditionne les données du dgD.
 
 
Le MAJ du dgD fonctionne mais j'ai le problème suivant :
Lorsqu'on entre en édition d'une cellule du dgD et que l'on change de ligne sur le dgG, la cellule en édition reste à l'écran...
 
 
L'évênement sur lequel la maj se fait est CurrentCellChanged() sur le dgG. La fonction suit le protocole suivant :
1- vider les infos existantes : dataSet.Clear();
2- créer une nouvelle table (dataTable, dataRow et dataColumn
3- remplir la table
4- ajout de la table dans le dataSet
5- dgD.SetDataBinding(dataSet, "ma_table")
 
 
Je vois plusieurs possibilités pour résoudre mon problème, et c'est là que j'ai desoin de votre aide  :D :
1- j'ai oublié quelque chose ...
2- ne permettre qu'une sélection de ligne dans mes dg (impossibilité de rentrer dans une cellule). Je n'ai pas trouvé comment.
3- valider les "changements" de la cellule. Je n'ai pas réussi non plus.
 
 
Par avance merci. 
mercredi 23 février 2005 à 18:15:10 | Re : MAJ de DataGrid

refletjno

Réponse acceptée !
Salut,
J'ai également eu ce problème pour l'une de mes applications. C'est le fait que le grid soit en lecture seule qui provoque ce problème.
Pour la solution 2 tu peux faire comme ça :
Au changement du CurrentRowIndex tu fais (moi je l'ai fait sur un mouseUp mais ça devrait marcher aussi comme ça)

tonDG.Select(tonDG.CurrentRowIndex);

Normalement il te sélectionne toute la ligne et impossible de rentrer dans une cellule.

Jno

Toutes ces questions sans réponse vont me rendre dingue
jeudi 24 février 2005 à 11:21:49 | Re : MAJ de DataGrid

Gaxx

Membre Club
Réponse acceptée !
Merci,
Je n'ai pas trouvé d'évenement sur CurrentRowIndex pour mon DataGrid.
A la base je n'ai que mon dataGrid et mon dataSet d'existant, le reste est créé dynamiquement.
Et ce n'est pas mon dataGrid mais toutes mes colonnes qui sont en lecture seule...

Mais ton aide m'a mis sur la voie :
Lors de la création je laisse mes colonnes en lecture/écriture mais à la fin je définit le dataGrid en lecture seule (le dgD). L'utilisateur peut encore entrer dans une cellule pour l'éditer, mais comme avant : sans pouvoir modifier la donnée.

Lors du changement de ligne de mon maître (dgG), avant de remplir l'esclave (dgD) avec mes nouvelles données je le place (le dgD) en lecture/ecriture; puis je le remplis et le repasse en lecture seule.

Et la rémanence de la cellule en cours d'édition disparaît

Le système n'est pas parfait mais au moins il n'y a plus de problèmes d'affichage !
jeudi 24 février 2005 à 11:29:53 | Re : MAJ de DataGrid

Gaxx

Membre Club
Humm,

Maintenant que mon problème est résolu j'aimerai le faire apparaître dans le titre mais je ne trouve pas le moyen de le faire...

Et je me demande également à quoi sert le bouton "Réponse acceptée !".

En tout cas le problème est : Résolu
jeudi 24 février 2005 à 11:31:14 | Re : MAJ de DataGrid

Gaxx

Membre Club
...
Ca y est c'est compris !
...
jeudi 24 février 2005 à 14:26:26 | Re : MAJ de DataGrid

Arthenius

Membre Club

pltuot qu'utiliser le currentrowindex...et des evenement mouse up...

j'utiliserais plutot les Currencymanager... :

private CurrencyManager CM_maitre ;


//Puis :
//Attention il faut initialiser ton currencymanager comme ton datasource et datamember du datagrid
CM_maitre = (CurrencyManager) BindingContext[ds.T_maitre ];

//On affecte le Ds au datagrid

dg_Liste_maitreDataSource = ds.T_maitre ;

//La tu peux faire ca :

CM_maitre .PositionChanged +=new System.EventHandler(CM_maitre _PositionChanged);


 

private void CM_maitre _PositionChanged(object sender, EventArgs e)

{

   //Metrte ici le code qui va remplir ton detail en fonction de la position de ton maitre
   
}

comme tu peux le voir dans les Currencymanager tu a une propriete position (qui equivaut a peu pres au currentrowindex) mais qui est mieux...en fait admettons que tu a 10 lignes tu fais un filtre sur le datagrid qui ne t'affiche plus que 5 ligne du dataset...
pour supprimer une ligne tu va utiliser le currentrowindex...qui ne correspondra pas forcement a l'enregistrment du dataset...
tu risque donc de supprimer un enregistrement qui n'est pas celui que tu croyais (scene vecu...)
alors qu'avec le currencymanager...NO PROBLEME !!!!

Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."

jeudi 24 février 2005 à 15:00:04 | Re : MAJ de DataGrid

Gaxx

Membre Club

Ok,
Pour le moment je vais garder mon système puisque le CurrentRowIndex me sert à récupérer une valeur de la ligne, qui est une clef d'une hashTable... Mes dataTable ne sont que l'interface de mes hashTable, et mes mises a jour changent l'intégralité des données de mes dataTable.

Je garde ta solution en mémoire en cas de besoin.
@+

jeudi 24 février 2005 à 15:08:17 | Re : MAJ de DataGrid

Arthenius

Membre Club
je te le conseil...moi j'ai completement laisser tomber le currentrowindex...je n'utilise pplus que les currencymanager...bien plus propre...a mon gout...
mais les gouts et les couleurs....

Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."



Cette discussion est classée dans : table, cellule, maj, dgd, dgg


Répondre à ce message

Sujets en rapport avec ce message

dataset [ par kavi ] salut les amis,J'ai un problème avec dataset.J'ai remarqué que chaque cellule dans une table de dataset peut conteneir maximum 255 characters.j'ai un problème maj base access [ par borgeomi ] borgeomibonjouuuuuuur !!!!!Bonjour, J'ai un problème de maj de base de données ACCESS je copie une table d'u ADO.NET dataset sql server [ par fazni ] bonjour tous le monde j'ai 4 table dans la base donnée sqlserveur et je travil avec asp.net comment relier les 4 table dans un dataset et comment modi DataView entre Combobox et label [ par bobjoumi ] Bonjour, je galère depuis ce matin sur une petite chose, je charge un Combobox a partir d'un DataView, je voudrais que dynamiquement un label ce chang ajouter ligne dynamiquemet textBox [ par GranPicS ] Bonjour, J'aimerais savoir s'il est possible de rajouter des lignes dynamiquement sur une textBox.Je m'explique:Je développe un webService qui doit ré Tri de ID [ par ddove53 ] Bonjour,je veux accéder dans une cellule de mon gridview par exemple la colonne des ID et trier par ordre décroissant les ID sans utiliser une requete probleme update [ par benameur11 ] salut , j'ai un gros problème je n'arrive pas a mettre ma table à jour avec ces commandes OleDbDataAdapter DtaGrid = new OleDbDataAdapter("SELECT * lister les nom de table, champ d'une base de donné [ par th3rid3r ] Bonjour à tous Premier message dans ce forum ^^ Je développe actuellement un programme en C# sous VS 2008 A un momment de mon programme je propose ce Mise à jour [ par benameur11 ] salut , je n'arrive pas a mettre ma table à jour avec ces commandes OleDbDataAdapter DtaGrid = new OleDbDataAdapter("SELECT * FROM Paiement ",Conn); changement de type [ par salad1976 ] bonjour tout le mond;est ce que on peux changer le type d'une cellule dans une datagridview? (je veux changer seulement la cellule et pas la colonne)l


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,217 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales