Type de contrôles contenus dans une page

cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004 - 24 juin 2004 à 09:32
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004 - 29 juin 2004 à 11:43
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

ilsandor Messages postés 39 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 avril 2005
25 juin 2004 à 12:23
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
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
28 juin 2004 à 09:44
Cordialement,
Suffren
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
29 juin 2004 à 11:24
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
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
29 juin 2004 à 11:43
En fait, lorsque je mets TypeName(Controle) il me donne LiteralControl sur lequel on ne peut pas faire de traitement.
Cordialement,
Suffren
0