Controles de usuario anidados: cómo obtener mejor una referencia a un control ancestro

Me doy cuenta de que una gran cantidad de código no puede caber aquí, pero estoy pidiendo una dirección general o puntero.

Tengo controles de usuario .NET anidados en seis profundidades para un gadget interactivo con (externo a interno) de: envoltorio, pestañas, paneles, listas, filas, elementos.

Estoy tratando de obtener una referencia a un control ancestro de un control anidado.

Específicamente, tengo este código en el código detrás de un control incrustado de "tataranieto". Funciona, pero es muy feo:

MyTab _myTab = this.Parent.Parent.Parent.Parent.FindControl(thisTab) as MyTab;

que es igual{ASP.controls_appname_widget_mywidget_mytab_ascx} y es correcto

Me doy cuenta de que puedo hacer algo como Page.FindControl ("MyWrapper: MyPanel: etc .....) pero eso tampoco es recomendable, ya que la estructura o las ID pueden cambiar ...

¿Hay una alternativa decente?

Respuestas a la pregunta(5)

Su respuesta a la pregunta