IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Filter(Sort) des données


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 4
    Par défaut Filter(Sort) des données
    Bonjour à vous, j'ai un problème avec un programme que j'essai de construire. Je n'arrive pas à filtrer les données afficher dans mon datagridview. Je veux filtrer les données à partir d'un textBox. Mon problème est que mon datagridview a des colonnes avec des nom défini d'avance, et lorsque j'utilise DataSource, je me retrouve avec des colonnes vides.

    En gros, je veux ajouter une recherche rapide à mon programme.
    Je vous remercie d'avance pour votre aide.
    Bonne journée
    Fichiers attachés Fichiers attachés

  2. #2
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 132
    Par défaut
    Une recherche selon quoi?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 4
    Par défaut
    Citation Envoyé par samuel44 Voir le message
    Une recherche selon quoi?
    Une recherche rapide des entrées! Exemple, j'ai 8 Alexandre dans ma base sur 800 personnes; comment filtrer seulement les Alexandre!

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    Bah ,comme ton dgv n'est pas "bindé" à une source de donnée tu dois itérer ...

    l'exemple ci-après suppose que tu as rajouté un control TextBox à ton Form ou l'user entre un texte de recherche ...
    code behind .cs du code à ajouter à ton Form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
     
     private void textBoxSearch_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode != Keys.Enter) return;
                int ligneTrouves = 0;
                if (!String.IsNullOrEmpty(textBoxSearch.Text)) // filtrage  
                {
                    for (int i = 0; i < dgvGrid.Rows.Count - 1; i++)
                    {
                        dgvGrid.Rows[i].Visible = (dgvGrid.Rows[i].Cells[1].Value.ToString() != textBoxSearch.Text);
                        ligneTrouves++;
                    }
     
                    MessageBox.Show("nbre lignes  trouvés : " + ligneTrouves.ToString());
                }
                else //effacecement du texte de recherche dans textBoxSearch
                {
                    for (int i = 0; i < dgvGrid.Rows.Count - 1; i++)
                    {
                        dgvGrid.Rows[i].Visible = true;
                    }
                }
            }
    S'il est "bindé" la solution est dans le class BindingSource et le class DataView qui permet le filtrage....
    code behind .cs du Form modifie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
     
    public partial class Form2 : Form
        {
            private BindingSource bds = new BindingSource();
            private DataSet ds = new DataSet("PneusBennett");
            public Form2()
            {
                InitializeComponent();
            }
     
            private void btnAdd_Click(object sender, EventArgs e)
            {
                bds.AddNew();
            }
            //les 2 buttons Add et Del sont inutiles car la synchronisation est  
            // assure entre le datable et les controls lies par BindingSource
            // button inutile à virer-saisie  dans le dgv ou les controls suffit !!!
            private void btnEdit_Click(object sender, EventArgs e)
            {
     
            }
            // button inutile à virer-suppression de la ligne du dgv (touche supp) !!!
            private void btnDel_Click(object sender, EventArgs e)
            {
     
            }
     
            private void btnLoad_Click(object sender, EventArgs e)
            { 
                ds.ReadXml("Data1.xml");
                DataTable dt = ds.Tables[0];
                bds.DataSource = dt;
     
                dataGridView1.DataSource = bds;
     
                tbNom.DataBindings.Clear();
                tbPrenom.DataBindings.Clear();
                tbAdresse.DataBindings.Clear();
                tbAdresse.DataBindings.Clear();
     
                tbNom.DataBindings.Add("Text", bds, dt.Columns[0].ColumnName, true, DataSourceUpdateMode.OnPropertyChanged);
                tbPrenom.DataBindings.Add("Text", dt, dt.Columns[1].ColumnName, true, DataSourceUpdateMode.OnPropertyChanged);
                tbAdresse.DataBindings.Add("Text", dt, dt.Columns[2].ColumnName, true, DataSourceUpdateMode.OnPropertyChanged);
                tbCodePostal.DataBindings.Add("Text", dt, dt.Columns[3].ColumnName, true, DataSourceUpdateMode.OnPropertyChanged);
            }
     
            private void btnSave_Click(object sender, EventArgs e)
            {
                DataTable dt = ds.Tables[0];
                ds.WriteXml("Data1.xml");
            }
     
     
     
            private void textBoxSearch_KeyDown_1(object sender, KeyEventArgs e)
            {
                if (e.KeyCode != Keys.Enter) return;
                string search = null;
                DataView view = ds.Tables[0].DefaultView;
                if (!String.IsNullOrEmpty(textBoxSearch.Text))
                {
                    search = " Nom = '" + textBoxSearch.Text + "'";
                }
     
                view.RowFilter = search;
                dataGridView1.Focus();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
                {
                    if (dataGridView1.Rows[i].Cells[1].Value.ToString() != textBoxSearch.Text)
                        dataGridView1.Rows[i].Visible = false;
                }
     
     
            }
    ci-joint : un fichier data.xml plus parlant....
    bon code....

Discussions similaires

  1. [XL-2010] Besoin d'aide pour extraire les données d'un csv
    Par Thierry_59300 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/05/2016, 13h36
  2. Besoin d'aide Macro récupéré les mêmes données sur classeur fermé
    Par djinero dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/10/2011, 15h40
  3. [MySQL] besoin d'aide pour comprendre les injections sql
    Par cassy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/01/2007, 14h21
  4. Besoin d'aide pour recuperer les fichier d'un projet
    Par barthelv dans le forum Applications et environnements graphiques
    Réponses: 9
    Dernier message: 14/04/2006, 11h47
  5. Réponses: 3
    Dernier message: 05/12/2005, 02h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo