2015-05-04 4 views
0

Я это aspx, которая использует главную страницу:FindControl для нахождения управления на странице, которая использует главную страницу

<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"); 
+0

где вы пытаетесь вызвать, что 'FindControl' из? – naveen

+0

@naveen из кода 'aspx', который использует главную страницу –

+0

, тогда просто назовите ее как' i2'. код-позади будет иметь его как тип 'System.Web.UI.HtmlControls.HtmlImage' – naveen

ответ

0

Вы не можете получить доступ к содержимому, пожалуйста, обратитесь к 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"; 
0
 // 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 

 Смежные вопросы

  • Нет связанных вопросов^_^