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![]()
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![]()
ca n'est pas très clair. c'est sur tes pages aspx quand tu utilises visual web que tu veux le savoir?
Une macro qui va récupérer le nom des contrôles d'une page web, je ne vois pas comment dire autrement.
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.
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
J'ai fait ca au page load pour tester:
Ca me renvoit le type des controles (Label, TextBox, ...) mais pas leur nom (Label1, ...). Que dois-je changer ?
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()); } } } }
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.
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
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());
Effectivement, il s'agit d'un WebControl, il n'y a pas de propriété Name, mais une propriété ID. Toutes mes excuses.
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
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 ?
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.
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
J'ai eu du nouveau:
Je ne sais vraiment pas comment fairec'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 pas ce que tu appelles une macro en C#... Peux tu préciser ce que tu veux dire ?
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
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
Pour finir on voudrait ca sous forme d'add-in de visual studio.
C'est faisable ?
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 :-(
Partager