Introduction
While working on a page with nested DataLists, I found it difficult to find the parent DataListItems of controls nested in panels and other server side container controls. I had to repeat calling the Parent property of controls till I get the required Parent control. The repeation of calling of Parent property is error prone as any subtle change in the page structure could throw an exception. This helper method finds the parent control using extension method to the Control class of asp.net.
The Code
public static T FindImmediateParentOfType<T>(this Control control) where T : Control
{
T retVal = default(T);
Control parentCtl = control.Parent;
while (parentCtl != null)
{
if (parentCtl is T)
{
retVal = (T)parentCtl;
break;
}
else
{
parentCtl = parentCtl.Parent;
}
}
return retVal;
}