Fürs Archiv eine generische Methode FindControlRecursive:
public static T FindControlRecursive<T>(Control parent, string id) where T : class
{
foreach (Control child in parent.Controls)
{
if ((child.ID != null)
&& string.Equals(child.ID, id, StringComparison.InvariantCultureIgnoreCase)
&& (child is T))
return (child as T);
var ctl = FindControlRecursive<T>(child, id);
if (ctl != null)
return ctl;
}
return null;
}