I am trying to set attributes for an IFRAME html control from the code-behind aspx.cs file.
I came across a post that says you can use FindControl to find the non-as
Where is your iframe embedded?
Having this code
<body>
<iframe id="iFrame1" runat="server"></iframe>
<form id="form1" runat="server">
<div>
<iframe id="iFrame2" runat="server"></iframe>
</div>
</form>
I can access with iFrame1.Attributes["src"]
just to iFrame1 and not to iFrame2.
Alternatively, you can access to any element in your form with:
FindControl("iFrame2") as System.Web.UI.HtmlControls.HtmlGenericControl
Try instantiating contentPanel1 outside the Load event; keep it global to the class.
The FindControl method looks in the child controls of the "control" the method is executed on. Try looking through the control collection recursively.
protected virtual Control FindControlRecursive(Control root, String id)
{
if (root.ID == id) { return root; }
foreach (Control c in root.Controls)
{
Control t = FindControlRecursive(c, id);
if (t != null)
{
return t;
}
}
return null;
}
Try using
this.Master.FindControl("ContentId").FindControl("controlId")
instead.
None of your suggestions worked for me, here is my solution:
add src="<%=_frame1%>" //to the iframe id="frame1" html control
public string _frame1 = "http://www.google.com";
<iframe id="yourIframe" clientIDMode="static" runat="server"></iframe>
You should them be able to find your iframe using the findcontrol method.
setting clientIDMode
to Static
prevents you object from being renamed while rendering.