Найти элемент управления на странице с главной страницей

Мне нужно найти Control на странице aspx, привязанной к главной странице.

Основная страница содержит:

<asp:ContentPlaceHolder ID="MainContent" runat="server"/>               

Страница содержания содержит:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
</asp:Content>

Я добавил a Table с ID formtable как дочерний элемент Content2.

Я попытался использовать следующий код для доступа к Table, но код возвращает null:

protected void Ok_Click(object sender, EventArgs e)
{
    Table tblForm = this.FindControl("MainContent").FindControl("formtable") as Table;                 
}

Как я могу получить доступ к Table?

Ответ 2

В каком контексте вы участвуете, когда пытаетесь это сделать? Вы находитесь в кодебе отдельной страницы?

Если это так, он должен быть Content1.FindControl("formtable") as Table, и это будет оно.

Ответ 3

Работа с findControl() иногда вызывает осложнения. Легче определить публичное свойство для этого элемента управления на главной странице, а затем получить доступ к управлению через свойство.

вы должны добавить эту строку в дочернюю страницу:

<%@ MasterType VirtualPath="~/MasterPage.master" %>