Type de contrôles contenus dans une page

Signaler
Messages postés
92
Date d'inscription
vendredi 4 juillet 2003
Statut
Membre
Dernière intervention
9 août 2004
-
Messages postés
92
Date d'inscription
vendredi 4 juillet 2003
Statut
Membre
Dernière intervention
9 août 2004
-
Bonjour,
Dans mon projet, je parcours une collection de contrôles, est-il possible de tester le type du contrôle (TextBox, Checkbox, ...) ?
Et si oui comment?
Cordialement,
Suffren

4 réponses

Messages postés
39
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
27 avril 2005

c'est tout à fait possible
dans le code ci dessous theform représente le formulaire

For Each ctrl In theform.Controls
            Select Case TypeName(ctrl)
                Case "TextBox"
                    xd.SelectSingleNode(ctrl.Tag).InnerText = ctrl.Text
                Case "ListView"
'todo
            End Select
        Next


IlSandor
www.ilsandor.net
Messages postés
92
Date d'inscription
vendredi 4 juillet 2003
Statut
Membre
Dernière intervention
9 août 2004

Cordialement,
Suffren
Messages postés
92
Date d'inscription
vendredi 4 juillet 2003
Statut
Membre
Dernière intervention
9 août 2004

Bonjour,
tout d'abord je n'utilise pas Xml et ensuite il ne rentre pas dans le Select.

'Parcourt des contrôles de la page
For Each Controle In nom_page.Controls(1).Controls
      nomchamp = Controle.ID
      Select Case TypeName(Controle)
          Case "Textbox"
               'On récupère le nom du champ de la table
                nom = nomchamp.Remove(0, 4)
                'Recherche dans la base si le champ existe
                For Each objDataCol In objDataTable.Columns
                     nom_champ = objDataCol.ColumnName
                     If nom_champ Like nom Then
                       'Remplissage du champ de saisie
                       champtexte = nom_page.Controls(1).FindControl("Text" + nom)
                       champtexte.Text = objDataTable.Rows(intRowNumber).Item(nom_champ)
                       'info.ReadTextBox(nomchamp)
                        Exit For
                      End If
                 Next
           Case "CheckBox"
               'On récupère le nom du champ de la table
               nom = nomchamp.Remove(0, 5)
               For Each objDataCol In objDataTable.Columns
                    nom_champ = objDataCol.ColumnName
                    If nom_champ Like nom Then
                        'Remplissage de la case à cocher
                         coche = nom_page.Controls(1).FindControl("Check" + nom)
                         coche.SelectedIndex = objDataTable.Rows(intRowNumber).Item(nom_champ)
                         Exit For
                    End If
                Next            
            End Select
Next

Précisions : champtexte est un textbox et coche un CheckBoxList Oui/Non.
aurais-tu une idée?
Cordialement,
Suffren
Messages postés
92
Date d'inscription
vendredi 4 juillet 2003
Statut
Membre
Dernière intervention
9 août 2004

En fait, lorsque je mets TypeName(Controle) il me donne LiteralControl sur lequel on ne peut pas faire de traitement.
Cordialement,
Suffren