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 :

PropertyName pour un booléen dans un Binding


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Points : 38
    Points
    38
    Par défaut PropertyName pour un booléen dans un Binding
    Bonjour à tous
    J'ai lié Plusieurs TextBox aux colonnes d'un DataSet par l'intermédiaire d'une Binding.
    La ligne de code est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Password.DataBindings.Add(New Binding("Text", ds, "Libellés.MotDePasse"))
    Password = Nom d'une TextBox
    Libellés = Nom de la table dans le DataSet
    MotDePasse = Nom de la colonne dans le DataSet

    Ca marche très bien, sauf pour une des colonnes qui n'est pas du texte, mais un booléen.
    Je ne sais pas par quoi remplacer "Text" dans ma ligne de code correspondant au booléen, et je n'ai pas trouvé de liste de valeurs possibles pour ce PropertyName . (Si je mets "text", je n'ai pas d'erreur, mais la liaison ne marche pas).
    Quelqu'un aurait-il la gentillesse de m'aider ?

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 442
    Points
    4 442
    Par défaut
    Ta colonne en base de données ,qui contient le "soi-disant" Boolean ,n'est pas de type Boolean .
    code exemple avec 2 textboxes dont 2 -ème affiche un Boolean:
    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
     
     
     Public Class Form1
        Private ds As DataSet
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            ds = GetDataSet()
     
            txtNom.DataBindings.Add(New Binding("Text", ds, "Libelles.Nom"))
            txtEstContractuel.DataBindings.Add(New Binding("Text", ds, "Libelles.EstContractuel"))
        End Sub
        Private Function GetDataSet() As DataSet
            Dim dt As New DataTable("Libelles")
            dt.Columns.AddRange(
                New DataColumn() {
                    New DataColumn("Nom", GetType(String)),
                    New DataColumn("EstContractuel", GetType(Boolean))
    })
            'fill table
     
            Dim dr As DataRow
            dr = dt.NewRow
            dr(0) = "item1"
            dr(1) = True
            dt.Rows.Add(dr)
            dr = dt.NewRow
            dr(0) = "item2"
            dr(1) = False
     
            dt.Rows.Add(dr)
            Dim ds As New DataSet()
            ds.Tables.Add(dt)
            Return ds
        End Function
    End Class
    bon code...

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Points : 38
    Points
    38
    Par défaut
    Bonjour,
    Merci pour l'exemple de code, mais j'ai fait une erreur dans ma demande.
    En fait, mon champ est bien un booléen. Tous les contrôles qui reçoivent des liaisons depuis mon DataSet sont des TextBoxs sauf un qui est une CheckBox. Et c'est là qu'est mon problème.
    Si je remplace la CheckBox par une TextBox, le code comportant le PropertyName "Text" marche très bien et montre "True" ou "False". Ce qui montre d'ailleurs que ce PropertyName concerne non pas le type de donnée dans le DataSet, mais bien la propriété de la TextBox.
    Cela dit, je cherche toujours par quoi remplacer 'Text" lorsqu'on veut que la CheckBox passe de l'état "Check=True" à l'état "Check=False". J'ai essayé "bool" et "boolean" sans succès.

    Où puis-je trouver des listes de propriétés comportant le mot "Text" pour un texte et "ce que je cherche" pour un booléen ???

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 442
    Points
    4 442
    Par défaut
    Qui cherche trouve ,"un chien NECHNECH vaut mieux qu'un chien dormeur" (adage arabe. NECHNECH veut dire littéralement fureteur ou fouineur et ces 2 types de chiens existent bel et bien).
    Checkbox.Checked.

    Droppes un CheckBox sur ton form , pointe toi dans l'IntelliSense sur ce CheckBox et tu y trouveras toutes le propriétés de ce contrôle.
    Une prop "bindable" est une prop en lecture/écriture

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Points : 38
    Points
    38
    Par défaut Propriété et PropertyName
    Je ne recherche pas une propriété quelconque d'une CheckBox, mais ce qui est appelé PropertyName et qui se rapporte au mot "Text" dans l'expression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Password.DataBindings.Add(New Binding("Text", ds, "Libellés.MotDePasse"))
    En fouillant le web, j'ai trouvé une autre valeur possible : "Value". Mais çà ne marche toujours pas.
    En désespoir de cause, j'ai ajouté une TextBox (rendue invisible) que j'ai liée à la colonne contenant la valeur booléenne. J'ai ensuite lié le texte de cette TextBox à l'état de ma CheckBox en passant par un select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            Select Case TextBox1.Text
                Case "True"
                    CheckBox1.Checked = True
                Case False
                    CheckBox1.Checked = False
                Case Else
                    CheckBox1.Checked = 0
            End Select
        End Sub
    Et çà marche... mais c'est terriblement lourd.

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

Discussions similaires

  1. Récupérer un booléen pour une insertion dans une table
    Par Invité dans le forum VBA Access
    Réponses: 8
    Dernier message: 15/03/2013, 00h16
  2. style pour le bouton dans input type file
    Par manaboko dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2005, 14h47
  3. [VB.NET] Taille differente pour chaque colonne dans DATAGRID
    Par stephane93fr dans le forum Windows Forms
    Réponses: 14
    Dernier message: 12/01/2005, 16h50
  4. Réponses: 6
    Dernier message: 08/11/2004, 14h18
  5. changement de type pour un champ dans une table
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/02/2004, 15h26

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