Como recuperar os controles de uma página?
Recentemente precisei recuperar todos os controles de uma página Asp.Net para um projeto.
O problema é que propriedade Controls da página herda da Classe Control e como tal retorna apenas os controles diretamente abaixo dela. Nesta relação não estão incluídos os itens da Master Page ou dos User Controls.
A solução então é criar um método que atravesse recursivamente toda a hierarquia.
Ex.:
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
ListControls(Page, writer);
}
private static void ListControls(Control control, HtmlTextWriter writer)
{
if (control.HasControls())
{
IEnumerator _i = control.Controls.GetEnumerator();
while (_i.MoveNext()) ListControls(((Control)_i.Current), writer);
}
else
writer.WriteLine("ID = {0}, ClientID = {1}
“,control.ID, control.ClientID);
}
Enviar por e-mail. Hits para esta publicação: 141.
Deixe uma resposta.