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

VB.NET Discussion :

filtrer un datagridview deja filtre


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 49
    Par défaut filtrer un datagridview deja filtre
    bonjour,
    j'ai un datagridview rempli et des champs de type textbox.
    certaines valeurs du datagridview sont vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim dv1 As New DataView
            dv1.Table = Me.BaseDataSet.DataTable1
                  dv1.RowFilter = "nomEnfant like'" & txtnom.Text & "*' and prenomEnfant like '" & txtprenom.Text & "*' and classe like '*" & Txtclasse.Text & "*'"
    DataGridView1.DataSource = dv1
    donc ce code ne prend que les valeurs non vide de classe
    mais moi j'aimerai les filtré uniquement lorsque on ecrit dessus
    comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dv1.RowFilter = "nomEnfant like'" & txtnom.Text & "*' and prenomEnfant like '" & txtprenom.Text & "*'"
    DataGridView1.DataSource = dv1
     If Txtclasse.Text <> "" Then
                dv1.RowFilter = "classe = '*" & Txtclasse.Text & "*'"
                DataGridView1.DataSource = dv1
            End If
    mais la ca ne prend plus en compte les modification du nom ou prenom

    merci d'avance

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    bonjour,
    essaye avec ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dv1.RowFilter = "nomEnfant like'" & txtnom.Text & "*' and prenomEnfant like '" & txtprenom.Text & "*'"
    DataGridView1.DataSource = dv1
     If Txtclasse.Text <> "" Then
                if not dv1.RowFilter = "" then dv1.RowFilter &= " and "
                dv1.RowFilter &= "classe = '*" & Txtclasse.Text & "*'"
                DataGridView1.DataSource = dv1
            End If
    Bien à toi.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 49
    Par défaut
    bonsoir,
    merci de ta reponse

    il me met une erreur
    Erreur de syntaxe : opérande manquant après l'opérateur 'And'.
    a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Not dv1.RowFilter = "" Then dv1.RowFilter &= " and "

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Oui de fait, ca vien du fait qu'il évalue en temps réel la requete, il faut donc passer par un string tampon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dv1.RowFilter = "nomEnfant like'" & txtnom.Text & "*' and prenomEnfant like '" & txtprenom.Text & "*'"
    DataGridView1.DataSource = dv1
     If Txtclasse.Text <> "" Then
                Dim strTempon as string
                if not dv1.RowFilter = "" then strTempon  = " and "
                 strTempon &= "classe = '*" & Txtclasse.Text & "*'"
                dv1.RowFilter &= strTempon
                DataGridView1.DataSource = dv1
            End If
    de cette manière il ajoute directement une bonne requête.
    Il est à noter que vu que quoi qu'il arrive tu filtre par le nom et le prénom tu pourrais faire directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dv1.RowFilter = "nomEnfant like'" & txtnom.Text & "*' and prenomEnfant like '" & txtprenom.Text & "*'"
    DataGridView1.DataSource = dv1
     If Txtclasse.Text <> "" Then
                dv1.RowFilter &= " and classe = '*" & Txtclasse.Text & "*'"
                DataGridView1.DataSource = dv1
            End If
    plus simple et plus rapide...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 49
    Par défaut
    merci encore

    Bizarement le filtre ne marche pas, ca me donne un datagridview vide si la textbo prend une valeur.
    je ne sais pas comment l'explique... Je vais essaye de comprendre le probleme
    A tu une idee?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 49
    Par défaut
    j'ai fini par comprendre l'erreur c'est jutte le = que je devais remplace par like..
    donc merci beaucoup vraiment

    si j'en ai d'autre filtre je peut proceder comme ca pour tout les autre aussi?

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bien sur
    Sur ce, passe une bonne nuit, je vais dormir longue journée demain

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DataTable lier au DataGridView et filtre
    Par matrix_ceg dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/05/2008, 19h12
  2. [VB.NET] Filtrer un datagridview
    Par olbi dans le forum VB.NET
    Réponses: 1
    Dernier message: 10/04/2007, 13h19
  3. [VB.net] Filtrer un datagridview par un DatetimePicker
    Par collaud_vb dans le forum Windows Forms
    Réponses: 12
    Dernier message: 28/09/2006, 09h09
  4. [C#] méthodes pour filtrer un datagridview ?
    Par tikam dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/08/2006, 12h24
  5. [C#]Datagridview : Tri / Filtre
    Par Theka dans le forum Windows Forms
    Réponses: 19
    Dernier message: 24/07/2006, 17h53

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