【问题标题】: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

【问题讨论】:

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


    【解决方案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" %>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多