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.
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;
parentCtl = parentCtl.Parent;