在具有母版页的页面上查找控件

时间:2010-09-15 18:25:45

标签: c# asp.net findcontrol master-pages

我必须在绑定到母版页的aspx页面中找到Control

母版页包含:

<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 个答案:

答案 0 :(得分:29)

试试这个

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

结帐Control ID Naming in Content Pages了解更多详情

答案 1 :(得分:1)

使用findControl()有时会引起并发症。 在母版页中为该控件定义公共属性,然后通过属性访问控件更容易。

你应该在子页面中添加这一行:

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

答案 2 :(得分:0)

当你尝试这样做时,你在什么背景下?你是个人页面的代码隐藏吗?

如果你是,那应该是Content1.FindControl("formtable") as Table,那就是它。