2010-09-15 2 views
11

Я должен найти 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 с IDformtable как ребенка Content2.

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

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

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

ответ

25

Попробуйте

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

Checkout это Control ID Naming in Content Pages для более подробной информации

0

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

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

0

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

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

<%@ MasterType VirtualPath="~/MasterPage.master" %> 
Смежные вопросы