Взгляните на this.Controls
. Эта статья :
http://msdn.microsoft.com/en-us/library/system.web.ui.control.controls(VS.71).aspx заявляет: «На странице ASP.NET, когда элементы управления добавляются декларативно между открывающим и закрывающим тегами серверного элемента управления, ASP.NET автоматически добавляет элементы управления в содержащую серверный элемент управления ControlCollection.»
Насколько я понимаю, если у вас есть
<yourcode:yourcontrol id="asdf" runat="server">
<p id="innerP" runat="server">Text here</p>
</yourcode:yourcontrol>
Тогда можно было бы вызвать this.FindControl("innerP").text="Other text here
, поскольку тег P генерируется на стороне сервера.
Однако, если у вас не установлен runat="server"
для элемента P:
<yourcode:yourcontrol id="asdf" runat="server">
<p id="innerP">Text here</p>
</yourcode:yourcontrol>
тогда вы можете найти его только через this.controls[0]
, поскольку весь контент будет отображаться в одном Literal
элементе управления.