Problema al abrir página nueva desde hyperlink asp.net

%2f%2f%2fMuy buenas, mi duda es la siguiente:
Supongamos que tengo Pagina1.aspx y Pagina2.aspx y utilizo C#
Pagina1.aspx recibe como parámetro num_doc
ejecuta una serie de acciones en el Page_Load que no vienen al caso y crea unos hyperlinks, donde asocia dinamicamente los enlaces y los parametros, algo del tipo
hipervinculo.OnClientClik = "AbreVentana(\"Pagina2.aspx?num_doc=1\")";
Y después se añade el hipervínculo a la página.
AbreVentana(url) es una función que está en un script escrito en javascript del tipo
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<script>
function AbreVentana(url) 
{
    window.open(url, "Mostrar Documento", "toolbar=no,menubar=no,directories=no,status=no,resizable=no,location=yes,scrollbars=yes,Width=300,Height=500");
}
</script>
<form id="form1" runat="server">
<div id="MiDiv1" runat="server" align="center">
        </div>
</form>
</body>
En la sección Body, como se puede ver. Bien, esta solución me ha funcionado sin problemas desde otras páginas.
PERO, utilizándola por ejemplo desde Pagina3.aspx para redireccionar a Pagina2.aspx, no me funciona.
Pagina3.aspx recibe un parametro del tipo "-----/---/---////", cuando pincho en el hipervinculo lo único que sucede es que en la url se cambia el parametro a algo como:
"-----%2f---%2f---%2f%2f%2f%2f" y no abre ninguna ventana nueva, he probado a incluir dentro del script un alert mostrando la url, el script se ejecuta, se muestra el alert y saca el mensaje "Pagina2.aspx?num_doc=1", es decir, recibe bien el parametro y es accesible, pero al ejecutar window. Open(url...) es como si hiciera un refresh de la página mostrando el parámetro en formato hexadecimal. He probado a situar el script en la seccion Head, y tampoco funciona. He comprobado mil veces la url para estar seguro que no se redirecciona a la misma página.
Se que es un caso un tanto peculiar y extraño.

1 respuesta

Respuesta
1
Lo he leído detenidamente, sólo se me ocurre que en esa página tengas otro error javascript que impida que se ejecute el window. Open, supongo que lo habrás comprobado ya pero es una pista a seguir.
Añado más información del problema. Desde la página donde agrego dinámicamente el hipervínculo NO funciona el comando window.open... he probado a abrir una ventana vacía, sin pasar parámetro ni nada... y se sigue comportando igual...
hipervinculo.OnClientClik = "AbreVentana(\"PaginaVacia.aspx\")"; 
Saludos y gracias
Bueno, al final he implementado una solución alternativa que consiste en vez de mostrar los datos en una página nueva, los muestro en la misma página, pero como dato curioso, agrego hipervínculos en los datos mostrados, que me abren otra ventana y sí funciona... :P
Tengo una pregunta más respecto a estos hipervínculos, bien, mi caso de uso viene siendo algo como:
1º) Busco documentos, desde la "Pagina1.aspx"
2º) Muestro los documentos en la "Tabla 1". Y doy opción de ver más información acerca de ellos
3º) Si se elige ver más información, muestro el documento solicitado en la "Tabla 2", en la actual página con sus correspondientes hipervínculos. (Por tanto en la "Pagina1.aspx" tengo dos tablas)
4º) Si hago click en el hipervínculo, se abre una NUEVA ventana mostrando una foto
Mi problema ahora es: cuando cierro esa NUEVA ventana, en la "Pagina1.aspx" la
"Tabla 2" ha desaparecido, es decir, si quiero volver a ver los datos de ese documento tengo que ir a la "Tabla 1" volver a hacer click en el botón correspondiente etc... eso es un engorro que desearía evitar pero no se como... asique agradecería su ayuda de nuevo
Gracias por las molestias
Saludos
Parece que estás recargando la página cuando le das al enlace de la nueva ventana, ¿es un simple hypervínculo o se trata de un imagebutton?
LinkButton hipervinculo = new LinkButton();
hipervinculo.OnClientClick = "AbreVentana(\"MostrarFotos.aspx?num_doc=" + num_documento + "\")";
Viéndolo bien, no es solo un hipervínculo, es un LinkButton. ¿Cómo sería la solución? ¿Cómo declararía un hipervínculo? Y cómo, estando como está, (¿siendo linkbutton) haría para que no despareciese la tabla?
Gracias
Saludos
Al ser un linkbutton te está recargando la página por eso te desaparece la tabla, pon un hypervínculo normal:
http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.hyperlink.aspx
Con esto te aseguras que simplemente hará la redirección.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas