Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Pasar variables por hyperenlace (http://www.forosdelweb.com/f29/pasar-variables-por-hyperenlace-107572/)

lewzip 16/12/2002 16:03

Pasar variables por hyperenlace
 
Hola a todos! Estoy desarrollando una aplicacion WEB en .NET pero tengo un problema con el control web hyperlink, sucede que quiero enviar variables de un pagina a otra, ya me habia funcionado dentro de un datalist, pero ahora, que lo prueba directamente (sin anidar) las variables no son cargadas.... y no se porke?

Esta es el problemas
<TD align="middle"><asp:hyperlink id=Hyperlink2 Font-Size="Medium" Font-Bold="True" Font-Names="Arial Narrow" Font-Underline="True" Font-Overline="True" NavigateUrl='<%Doc_clase.aspx" + "?Id=" + id_area + "&" + "nom_area=" + nom_area%>' Target="_self" Runat="server">Clases</asp:hyperlink></TD>

Donde las variables son pues "id_area" y "nom_area" pero estas no son visualizadas cuando paso el puntero sobre el hyperlink (en runtime), y no se porke no las reconoce....

Gracias anticipamente.... :-)

misitioweb 17/12/2002 12:09

Hola...

La verdad nosé porque no funciona, pero podrias intentarlo así.... no agregues nada en la propiedad NavigateURL. Escribe codigo para que en el evento load de la pagina se establezca esta propiedad:

Private Sub Page_Load()
Hyperlink2.NavigateUrl = "Doc_clase.aspx?Id=" & id_area & "&nom_area=" & nom_area
End Sub

Yo creo que con esto si debe de funcionar.....

Saludos....

jlchavez 18/12/2002 15:23

Este es un control de servidor por lo que lo lee el servidor y lo intenta interpretar, al colocale NavigateURL = "<% %>" tratas de colocar código que no se computara.

En este caso debes hacer algo así:

<script runat="server" language="C#">
int idarea = 0;
string nom_area="nombre";
</script>

<asp:hyperlink id=Hyperlink2 Font-Size="Medium" Font-Bold="True" Font-Names="Arial Narrow" Font-Underline="True" Font-Overline="True" NavigateUrl='<%# "Pagina.aspx?id="+idarea+"&nom_area"+nom_area %>' />

Si tienes definido un .cs (o .js o .vbs) diferente como codebehind, entonces solo tendras que definir, algo como: (ejemplo en c#)

/// Archivo.cs
namespace MiSitio
{
public class PaginaA
{
private int idarea;
private string nom_area;

private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
idarea = 25;
nom_area = "otra area";
}
}
}
}

y en la página:

<%@ Page Language="C#" inherits="MiSitio.PaginaA" codebehind="archivo.cs" %>
<asp:hyperlink id=Hyperlink2 Font-Size="Medium" Font-Bold="True" Font-Names="Arial Narrow" Font-Underline="True" Font-Overline="True" NavigateUrl='<%# "Pagina.aspx?id="+idarea+"&nom_area"+nom_area %>' />

Esta son las formas más sanas de hacerlo.


La zona horaria es GMT -6. Ahora son las 09:02.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.