none
DataGridView rechargée plusieurs fois

    Question

  • Bonjour

    J'ai une DataGridView que je charge avec une liste<>.

    Cela fonctionne bien mais j'ai une procédure qui me permet de filtrer les enregistrements et je la recharge donc à l'aide d'un ligne du type

    DGV.DataSource= MaListe;

    Le problème est qu'à chaque fois que je relance mon filtre des nouvelles colonnes viennent s'ajouter dans la DGV au lieu de remplacer celles en place.

    Comment faire?

    Merci pour votre aide.

    Bernard


    Bernard Bouree

    vendredi 25 août 2017 14:00

Réponses

  • Bonjour Bernard,

    Utilisez ce code dans ce cas :

    private void LoadGridToponymesErrones(IReadOnlyCollection<ToponymeErrone> listeTop = null) { //Réinitialisation de la DGVToponoymesErrones DataGridView

    If (DGVToponymesErrones.Columns.Count>0)

    { DGVToponymesErrones.Columns.Clear(); DGVToponymesErrones.DataSource=null;

    }

    DGVToponymesErrones.AutoGenerateColumns = false; DGVToponymesErrones.AllowUserToAddRows = false; if (listeTop == null) DGVToponymesErrones.DataSource = cbCacherCommuneVide.Checked ? ToponymeErrone.ListeToponymesErrones.Where(t => t.Erreur != "Nom commune vide").ToList() : ToponymeErrone.ListeToponymesErrones; else { DGVToponymesErrones.DataSource = cbCacherCommuneVide.Checked ? listeTop.Where(t => t.Erreur != "Nom commune vide").ToList() : listeTop; } var colIdlr = new DataGridViewTextBoxColumn { Name = "Idlr", HeaderText = @"IDLR", DataPropertyName = "Idlr", Width = 50 }; DGVToponymesErrones.Columns.Add(colIdlr); var colLocation = new DataGridViewTextBoxColumn { Name = "Location", HeaderText = @"Location", DataPropertyName = "Location", Width = 500 }; DGVToponymesErrones.Columns.Add(colLocation); var colErreur = new DataGridViewTextBoxColumn { Name = "Erreur", HeaderText = @"Erreur", DataPropertyName = "Erreur", Width = 500 }; DGVToponymesErrones.Columns.Add(colErreur); tbNbreEnregErrones.Text = DGVToponymesErrones.Rows.Count.ToString(); }


    J'espère que j'ai bien répondu à votre question.


    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post

    Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadi


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    • Marqué comme réponse BernardBouree samedi 26 août 2017 14:55
    samedi 26 août 2017 14:51

Toutes les réponses

  • Bonjour Bernard,

    Pouvez-vous partagez votre code?

    Merci d'avance


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    samedi 26 août 2017 08:19
  • Bonjour Nourdine

    Bien sûr voici la méthode utilisée pour charger les données dans ma DGV.

     private void LoadGridToponymesErrones(IReadOnlyCollection<ToponymeErrone> listeTop = null)
            {
                DGVToponymesErrones.AutoGenerateColumns = false;
                DGVToponymesErrones.AllowUserToAddRows = false;
                if (listeTop == null)
                    DGVToponymesErrones.DataSource = cbCacherCommuneVide.Checked
                        ? ToponymeErrone.ListeToponymesErrones.Where(t => t.Erreur != "Nom commune vide").ToList()
                        : ToponymeErrone.ListeToponymesErrones;
                else
                {
                    DGVToponymesErrones.DataSource = cbCacherCommuneVide.Checked
                        ? listeTop.Where(t => t.Erreur != "Nom commune vide").ToList()
                        : listeTop;
                }

                var colIdlr = new DataGridViewTextBoxColumn
                {
                    Name = "Idlr",
                    HeaderText = @"IDLR",
                    DataPropertyName = "Idlr",
                    Width = 50
                };
                DGVToponymesErrones.Columns.Add(colIdlr);

                var colLocation = new DataGridViewTextBoxColumn
                {
                    Name = "Location",
                    HeaderText = @"Location",
                    DataPropertyName = "Location",
                    Width = 500
                };
                DGVToponymesErrones.Columns.Add(colLocation);

                var colErreur = new DataGridViewTextBoxColumn
                {
                    Name = "Erreur",
                    HeaderText = @"Erreur",
                    DataPropertyName = "Erreur",
                    Width = 500
                };
                DGVToponymesErrones.Columns.Add(colErreur);
                tbNbreEnregErrones.Text = DGVToponymesErrones.Rows.Count.ToString();
            }

    Merci

    Bernard


    Bernard Bouree

    samedi 26 août 2017 12:59
  • Bonjour Bernard,

    Utilisez ce code dans ce cas :

    private void LoadGridToponymesErrones(IReadOnlyCollection<ToponymeErrone> listeTop = null) { //Réinitialisation de la DGVToponoymesErrones DataGridView

    If (DGVToponymesErrones.Columns.Count>0)

    { DGVToponymesErrones.Columns.Clear(); DGVToponymesErrones.DataSource=null;

    }

    DGVToponymesErrones.AutoGenerateColumns = false; DGVToponymesErrones.AllowUserToAddRows = false; if (listeTop == null) DGVToponymesErrones.DataSource = cbCacherCommuneVide.Checked ? ToponymeErrone.ListeToponymesErrones.Where(t => t.Erreur != "Nom commune vide").ToList() : ToponymeErrone.ListeToponymesErrones; else { DGVToponymesErrones.DataSource = cbCacherCommuneVide.Checked ? listeTop.Where(t => t.Erreur != "Nom commune vide").ToList() : listeTop; } var colIdlr = new DataGridViewTextBoxColumn { Name = "Idlr", HeaderText = @"IDLR", DataPropertyName = "Idlr", Width = 50 }; DGVToponymesErrones.Columns.Add(colIdlr); var colLocation = new DataGridViewTextBoxColumn { Name = "Location", HeaderText = @"Location", DataPropertyName = "Location", Width = 500 }; DGVToponymesErrones.Columns.Add(colLocation); var colErreur = new DataGridViewTextBoxColumn { Name = "Erreur", HeaderText = @"Erreur", DataPropertyName = "Erreur", Width = 500 }; DGVToponymesErrones.Columns.Add(colErreur); tbNbreEnregErrones.Text = DGVToponymesErrones.Rows.Count.ToString(); }


    J'espère que j'ai bien répondu à votre question.


    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post

    Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadi


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    • Marqué comme réponse BernardBouree samedi 26 août 2017 14:55
    samedi 26 août 2017 14:51
  • Bonjour Nourdine et merci!!

    Bernard Bouree

    samedi 26 août 2017 14:56