Búsqueda recursiva de controles en ASP.Net PDF Imprimir Correo electrónico
Software
Escrito por Pablushka   
Jueves 23 de Abril de 2009 18:17

Muchas veces es necesario encontrar un control dentro de una página asp.net que está anidado dentro de varios controles contenedores. Cuando esto sucede no es posbile recordar todo el path de controles anidados para poder hacer un simple FindControl, entonces es cuando este pequeño código nos viene de perillas.

Este es:

 

/// <summary>
/// Searchs a control inside nested controls
/// </summary>
/// <param name="root">A control root to sart finding</param>
/// <param name="id">A control to find</param>
/// <returns></returns>
private Control FindControlRecursive(Control root, string id)
{
if (root.ID == id)
{
return root;
}
foreach (Control c in root.Controls)
{
Control t = FindControlRecursive(c, id); if (t != null)
{
return t;
}
}
return null;
}

/// <summary>
/// Searchs a control inside a page and all nested control
/// </summary>
/// <param name="page">A page where to find</param>
/// <param name="id">A control to find</param>
/// <returns></returns>
private Control PageFindControl(Page page, string id)
{
Control t = null;

foreach (Control c in page.Controls)
{
t = FindControlRecursive(c, id);
if (t != null)
{
return t;
}
}
return t;
}
Bookmark and Share
Última actualización el Jueves 28 de Enero de 2010 17:49