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

Posted

技术标签:

【中文标题】在具有母版页的页面上查找控件【英文标题】:Find a control on a page with a master page 【发布时间】:2011-04-12 20:16:57 【问题描述】:

我必须在绑定到母版页的 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>

我添加了一个TableID formtable 作为Content2 的孩子。

我尝试使用以下代码访问Table,但代码返回null

protected void Ok_Click(object sender, EventArgs e)

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

如何访问Table

【问题讨论】:

【参考方案1】:

当您尝试执行此操作时,您所处的环境是什么?您是否在单个页面的代码隐藏中?

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

【讨论】:

【参考方案2】:

试试这个

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

查看Control ID Naming in Content Pages了解更多详情

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

以上是关于在具有母版页的页面上查找控件的主要内容,如果未能解决你的问题,请参考以下文章

如何在母版页中调用jquery ui autocomplete以在内容页面中定义控件

ASP.NET内容页中访问母版页中的对象

带有母版页的 aspx 页面上的图像

在使用母版页的 asp 内容上设置页面标题

使用母版页时在网页上设置背景图片

Asp.net 如何取母版页的属性及控件及方法调用求解答