Найти элемент управления на странице с главной страницей - PullRequest
13 голосов
/ 15 сентября 2010

Я должен найти 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>

Я добавил Table с ID formtable как ребенок Content2.

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

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

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

Ответы [ 3 ]

29 голосов
/ 15 сентября 2010

Попробуйте

Table tblForm = this.Master.FindControl("MainContent").FindControl("formtable") as Table; 

Оформите заказ Имена элементов управления именами на страницах контента для получения более подробной информации

1 голос
/ 18 сентября 2016

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

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

<%@ MasterType VirtualPath="~/MasterPage.master" %>
0 голосов
/ 15 сентября 2010

В каком контексте вы пытаетесь это сделать? Вы в коде позади отдельной страницы?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...