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

ADO.NET Discussion :

lier textbox par databinding


Sujet :

ADO.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    r83
    r83 est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Par défaut lier textbox par databinding
    Bonjour,

    Voici mon problème : j'aimerais mettre automatiquement à jour une série de textbox d'une winform suite au changement du contenu d'une datatable ne ramenant qu'une ligne (select where sur id).

    Sur le load de la form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            private void FrmPrincipale_Load(object sender, EventArgs e)
            {
                .......
                TxtNom.DataBindings.Add("Text",  UneDataTable, "NOMC");
                TxtPrenom.DataBindings.Add("Text", UneDataTable, "PRENOMC");   
            }
    et sur un évènement click sur un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            private void BtnRecherche_Click(object sender, EventArgs e)
            {
                UneDataTable = UneConnexion.ObtenirUnClient("Gro", System.Convert.ToInt16(CmbCliRecherche.SelectedValue));
            }
    ça marche MAIS ..... rien ne s'affiche dans les textbox !
    J'aimerais que toutes mes textbox se mettent à jour automatiquement.
    Si vous pouviez m'aider, merci d'avance.

  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
    Quand tu passes une variable à une méthode, tu passes la valeur actuelle de la variable, pas la variable elle-même... Donc quand tu remplaces la valeur de UneDataTable par une autre DataTable, les bindings que tu as établis avant pointent encore sur l'ancienne DataTable.

    Il faudrait soit que tu établisses les bindings après avoir initialisé la DataTable, soit que tu passes par une BindingSource. Tu indiques la BindingSource comme source de tes bindings, et quand tu fais la recherche tu affectes la DataTable comme DataSource de la BindingSource.

  3. #3
    r83
    r83 est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Par défaut
    Bonjour,

    Merci pour la réponse.
    Effectivement la première solution marchait, mais il fallait binder tous les contrôles après chaque changement.
    Je vais donc essayer la deuxième solution.

  4. #4
    r83
    r83 est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Par défaut
    ça ne marche pas, voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            private void FrmPrincipale_Load(object sender, EventArgs e)
            {
                BindingClient = new BindingSource();
                TxtNom.DataBindings.Add("Text", BindingClient,"NOMC",true);
                TxtPrenom.DataBindings.Add("Text", BindingCLIENT, "PRENOMC");
     
            }
    et dans le click du bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            private void BtnRecherche_Click(object sender, EventArgs e)
            {
                UneDataTable = UneConnexion.ObtenirUnClient("Gro", System.Convert.ToInt16(CmbCliRecherche.SelectedValue));
                BindingClient.DataSource = UneDataTable;
     
            }
    Au premier click, rien ne s'affiche dans la textbox TxtNom et TxtPrenom
    Un deuxième click renseigne la TxtNom, mais pas prenom.
    Sur les clicks suivants, si le datasource a changé, les textbox ne sont pas mises à jour.
    Merci pour les conseils.

  5. #5
    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
    Bah j'ai fait un test, pour moi ça marche bien... je sais pas trop ce que tu as fait de travers.

    Par contre, c'est quoi BindingCLIENT (avec CLIENT en majuscules) dans ton code ? C# est sensible à la casse, donc c'est pas la même chose que BindingClient...

  6. #6
    r83
    r83 est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Par défaut
    Bonsoir,

    J'ai beau essayer, je n'y arrive pas.
    Je ne comprends pas !
    Si vous avez votre bout de code de test, je suis preneur.
    Ne pas tenir compte de BindingCLIENT, c'est bien BindingClient

    Merci beaucoup

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

Discussions similaires

  1. Lier des éléments de dictionary par databinding?
    Par sibama dans le forum VB.NET
    Réponses: 0
    Dernier message: 20/05/2011, 00h26
  2. [VBA-E] Sélection d'un textbox par le code
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/06/2006, 15h58
  3. Réponses: 6
    Dernier message: 07/06/2006, 12h41
  4. [VB.NET][PDA]Remplir 2 textbox par liste de valeurs
    Par tostinni dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/12/2005, 21h58
  5. valider le contenu d'un textbox par la touche entrée
    Par camilla dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2005, 15h02

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