【问题标题】:FindControl for finding control on page that uses master pageFindControl 用于在使用母版页的页面上查找控件
【发布时间】:2023-03-23 20:37:01
【问题描述】:

我有这个使用母版页的aspx

<asp:Content ID="Content1" ContentPlaceHolderID="content" runat="server">
   <div class="mlists">
       <a href="?"><img id="i1" src="../img/1.png" runat="server" alt="1"/></a>
       <a href="?"><img id="i2" src="../img/2.png" runat="server" alt="2"/></a> 
       <a href="?"><img id="i3" src="../img/3.png" runat="server" alt="3"/></a> 

   </div>
</asp:Content>

但我无法使用此代码访问图像控件:

var control = FindControl("Content1").FindControl("i2");
((HtmlImage)control).Src = "../img/x.png";

对象引用未设置为对象的实例。

发生错误,因为FindControl("Content1") 返回null。请注意,此代码还返回 null:

var control = FindControl("i2");

【问题讨论】:

  • 你想从哪里调用FindControl
  • @naveen 来自使用母版页的 aspx 代码
  • 然后将其称为i2。代码隐藏的类型为System.Web.UI.HtmlControls.HtmlImage
  • @naveen 一开始我就用它!返回null!
  • 不可能。你在什么情况下称呼它?

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


【解决方案1】:

您无法访问内容,请参考this question

也许,您想将“runat=server”添加到 div 并访问 ImageControls。

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="content">
    <div class="mlists" runat="server" id="div">
       <a href="?"><img id="i1" src="../img/1.png" runat="server" alt="1"/></a>
       <a href="?"><img id="i2" src="../img/2.png" runat="server" alt="2"/></a> 
       <a href="?"><img id="i3" src="../img/3.png" runat="server" alt="3"/></a> 

   </div>
</asp:Content>

然后像这样在后面的代码中访问控件:

var control = div.FindControl("i2");
((HtmlImage)control).Src = "../img/x.png";

【讨论】:

    【解决方案2】:
           // Get a reference to the master page
            MasterPage ctl00 = FindControl("ctl00") as MasterPage;
    
            // Get a reference to the ContentPlaceHolder
            ContentPlaceHolder mainContent = ctl00.FindControl("MainContent") as ContentPlaceHolder;
    
               // Get a reference to the Repeater
           Repeater repeater = mainContent.FindControl("Repeater1") as Repeater;
    
      This is how i get to a repeater control in a working application.
    Follow this pattern you can get anything in your master page and even content page
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多