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 :

Control de la visibilté des rows avec BindingSource


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Par défaut Control de la visibilté des rows avec BindingSource
    Salut,
    je veux faire un filtrage (incluant les expressions regulière) dans un BindingSource C-A-D avec la propriété filter, autrement dit, j'arrive pas a faire un filtrage dans BindingSource, avec Linq ça marche, mais le problème je recupère une autre instance, or ce que je veux c'est d'operer directement dans l'instance BindingSource et je qu'elle reste toujour lier au DataTable, c'est pas a l'instance retourner pas Linq; maintenant la question: y a t'il un moyen de controler directement la visibilté des rows dans DataTable ou le bindingSource ? ; ou comment peut on recupérer résultat retourner par le Linq query sans perdre la liason entre BindingSource et DataTable
    voici un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //dbTable est un DataTable
    // bs est un BindingSource lier a dbTable
    // isOk est une fonction qui revoie un bool  et qui 
    IEnumerable<DataRow> Query = from art in dbTable.AsEnumerable() where isOK(art.Field<string>("Libelle")) select art;                
     
    // je ne veux pas faire cela
    bs.DataSource = Query.ToList();// :( je perd la liaison avec DataTable donc les opération de 'ajout ou modif. ou sauveg. sont bouuuuuf

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ca ne correspond peut-être pas exactement à ce que tu cherches, mais avec Linq to DataSet tu peux obtenir une DataView à partir de n'importe quelle requête Linq :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var query = from art in dbTable.AsEnumerable() where isOK(art.Field<string>("Libelle")) select art;
     
    bs.DataSource = query.AsDataView();
    Si tu modifies le contenu de la table, la DataView sera bien mise à jour. Par contre tu ne peux pas modifier le filtre, il faut recréer la DataView...

  3. #3
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    MyDataTable.Select(filter) ???

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Graffito Voir le message
    MyDataTable.Select(filter) ???
    Non :
    sans perdre la liason entre BindingSource et DataTable

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Non
    Citation: sans perdre la liason entre BindingSource et DataTable
    Mais ... Select() ne fait que retourner un DataRow[] !

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Mais ... Select() ne fait que retourner un DataRow[] !
    Ben oui : si tu affectes un tableau de DataRow comme DataSource, tu ne gardes pas le lien avec la table. Les lignes ajoutées/supprimées ne seront jamais vues par la BindingSource...

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

Discussions similaires

  1. Compter des ROWS avec un group by et un WHERE
    Par Olivierl20 dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/10/2013, 22h14
  2. Réponses: 0
    Dernier message: 03/04/2013, 14h04
  3. Réponses: 2
    Dernier message: 24/11/2007, 18h15
  4. Réponses: 2
    Dernier message: 20/04/2007, 13h48
  5. gestion des sessions avec le controller struts
    Par don'de dans le forum Struts 1
    Réponses: 4
    Dernier message: 18/12/2006, 18h21

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