Найти элемент управления на странице с главной страницей
Мне нужно найти 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
?
Ответы
Ответ 1
Попробуйте это
Table tblForm = this.Master.FindControl("MainContent").FindControl("formtable") as Table;
Ознакомьтесь с этим Идентификация идентификатора элемента управления на страницах контента для получения более подробной информации
Ответ 2
В каком контексте вы участвуете, когда пытаетесь это сделать? Вы находитесь в кодебе отдельной страницы?
Если это так, он должен быть Content1.FindControl("formtable") as Table
, и это будет оно.
Ответ 3
Работа с findControl() иногда вызывает осложнения.
Легче определить публичное свойство для этого элемента управления на главной странице, а затем получить доступ к управлению через свойство.
вы должны добавить эту строку в дочернюю страницу:
<%@ MasterType VirtualPath="~/MasterPage.master" %>