Estoy tratando de establecer atributos para un control IFRAME html desde el archivo aspx.cs de código subyacente.¿Cómo puedo acceder a un IFRAME desde el archivo codebehind en ASP.NET?
me encontré con un post que dice que puedes utilizar FindControl para encontrar los controles no asp usando:
El archivo aspx contiene:
<iframe id="contentPanel1" runat="server" />
y luego el código subyacente archivo contiene:
protected void Page_Load(object sender, EventArgs e)
{
HtmlControl contentPanel1 = (HtmlControl)this.FindControl("contentPanel1");
if (contentPanel1 != null)
contentPanel1.Attributes["src"] = "http://www.stackoverflow.com";
}
Excepto que no encuentra el control, contentPanel1 es nulo.
Actualización 1
Mirando el HTML representado:
<iframe id="ctl00_ContentPlaceHolder1_contentPanel1"></iframe>
he intentado cambiar el código subyacente a:
HtmlControl contentPanel1 = (HtmlControl)this.FindControl("ctl00_ContentPlaceHolder1_contentPanel1");
if (contentPanel1 != null)
contentPanel1.Attributes["src"] = "http://www.clis.com";
Pero no ayudó .
estoy usando una página maestra.
Actualización 2
Cambiar el archivo aspx a:
<iframe id="contentPanel1" name="contentPanel1" runat="server" />
Tampoco ayudó
respuesta
La respuesta es obvia e indigna de siquiera hacer la pregunta original. Si tiene el código aspx:
<iframe id="contentPanel1" runat="server" />
y desea tener acceso al marco flotante desde el archivo de código subyacente, que acaba de acceder al mismo:
this.contentPanel1.Attributes["src"] = "http://www.stackoverflow.com";
¿Estás utilizando páginas maestras? –
Por qué sí, sí, yo soy. –
Mire el HTML procesado (ver fuente) y encuentre el ID representado del iFrame. Usa eso en tu código. Podemos aclararlo más tarde, pero solo intente eso. –