begin process at 2010 02 09 19:28:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

Problème affichage DataGrid


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

Problème affichage DataGrid

mardi 21 février 2006 à 16:17:00 | Problème affichage DataGrid

lilou3m

Bonjour,

 

Je rencontre un problème d’affichage avec les datagrids.

Voilà mon problème.

J’ai 2 datagrids (DG1 et DG2).

Je sélectionne une ligne dans DG1.

Je vide DG2 puis je la recharge avec des données qui sont fonction de la ligne sélectionnée dans DG1.

Mes 2 datagrids sont remplis.

Je sélectionne une cellule dans DG2. Puis je sélectionne une autre ligne de DG1, DG2 se remet à jour, mais le contenu de l’ancienne cellule sélectionnée dans DG2 reste affichée dans le « vide ».

Par exemple :

J’ai 20 lignes dans DG2 avant rechargement, je sélectionne une cellule de la ligne 19.

J’ai 10 lignes dans la DG2 après rechargement et les données anciennement sélectionnées restent affichées à la position de la ligne 19 en dehors du tableau. Comme une sorte de fantôme de l’affichage précédent !

Il faut que je sélectionne une ligne de DG2 pour que le problème d’affichage disparraisse.

J’ai éssayé de vider la sélection courante, de faire un refresh sur ma DG2, même de supprimer la ligne, rien n’y fait.

Quelqu’un aurait déjà rencontré ce problème ?

Merci d’avance pour vos réponses.

Lilou
mardi 21 février 2006 à 16:45:53 | Re : Problème affichage DataGrid

ienien85

salut est ce que tu pourrai laisser ton code pour voir un peu mieu. j'essayerai de t'aider

ienien85
mardi 21 février 2006 à 16:57:13 | Re : Problème affichage DataGrid

lilou3m

Bonjour,

Merci de ta démarche ca va être compliqué pour le code mais voici la fonction qui charge la DG2 en fonction de la DG1

Pour info:

DG1 = DG_Cours
DG2 = DG_Evaluation


private void DG_Cours_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)

{

//Déclaration des variables

DataView dv;

CurrencyManager cm;

int i;

int nbLigneSelect = 0;

int indexSelected = -1;

DataRow row;

DataTable table;

if (e.Button == MouseButtons.Left)

{

cm = (CurrencyManager)this.BindingContext[this.DG_Cours.DataSource, this.DG_Cours.DataMember];

dv = (DataView)cm.List;

for(i = 0 ; i < dv.Table.Rows.Count; i++)

{

if(this.DG_Cours.IsSelected(i))

{

nbLigneSelect ++;

indexSelected = i;

}

}

if(nbLigneSelect == 1)

{

if(indexSelected != -1)

{

row = dv.Table.Rows[indexSelected];

table = agEvaluationIntervenantSectionDate.GetTableSortedByWhereClause(

new CriterionExpressionAND(

new CriterionExpressionEQ(BOGRV2_Evaluation_Intervenant_Section_Date.AnneeField,

int.Parse(row[BOGRV2_Evaluation_Intervenant_Section_Date.AnneeField.Name].ToString())),

new CriterionExpressionEQ(BOGRV2_Evaluation_Intervenant_Section_Date.CoteField,

row[BOGRV2_Evaluation_Intervenant_Section_Date.CoteField.Name]),

new CriterionExpressionEQ(BOGRV2_Evaluation_Intervenant_Section_Date.SemestreField,

row[BOGRV2_Evaluation_Intervenant_Section_Date.SemestreField.Name])),

Order.By(BOGRV2_Evaluation_Intervenant_Section_Date.IntervenantField,

BOGRV2_Evaluation_Intervenant_Section_Date.NUMEROSECTIONField));

this.lblCours.Text = row[BOGRV2_Evaluation_Intervenant_Section_Date.LIBELLELocalizedField.Name].ToString();

this.lblCours.Text += " ( " + row[BOGRV2_Evaluation_Intervenant_Section_Date.CoteField.Name].ToString() + " )";

//Vide le DG_Evaluation

if(this.DG_Evaluation.DataSource != null)

{

((DataView)this.DG_Evaluation.DataSource).Table.Clear();

}

table.RowChanged += new DataRowChangeEventHandler(table_RowChanged);

table.ColumnChanged += new DataColumnChangeEventHandler(table_ColumnChanged);

this.DG_Evaluation.DataSource = new DataView(table);

}

}

else

{

Helper.ShowBusinessMessageBoxDialog(this,"Vous devez sélectionner une seule ligne","You must select only one row.");

}

}

mercredi 22 février 2006 à 11:44:31 | Re : Problème affichage DataGrid

Arthenius

Membre Club
personnelemnt j'utiliserais un currency manager avec l'evennement positionchanged sur la D1 pour lancer le chargement de ta d2 et pas un mouse up ^^
ainsi des que la position de ton currencymanager sur D1 a changer il execute le code qui charge D2...
peut etre un epu plus propre que le mouse up...

sinon pour ton pb, peut etre un dg.refresh();

ou un
try
{
    dg2.select(0);
}
catch{}

pour ce positionner sur la premiere ligne
si tu utilise un dataset pour DG2, faut peut etre faire un ds.clear();



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

"Ce qui ne me tue pas, me rend plus fort..."
mercredi 22 février 2006 à 12:14:26 | Re : Problème affichage DataGrid

lilou3m

Bonjour,

Merci de ton conseil Arthenius, je vais le mettre en place dès cet aprem.

Par contre pour le problème d'affichage, j'ai déjà testé le dg2.select(0) et mm avec un dg2.unselect(0) derrière rien à faire. Cela ne change rien. J'ai peur que ca soit un problème du controle datagrid lui mm.

Merci de ta réponse.
mercredi 22 février 2006 à 14:35:10 | Re : Problème affichage DataGrid

Arthenius

Membre Club

c'est assez bizarre...

j'utilise cet technique un peu partout dans mes appli et pas de sousci...
tu a bien fais un dg.refresh() ??



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

"Ce qui ne me tue pas, me rend plus fort..."
mercredi 22 février 2006 à 14:38:07 | Re : Problème affichage DataGrid

Arthenius

Membre Club

par contre j'utilise des dataset ...

et ca n'a aps l'air ton cas me gourge ???



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

"Ce qui ne me tue pas, me rend plus fort..."
mercredi 22 février 2006 à 14:45:06 | Re : Problème affichage DataGrid

lilou3m

Le refresh ne change rien.

Effectivement je n'utilise pas de DataSet mais directement une DataTable.

mercredi 22 février 2006 à 15:13:03 | Re : Problème affichage DataGrid

Arthenius

Membre Club
voila un exemple de code que je met sur le positionchanged


                ds.T_DOSSIER_SITE.Rows.Clear();
                //On rempli le datagrid Site
                if(CM_Dossier.Position>=0)
                {
                    Da_Site.SelectCommand.Parameters["@DOSNUM"].Value = (System.Guid) ds.T_DOSSIER.Rows[CM_Dossier.Position]["DOSNUM"];
                    Da_Site.Fill(ds.T_DOSSIER_SITE);
                   
                    //On affecte le Ds au datagrid
                    dg_Liste_Site.DataSource = ds.T_DOSSIER_SITE;
                    CM_Site = (CurrencyManager) BindingContext[ds.T_DOSSIER_SITE];
                    //Largeur des colonnes et nom de Colonnes
                    dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITCOD"].HeaderText = "Code";
                    dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITCOD"].Width = 100;
                    dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITCOD"].NullText = "";
                    dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITLIB"].HeaderText = "Site";
                    dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITLIB"].Width = 320;
                    dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITLIB"].NullText = "";
                   
                    //Refresh du Datagrid
                    dg_Liste_Site.Refresh();
                    try
                    {
                        dg_Liste_Site.Select(0);
                    }
                    catch{}



et jamais eu de sousis telle que le tiens...

CM_Dossier est mon currencymanager sur la table parent (ton D1)
dg_Liste_Site = D2

peut etre cela peut-il t'aider



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

"Ce qui ne me tue pas, me rend plus fort..."
mercredi 22 février 2006 à 15:41:13 | Re : Problème affichage DataGrid

lilou3m

Merci de ton aide.

Je vais voir avec ton code si ca change qq chose.

Je te tiens au courant.

1 2

Cette discussion est classée dans : problème, ligne, sélectionne, affichage, dg2


Répondre à ce message

Sujets en rapport avec ce message

Problème avec l'affichage des données de PostgreSQL (WebAppli) [ par juaker ] Slt à vous,J'ai un problème concernant l'affichage des informations contenues dans ma base PostgreSQL.En fait j'utilise un odbcDataAdapter.fill avec u Problème retour à la ligne dans un fichier texte [ par goldeneagle_4 ] Bonjour à tous,voilà j'ai un problème, j'utilise en C#.Net une richbox dans laquelle j'affiche du texte puis à partir du contenu de la richbox, je cré [C#] Affichage de label paramétré [ par Drozis ] Bonjour à tous !J'espère que mon premier message sur le forum, restera un bon souvenir loll(petite précision, je suis en WinForm)Bon alors voilà mon p Affichage d'une form pendant qu'une autre est en traitement [ par redam2005 ] Bonjour, J'ai un problème d'affichage. Au début de mon programme je lance l'affichage d'une form 'wait' pendant que le 'main' fait son initialisation Problème de ShowDialog + affichage [ par emmanuel9 ] Bonjour à tous, En faite j'ai une classe Serveur qui herite de form, et je fais Serveur a = new Serveur() ; etc.... puis a.ShowDialog() ; et en fa problème de date dans une requete [ par ZeBFroG ] Bonjour à tous,j'ai un petit soucis de résultat via une requete sur une base MySQL que j'execute en C#Requête ->Select date, Time, Pai, Type_Sai Problème listbox et listview [ par emmanuel9 ] Bonjour à tous, J'ai un listbox et je voudrais rajouter des chaines de caractères dedans mais faire en sorte que chaque ligne est une couleur et une Problème d'affichage dans crystal reports [ par sdess ] Bonjour,Pour un projet en C# sous visual studio .net 2003, j'utilise Crystal reports pour faire les rapports. Cela fonctionne quasiement bien, sauf qu Problème d'affichage avec datagridview toujours pas réglé!!!! [ par patou1007 ] Bonjour,Je suis bloqué depuis un certain temps avec ce faux problème.J'ai envie d'afficher les données d'une base MySQL dans un datagridview.Pour l'in Affichage dans une ListBox [ par hduchemin ] Bonjour à tous, Débutant dans la prog en c#, je rencontre le petit problème suivant : plutot que de m'afficher la liste de mes items sur une seule li


Nos sponsors


Sondage...

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 : 0,281 sec (3)

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