J'essaie d'énumérer tous les contrôles d'une page, mais tout ce que je peux trouver est thePage.FindControl(string)
et la propriété .Controls n'a pas les contrôles que j'ai sur la page. Tout le monde sait comment énumérer à travers tous les contrôles d'une page de formulaires Webénumérer via les contrôles de page webmestres asp.net, est-ce possible?
0
A
Répondre
2
Ce qui suit devrait énumérer tous les contrôles enfants pour vous.
IEnumerable<Control> GetAllChildControls(ControlCollection controls)
{
foreach(Control c in controls)
{
yield return c;
if(c.Controls.Count > 0)
{
foreach(Control control in GetAllChildControls(c.Controls))
{
yield return control;
}
}
}
}
1
La propriété Controls contient uniquement les enfants directs du contrôle en cours. Si vous voulez parcourir tous les contrôles de la page, vous devrez parcourir les enfants de la page, puis parcourir récursivement leurs enfants, puis les enfants de leurs enfants, et cetera. Une méthode récursive est le moyen le plus simple de mettre en œuvre ceci.