Una página normal dentro de un content masterpage
En VS.net 2003 se utiliza el frame para colocar una página normal de una aplicación, ahora no se puede hacer sino utilizando un content de un masterpage.
El asunto es que no funciona. La página la obtengo de un nodo de un TreeView.
El asunto es que no funciona. La página la obtengo de un nodo de un TreeView.
2 respuestas
Respuesta de Eduardo Saligari
1
1
Eduardo Saligari, Ingeniero de Sistema en Computación
Trato de entender tu problema, y voy a describirte lo que yo comprendo de esta.
Tu tienes una aplicación web que le da al usuario posibilidades de elección a través de un TreeView y cuando el usuario hace click en la opción lo envías a una página.
Esa página es una página con un Master. Page y deseas saber como mostrar contenido de otra web dentro de ella ¿es correcto?
Si esto es así lo que puedes agregar a tu página dentro del Content algo así:
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<span style="white-space: pre;"> </span><asp:Label ID="Label1" runat="server"></asp:Label>
</asp:Content>
En el archivo de código .vb o .cs algo así:
public partial class pagina: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
<span style="white-space: pre;"> </span>Label1.Text ="<iframe>......</iframe>";
}
}
Para explicarte el código:
En la página ASPX dentro del asp:Content que le corresponda al cuerpo le agregas un control de Etiqueta que recibirá el código HTML.
Luego dentro de la página de código o en la sección de código, al hacer el LOAD de la página le asignas el iFrame.
Como la Etiqueta tendrá código HTML el navegador lo interpretará como tal y mostrará el iFrame que necesitas.
Tu tienes una aplicación web que le da al usuario posibilidades de elección a través de un TreeView y cuando el usuario hace click en la opción lo envías a una página.
Esa página es una página con un Master. Page y deseas saber como mostrar contenido de otra web dentro de ella ¿es correcto?
Si esto es así lo que puedes agregar a tu página dentro del Content algo así:
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<span style="white-space: pre;"> </span><asp:Label ID="Label1" runat="server"></asp:Label>
</asp:Content>
En el archivo de código .vb o .cs algo así:
public partial class pagina: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
<span style="white-space: pre;"> </span>Label1.Text ="<iframe>......</iframe>";
}
}
Para explicarte el código:
En la página ASPX dentro del asp:Content que le corresponda al cuerpo le agregas un control de Etiqueta que recibirá el código HTML.
Luego dentro de la página de código o en la sección de código, al hacer el LOAD de la página le asignas el iFrame.
Como la Etiqueta tendrá código HTML el navegador lo interpretará como tal y mostrará el iFrame que necesitas.
Estimado edusaligari le aclaro el problema que deseo resolver:
En un Content está el TreeView y al seleccionar una opción el llama a una página en forma automática, el nombre de la página no tiene problema se puede obtenet mediante el evento click. Deseo que la página llamada se aloje en otro Content en forma dinámica; igual cómo lo hacía en VS 2003 mediante el frameset y frame.
Otra solución es resolver el problema donde VS 2008 no acepta frameset y frame una solución es mediante el siguientes DTD el cual no funciona:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
Lo ideal es tener las dos páginas al mismo tiempo y navegar a través del TreeView y las páginas llamadas, de manera de no estar saliendo y retornando al menú del TreeView lo cual es anticuado.
El TreeView está funcionando dentro del Content el problema es el resto.
En un Content está el TreeView y al seleccionar una opción el llama a una página en forma automática, el nombre de la página no tiene problema se puede obtenet mediante el evento click. Deseo que la página llamada se aloje en otro Content en forma dinámica; igual cómo lo hacía en VS 2003 mediante el frameset y frame.
Otra solución es resolver el problema donde VS 2008 no acepta frameset y frame una solución es mediante el siguientes DTD el cual no funciona:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
Lo ideal es tener las dos páginas al mismo tiempo y navegar a través del TreeView y las páginas llamadas, de manera de no estar saliendo y retornando al menú del TreeView lo cual es anticuado.
El TreeView está funcionando dentro del Content el problema es el resto.
Entiendo que por el ID del objeto presionado dentro del TreeView tu sabes la URL.
También entiendo que tu deseas embeber esa URL dentro de tu sitio web, mostrando el contenido de la otra.
¿Voy bien?
Ahora tu puedes pasar esa URL por parámetro hacia otra dentro de tu sitio algo como este ejemplo que yo mismo hice.
http://www.elportaldecastello.com/tv.aspx
Al seleccionar un canal le paso por parámetro la URL de este caso el RSS que quiero mostrar, entonces lo hago dinámico a la selección del usuario del canal de las opciones que hay.
Para leer el parámetro de la URL te bastaría hacer un Request["url"]. ToString(); y lo podrías agregar al iFrame y su propiedad SRC.
Ten en cuenta que también puedes poner el <iFrame> dentro del Content y agregarle la propiedad runat="server" para manejarlo en tiempo de ejecución y asignarle la propiedad SRC para que muestre la web.
Espero que vaya entendiéndote, si no es así sígueme preguntando hasta que le demos solución. Estoy para ayudarte.
También entiendo que tu deseas embeber esa URL dentro de tu sitio web, mostrando el contenido de la otra.
¿Voy bien?
Ahora tu puedes pasar esa URL por parámetro hacia otra dentro de tu sitio algo como este ejemplo que yo mismo hice.
http://www.elportaldecastello.com/tv.aspx
Al seleccionar un canal le paso por parámetro la URL de este caso el RSS que quiero mostrar, entonces lo hago dinámico a la selección del usuario del canal de las opciones que hay.
Para leer el parámetro de la URL te bastaría hacer un Request["url"]. ToString(); y lo podrías agregar al iFrame y su propiedad SRC.
Ten en cuenta que también puedes poner el <iFrame> dentro del Content y agregarle la propiedad runat="server" para manejarlo en tiempo de ejecución y asignarle la propiedad SRC para que muestre la web.
Espero que vaya entendiéndote, si no es así sígueme preguntando hasta que le demos solución. Estoy para ayudarte.
Estimado edusaligari me parece bien, voy a probar la solución le estoy respondiendo a la brevedad posible.
Si tu me respondes me obligas a mi ha hacerte una respuesta.
Si mi ayuda fue de ayuda finaliza la pregunta dando un puntaje.
Si no fue de ayuda me preguntas de nuevo y seguimos intentando solucionar el tema que con mucho gusto haré.
Si mi ayuda fue de ayuda finaliza la pregunta dando un puntaje.
Si no fue de ayuda me preguntas de nuevo y seguimos intentando solucionar el tema que con mucho gusto haré.
Estimado Eduardo
La demora de respuesta es por mi estado de salud por un período de 14 días, resulta que sufro de la columna "Artrosis" y tuve una recaída y sometido a fisioterapia y a la vez obtuve una gripe virosis de gran magnitud, es decir estuve en cama.
El problema fundamental es que soy un viejo de 63 años, Licenciado en Computación, ex-profesor de la Universidad Central de Venezuela y me apasiona la computación y sobre todo trabajar en .net.
Se realizó pruebas a través de mi hijo, pero no acepta el iframe ni otros marcos frame y frameset muestra un error de compilación. Creo que si resolvemos el problema de los marcos estará resuelto el programa(menú principal) en VS.net 2003.
Me gustaría que me ayudaras con las siguientes dudas o mal uso, reconozco que es algo adicional ayuda al viejo.
1) No puedo crear el dll del proyecto en VS.net 2008, mientras que en VS.net 2003 lo aloja en la carpeta bin.
2) El parámetro Page.MaintainScrollPositionOnPostBack=True no funciona el sustituye al
SmartNavigation="True"
3) El parámetro Page.PreviousPage no puedo utilizarlo la ayuda indica que se debe instar como y produce error:
Dim instance As Page
Dim value As Page
value = instance.PreviousPage
La utilización de este parémetro es para retornar a la situación actual de un TreeView y no volverlo a cargar. Estoy probando almacenando el nombre de la página después de ejecutar el If Not IsPostBack Then.
4) Al convertir de VS.net 2003 al 2008 he tenido problema con los label dentro de una tabla html
5) Qué teclas se utiliza para seleccionar varios controles para moverlos.
Le agradezco lo que pueda hacer, sinceramente deseo calificarlo y no perder su contacto debido a la buena relación.
Lic. Salvador Figuera
La demora de respuesta es por mi estado de salud por un período de 14 días, resulta que sufro de la columna "Artrosis" y tuve una recaída y sometido a fisioterapia y a la vez obtuve una gripe virosis de gran magnitud, es decir estuve en cama.
El problema fundamental es que soy un viejo de 63 años, Licenciado en Computación, ex-profesor de la Universidad Central de Venezuela y me apasiona la computación y sobre todo trabajar en .net.
Se realizó pruebas a través de mi hijo, pero no acepta el iframe ni otros marcos frame y frameset muestra un error de compilación. Creo que si resolvemos el problema de los marcos estará resuelto el programa(menú principal) en VS.net 2003.
Me gustaría que me ayudaras con las siguientes dudas o mal uso, reconozco que es algo adicional ayuda al viejo.
1) No puedo crear el dll del proyecto en VS.net 2008, mientras que en VS.net 2003 lo aloja en la carpeta bin.
2) El parámetro Page.MaintainScrollPositionOnPostBack=True no funciona el sustituye al
SmartNavigation="True"
3) El parámetro Page.PreviousPage no puedo utilizarlo la ayuda indica que se debe instar como y produce error:
Dim instance As Page
Dim value As Page
value = instance.PreviousPage
La utilización de este parémetro es para retornar a la situación actual de un TreeView y no volverlo a cargar. Estoy probando almacenando el nombre de la página después de ejecutar el If Not IsPostBack Then.
4) Al convertir de VS.net 2003 al 2008 he tenido problema con los label dentro de una tabla html
5) Qué teclas se utiliza para seleccionar varios controles para moverlos.
Le agradezco lo que pueda hacer, sinceramente deseo calificarlo y no perder su contacto debido a la buena relación.
Lic. Salvador Figuera
Lamento oír de su enfermedad, pero con valentía se sale adelante, además tenga en cuenta que viejos son los trapos.
Primero que nada le comento que yo nunca generé una DLL de mis proyectos ASP.NET, simplemente cargo la carpeta APP_CODE con los .cs o .vb y al llamar al sitio el servidor se encarga de compilar, algo que no toma mucho tiempo.
Sobre las preguntas 2 y 3 no puedo ayudarle, nunca he trabajado con esos comandos así que los desconozco, lamento no poder darle solución.
La pregunta 4 me hace preguntarle que tipo de problemas, ya que yo utilizo actualmente labels tanto HTML como de ASP y no tengo problemas, ni fuera ni dentro de la tabla, desasneme, diciéndome el error.
En la pregunta 5, utilice la tecla Control de su teclado, manteniéndola pulsada mientras hace click en los múltiples controles.
Primero que nada le comento que yo nunca generé una DLL de mis proyectos ASP.NET, simplemente cargo la carpeta APP_CODE con los .cs o .vb y al llamar al sitio el servidor se encarga de compilar, algo que no toma mucho tiempo.
Sobre las preguntas 2 y 3 no puedo ayudarle, nunca he trabajado con esos comandos así que los desconozco, lamento no poder darle solución.
La pregunta 4 me hace preguntarle que tipo de problemas, ya que yo utilizo actualmente labels tanto HTML como de ASP y no tengo problemas, ni fuera ni dentro de la tabla, desasneme, diciéndome el error.
En la pregunta 5, utilice la tecla Control de su teclado, manteniéndola pulsada mientras hace click en los múltiples controles.
Buenas tardes estimado Eduardo
Estoy trabajando con frame en vez de utilizar MasterPage, tengo cierta experiencia en .net 2003 que funcionó bien, pero en 2008 eliminaron el target en el frame.
Logré utilizarlo pero produce un error de página (error de sintaxis), haber si ueted me puede ayudar ya que estor paralizado.
1) El código anterior en 2003 desde un programa que llena un menú es el siguiente:
Response.Write("
<script runat='server' >" & vbCrLf)
Response.Write("parent.frames.Menu.location = " & Chr(34) & "GCMenuMenu.aspx" & Chr(34) & vbCrLf)
Response.Write("</script>
" & vbCrLf)
2) El código actual en .net 2008 desde un programa que llena un menú es el siguiente:
Response.Write("
<script runat='server' >" & vbCrLf)
Response.Write("<frame name='Menu' src='GCMenuMenu.aspx'/>")
Response.Write("</script>
" & vbCrLf)
Funciona una sola vez y luego produce un error desconocido
Eduardo existe un caso que me tiene mal, y es que al crar un nuevo sitio web y copio las página, estas al ejecutarla recorta el nombre del texto de los controles LABEL y TEXT. Es increíble, creo que hay que cambiar algún parámetro de la pestaña OPCIÓN.
Estoy trabajando con frame en vez de utilizar MasterPage, tengo cierta experiencia en .net 2003 que funcionó bien, pero en 2008 eliminaron el target en el frame.
Logré utilizarlo pero produce un error de página (error de sintaxis), haber si ueted me puede ayudar ya que estor paralizado.
1) El código anterior en 2003 desde un programa que llena un menú es el siguiente:
Response.Write("
<script runat='server' >" & vbCrLf)
Response.Write("parent.frames.Menu.location = " & Chr(34) & "GCMenuMenu.aspx" & Chr(34) & vbCrLf)
Response.Write("</script>
" & vbCrLf)
2) El código actual en .net 2008 desde un programa que llena un menú es el siguiente:
Response.Write("
<script runat='server' >" & vbCrLf)
Response.Write("<frame name='Menu' src='GCMenuMenu.aspx'/>")
Response.Write("</script>
" & vbCrLf)
Funciona una sola vez y luego produce un error desconocido
Eduardo existe un caso que me tiene mal, y es que al crar un nuevo sitio web y copio las página, estas al ejecutarla recorta el nombre del texto de los controles LABEL y TEXT. Es increíble, creo que hay que cambiar algún parámetro de la pestaña OPCIÓN.
He intentado leer y entender el uso del código, entiendo que seguimos en el mismo tema, al hacer click en el objeto mandarlo a otra página ¿Correcto?
Entiendo el código y no entiendo para que usarlo de esa manera, si quiero mandarlo a otra página en tiempo de ejecución al hacer click uso Response. Redirect ("GCMenuMenu.aspx") y ya no deberé usar el Frame.
Disculpa si no entiendo tu pregunta, pero es que me centré en entender por que usas así el código, amplíame más de ser necesario.
Entiendo el código y no entiendo para que usarlo de esa manera, si quiero mandarlo a otra página en tiempo de ejecución al hacer click uso Response. Redirect ("GCMenuMenu.aspx") y ya no deberé usar el Frame.
Disculpa si no entiendo tu pregunta, pero es que me centré en entender por que usas así el código, amplíame más de ser necesario.
Para poder liberarme de la pregunta activa y de esa manera poder ayudar a más personas, deberás valorar mi ayuda y CERRAR esta pregunta.
Buenas tardes Eduardo
Tengo 3 semanas enfermo de los pies dolores e inflamación el médico tuvo que consultarme en mi hogar, después de varios estudios se pronostica problemas de impertensión cardiovascular en las venas más una infección severa.
No he podido trabajar, sin embargo resolvé el problema en la cama, probando con un laptop.
A la propiedad Target del TreeView se coloca el nombre del frame y automáticamente aloja la página. El único problema es que existen páginas que no la encuentra y genera un error pero si funciona en un menu aparte con un Transfer, no entiendo el error, creo que internamente produce un Redirect.
Lo que quedó pendiente es la marcación y movimiento de varios objetos, me señalaste que se hace tradicionalmente con la tecla "Control". Esto es cierto para versiones anteriores, pero en VS 2008 no lo acepta a menos que se modifique un parámetro en la pestaña option.
Agradezco su preocupación y atención brindada a los problemas del viejito, y a su sólido conocimiento de la herramienta.
Gracias.
No te pierdas cualquier solución me la haces llegar y sigas ayudando a este humilde programador enamorado de VS.Net.
Salvador
Tengo 3 semanas enfermo de los pies dolores e inflamación el médico tuvo que consultarme en mi hogar, después de varios estudios se pronostica problemas de impertensión cardiovascular en las venas más una infección severa.
No he podido trabajar, sin embargo resolvé el problema en la cama, probando con un laptop.
A la propiedad Target del TreeView se coloca el nombre del frame y automáticamente aloja la página. El único problema es que existen páginas que no la encuentra y genera un error pero si funciona en un menu aparte con un Transfer, no entiendo el error, creo que internamente produce un Redirect.
Lo que quedó pendiente es la marcación y movimiento de varios objetos, me señalaste que se hace tradicionalmente con la tecla "Control". Esto es cierto para versiones anteriores, pero en VS 2008 no lo acepta a menos que se modifique un parámetro en la pestaña option.
Agradezco su preocupación y atención brindada a los problemas del viejito, y a su sólido conocimiento de la herramienta.
Gracias.
No te pierdas cualquier solución me la haces llegar y sigas ayudando a este humilde programador enamorado de VS.Net.
Salvador
- Compartir respuesta
1 comentario
Hola que tal tengo un problema similar, tengo Proyecto1 con masterpage.master en ASP.NET C# y proyecto2 página x.aspx, quiero cargar la página x.aspx dentro de mi masterpage.master sin que me redireccione o deje de estar en mi masterpage.master - Val DW