I have this aspx
that uses a master page:
<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>
but I can't access to image controls using this code:
var control = FindControl("Content1").FindControl("i2");
((HtmlImage)control).Src = "../img/x.png";
and
Object reference not set to an instance of an object.
error occurs, since FindControl("Content1")
returns null
. note that also this code returns null
:
var control = FindControl("i2");
You can't access content, please refer to this question.
Perhaps, you wanted to add "runat=server" to div and access 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>
Then access controls in code behind like this:
var control = div.FindControl("i2");
((HtmlImage)control).Src = "../img/x.png";