在具有母版页的页面上查找控件
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>
我添加了一个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】:当您尝试执行此操作时,您所处的环境是什么?您是否在单个页面的代码隐藏中?
如果你是,它应该是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" %>
【讨论】:
以上是关于在具有母版页的页面上查找控件的主要内容,如果未能解决你的问题,请参考以下文章