Vous souhaitez parcourir en boucle toutes les commandes utilisateur présentes sur la page et obtenir leurs ID. Comment fait-on ça?Parcourez toutes les commandes utilisateur sur une page
Répondre
Pour chaque contrôle utilisateur, vous auriez à tester le type de contrôle:
EDIT: Je modifié mon exemple pour passer par tous les contrôles récursive:
Méthode
public void GetUserControls(ControlCollection controls)
{
foreach (Control ctl in controls)
{
if (ctl is UserControl)
{
// Do whatever.
}
if (ctl.Controls.Count > 0)
GetUserControls(ctl.Controls);
}
}
appelé
GetUserControls(Page.Controls);
Nah. Cela ne fonctionne pas –
Qu'est-ce qui ne fonctionne pas à ce sujet? – CAbbott
si (curControl est UserControl) n'est jamais vrai. Et j'ai un contrôle sur la page –
foreach(Control control: Page.Controls)
{
//do something with control object
}
Mais alors, il boucle à travers tous les contrôles. Comment un contrôle utilisateur peut-il être différencié? GetType() ?? –
Les contrôles peuvent être imbriqués. Vous avez donc besoin d'une fonction récursive pour parcourir tous les contrôles. –
Cela devrait fonctionner:
var listOfUserControls = GetUserControls(Page);
...
public List<UserControl> GetUserControls(Control ctrl)
{
var uCtrls = new List<UserControl>();
foreach (Control child in ctrl.Controls) {
if (child is UserControl) uCtrls.Add((UserControl)child);
uCtrls.AddRange(GetUserControls(child);
}
return uCtrls;
}
J'ai créé une méthode d'extension pour ce faire, ce qui fonctionne vraiment bien avec LINQ.
<Extension()>
Public Function DecendentControls(ParentControl As Control) As Control()
Dim controls As New List(Of Control)
For Each myControl As Control In ParentControl.Controls
controls.Add(myControl)
controls.AddRange(myControl.DecendentControls)
Next
Return controls.ToArray
End Function
Puis, avec LINQ vous pouvez faire quelque chose comme ceci pour définir toutes les cases sur une page sans contrôle:
For Each myControl As CheckBox In pnlMain.DecendentControls.Where(Function(x) TypeOf x Is CheckBox)
myControl.Checked = False
Next
- 1. Parcourez toutes les ressources dans ResourceManager - C#
- 2. Parcourez toutes les ressources d'un fichier .resx
- 3. Mettre en surbrillance toutes les commandes utilisateur dans une page ASP.NET
- 4. Toutes les commandes Javascript pour les URL
- 5. Siliverlight 3 Navigation entre les commandes utilisateur?
- 6. Chargement dynamique des commandes utilisateur
- 7. Commandes utilisateur dans masterpage et utilisateur anonyme
- 8. Parcourez les enfants
- 9. remplacer toutes les instances sur une page - javascript
- 10. Commandes utilisateur multiples avec Javascript
- 11. Commandes utilisateur et Viewstate
- 12. Ajouter --color à toutes les commandes Unix
- 13. Commandes utilisateur jQuery + MVC
- 14. Comment implémenter les préférences utilisateur sur une page PHP jQuery?
- 15. AJAX TabContainer contenant les commandes utilisateur
- 16. toutes les commandes de shell-script dans les commandes de lot portable?
- 17. Commandes Subversion pour ajouter un nouvel utilisateur et accorder toutes les autorisations
- 18. Parcourez les enfants et affichez chacun, as3
- 19. Maven - Réponse automatique 'oui' sur toutes les entrées utilisateur
- 20. essayer d'ouvrir une page toutes les 10 secondes
- 21. Comment trouver toutes les commandes exécutées sur une base de données MySQL dans un délai donné?
- 22. Parcourez tous les «widgets»/éléments d'une activité
- 23. Commandes utilisateur WinForm - Drag Drop
- 24. Parcourez la rangée d'images
- 25. Commandes utilisateur dans ASP.NET MVC
- 26. Commandes utilisateur et données fortement typées
- 27. Écouter toutes les commandes Perforce effectuées par mon ordinateur client sur le serveur
- 28. Parcourez les fichiers KML avec DDMS
- 29. ASP.NET 3.5 AJAX AutoCompleteExtender - Comment l'obtenir dans toutes les commandes?
- 30. jQuery: comment réinitialiser toutes les positions d'éléments sur la page?
Est-ce WinForms, WPF ou ASP.NET? Je soupçonne ce dernier, mais on ne sait jamais. – ChrisF
Par "contrôles utilisateur", voulez-vous dire * les contrôles gérés * ou spécifiquement les contrôles utilisateur (.ascx)? – CAbbott
@ChrisF: Vous devinez juste! ASP.Net c'est @ CAbbott: .ascx –