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

ASP.NET Discussion :

Macro qui récupère les contrôles d'une page


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 31
    Points
    31
    Par défaut Macro qui récupère les contrôles d'une page
    Bonjour,
    je dois développer une macro qui récupère les contrôles présents sur une page web, par exemple, s'il y a un label et une textbox, ma macro doit me le dire. Comment faire cela ?
    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    ca n'est pas très clair. c'est sur tes pages aspx quand tu utilises visual web que tu veux le savoir?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 31
    Points
    31
    Par défaut
    Une macro qui va récupérer le nom des contrôles d'une page web, je ne vois pas comment dire autrement.

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Tu peux boucler (avec un foreach par exemple) sur la propriété Controls de l'objet Page et récupérer la propriété Name de chaque contrôle.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 31
    Points
    31
    Par défaut
    J'ai fait ca au page load pour tester:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void Page_Load(object sender, EventArgs e)
        {
            foreach (Control crtl in this.Controls)
            {
                if (crtl.HasControls())
                {
                    foreach (Control crtll in crtl.Controls)
                    {
                        System.Diagnostics.Debug.WriteLine(crtll.ToString());
                    }
                }
            }
        }
    Ca me renvoit le type des controles (Label, TextBox, ...) mais pas leur nom (Label1, ...). Que dois-je changer ?

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Ben c'est normal, ToString renvoie le nom du type.
    Si tu regardes dans la documentation, tu verras, comme je te l'ai écrit plus tot, qu'il existe une propriété Name pour les objets de type Control.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 31
    Points
    31
    Par défaut
    J'arrive à récupérer le nom des contrôles grâce à ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Diagnostics.Debug.WriteLine("Nom du contrôle: " + crtll.UniqueID.ToString());

  8. #8
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Effectivement, il s'agit d'un WebControl, il n'y a pas de propriété Name, mais une propriété ID. Toutes mes excuses.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 31
    Points
    31
    Par défaut
    C'est pas grave, le tout c'est de chercher
    Par contre, penses-tu qu'il y a moyen que je lui dises d'aller voir telle page web plutot que de faire un this dans le pageload ?

  10. #10
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Je ne suis pas sûr que ce soit possible étant donné qu'il te faudrait obtenir une instance de la classe.
    Il faudrait instancier la classe correspondant à la page, mais je ne suis pas sûr que ça ne fasse pas paniquer IIS. Tu peux essayer tout de même en instanciant la page désirée.
    Une autre approche serait peut-être d'utiliser la réflexion pour récupérer les attributs de la page et déterminer ceux qui héritent de WebControl.
    Mais là dans les deux, je pense à voix haute, il ne faut pas prendre çà pour argent content, ça peut ne pas être possible.

    A confirmer.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 31
    Points
    31
    Par défaut
    J'ai eu du nouveau:

    c'est dans une macro que j'ai besoin de ca. pas dans la page

    je défini un macro et je dois pouvoir la faire tourner pour n'importe quelle page....


    une macro comme dans excel.
    Je ne sais vraiment pas comment faire

  12. #12
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Je ne sais pas ce que tu appelles une macro en C#... Peux tu préciser ce que tu veux dire ?

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 31
    Points
    31

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 31
    Points
    31
    Par défaut
    a terme, je voudrai une macro qui a parcour tout mon projet.

    Retrouve toutes les webforms de mon projet. et pour chacunes des webforms me liste tous les webcontrols dans un fichier xml

    style :

    <forms>
    <WebForm1>
    <controls>
    <buton id=bt1>
    </buton>
    <label id=lb1>
    </label>
    ...........
    </controls>
    </WebForm1>
    ...............
    </forms>


    si tu sais lister tous les controls d'une form et me faire un msgbox du type de control et de l'id, je me charge de faire l'écriture dans un fichier xml.

    a partir d'une macro on arrive bien à enumerer toutes les fonctions d'une class. toutes les class d'un namespace.
    je suis sur qu'il y a moyen de lister tous les controls d'une page

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 31
    Points
    31
    Par défaut
    Pour finir on voudrait ca sous forme d'add-in de visual studio.
    C'est faisable ?

  16. #16
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 160
    Points : 92
    Points
    92
    Par défaut
    Moi je dois faire exactement cela mais dans le LoadComplete de la form

    Mes controles que je dois recupérer sont dans des cellules d'une table
    je n'arrive pas a les recuperé
    Faut il faire quelques choses en plus que le code spécifié plus haut ?

    par contre je recupere des ctl01, ctl02 etc que je n'ai pas dans ma Webform
    je comprends pas :-(

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/05/2011, 08h06
  2. [MySQL] PHP Liste déroulante qui récupère les champs d'une table
    Par Cathe89 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/06/2010, 11h55
  3. UserControl qui valide un contrôle dans une page
    Par stroumfs dans le forum ASP.NET
    Réponses: 6
    Dernier message: 22/01/2010, 17h50
  4. Comment organiser les contrôles dans une page aspx ?
    Par naturel dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/05/2008, 11h53
  5. Site qui vérifie les actualisations d'une page web
    Par LFC dans le forum Autres langages pour le Web
    Réponses: 4
    Dernier message: 01/12/2005, 18h47

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