¿Como puedo incrustar una pagina web dentro de un Panel? Fue la pregunta… y la respuesta la arme rapidamente y posteandola aqui para que quede para la posteridad 😉
El control web Panel se renderiza en el cliente (lease en el navagador) en un control html div (es la magia ASP.NET), y en HTML tenemos un control para poder «llamar por underground» otro contenido o mejor dicho otra pagina.. el famoso tag iframe
Crando un iframe
Puedes crear un iframe escribiendo directamente el tag
Alli podriamos simplemente introducir el origen a cargar (propiedad src)
Pero que pasa si queremos manipular este control y sus propiedades desde el codebehind?
Aqui tendremos que convertilo en un html control del lado del servidor.. como? Asigando un identificador para referenciarlo y por supuesto agregando la propiedad runat=»server»
<iframe id="iframe1" runat="server" />
Pero donde esta la propiedad src?
Si queremos asignar iframe1.src, no la tenemos disponible por tratarse de un HtmlGenericControl
Si queremos asignar iframe1.src, no la tenemos disponible por tratarse de un HtmlGenericControl
Entonces debemos tratarlo como un atributo…
iframe1.Attributes.Add("src", "http://geeks.ms")
Tambien podremos manipularlo a la coleccion de atributos como cualquier otra collection tipo hashtable
Quedando:
iframe1.Attributes("src") = http://geeks.ms
Ya sabemos manipular nuestro iframe, pero como agregarlos a un control panel?
Si queremos realizarlo en tiempo de ejecucion, sabemos que el control Panel es un contenedor de controles por lo tengo

Debemos crear un control hijo del tipo del iframe (que es un HtmlGenericControl) y agregarlo a la coleccion de controles.
Dim iframe2 As New HtmlGenericControl("iframe")
iframe2.Attributes("src") = "http://geeks.ms"
Panel1.Controls.Add(iframe2)
Como veras al crear el control HTMLGenericControl utilice una sobrecarga del contructor donde enviamos el nombre del tag a crear o sino nos crea un control html span
Luego tendriamos que maipular alguna que otra propiedad para nuestras necesidades (width, height, style o especificando una class de css, etc)
Espero que les sirva de ayuda o guia
Enlaces:
- Iframe
- HtmlGenericControl
Oye, este artículo está muy bien. Pero después de leerlo me surgió una duda, es lo que tendría que hacer para meter un archivo de código jsp dentro de un documento asp.net?
O en ese caso qué tendría que utilizar?
Gracias
capo, he buscado esto en no se cuantas paginas y foros y nadie tiene idea y menos de explicar que no pertenece htmlgenericcontrol
idoloooooooooo
la verdad que sos un grande tu mini tutorial me saco de un gran apuro se agradece mucho
Muchas gracias por tu aportación, bien explicada y fue indispensable para sacar adelante un trabajo.
Gracias, me sirvio de mucho
muy buena explicacion, gracias me sirvio!!!!!
:p
Por una pregunta sobre este tema “ Enviar datos a una forma dentro de un iframe ”, desempolve algo que
Por una pregunta sobre este tema “ Enviar datos a una forma dentro de un iframe ”, desempolve algo que
Excelente ayuda me ayudo muchisimo