CLR: .Net / Mono / Boo / Otros CLR > ASP .NET

 Hipervinculo Opcional

<< < (2/3) > >>

uXeLL:
Bueno como dice Jack el Destripador..vamos por partes   :rolleyes:
lo primero, como ocultamos una capa? facil, codigo al canto:

--- Código: Text --- &#60;html&#62;&#60;head&#62;&#60;script language=&#34;javascript&#34;&#62;function f_desaparecer(){document.getElementById('capa').style.visibility='hidden'; }&#60;/script&#62;&#60;/head&#62; &#60;body&#62;&#60;div id=&#34;capa&#34;&#62;&#60;input type=&#34;button&#34; id=&#34;boton&#34; name=&#34;boton&#34; value=&#34;pulsa&#34; onclick=&#34;f_desaparecer();&#62;&#60;/div&#62;&#60;/body&#62;&#60;/html&#62; Esto simplemente oculta el boton cuando hacemos click.

Si hasta aqui has comprendido pasamos al siguiente punto  :smartass:

Simplemente con pasar el valor del <%# DataBinder.Eval(Container.DataItem, "Link3") %> a una funcion javascript y dependiendo de si hay enlace o no ocultamos dicha capa,como? tranqui, ejemplo:

--- Código: Text --- &#60;asp:HyperLink id=&#34;Hyperlink5&#34;runat=&#34;server&#34; Text=&#34;Cuñao&#34;  NavigateUrl=&#34;javascript:f_ocultaenlace('&#60;%# DataBinder.Eval(Container.DataItem, &#34;Link3&#34;) %&#62;');&#34; &#62; 
--- Código: Text ---function f_ocultaenlace (enlace){if enlace=''{document.getElementById('capa').style.visibility='hidden';} } 
Esto lo he hecho rapido osea que algun fallito tiene que tener, mayusculas,comas,comillas,etc...pero vamos lo esencial esta explicado

PD: si no sirviera con el webcontrol HyperLink,cosa que no he probado, hazlo con un hipervinculo html simple,bueno eso suponiendo que no hagas nada raro con los enlaces mas que mostrarlos....

PD2:Tu nombre me suena y no sé de qué, consumes Nestea en grandes dosis??
 :whistling:    :D

Moy:
Tiene toda la pinta de que podría funcionar... pero falla y por una vez creo saber por qué (algo es algo, desde que estoy con ASP el programa me revienta cada 2 por 3 y no tengo ni puñetera idea de por qué motivo. El que no se consuela es porque es tonto.)

Este trozo de código

--- Código: Text --- &#60;asp:HyperLink id=&#34;Hyperlink5&#34;runat=&#34;server&#34; Text=&#34;Hermano Político&#34;  NavigateUrl=&#34;javascript:f_ocultaenlace('&#60;%# DataBinder.Eval(Container.DataItem, &#34;Link3&#34;) %&#62;');&#34; &#62;  hace reventar la aplicación con el mensaje: Etiqueta de servidor incorrecta
Por lo visto cuando llega el turno de cargarse al NavigateUrl este se encuentra con que en vez de una direccion Http como diox manda, lo que tiene es un fuerte chorizo de javascript que ni es direccion ni es nada.
He preguntado a un compañero y en el caso de que la función javascript devolviese la misma direccion que le entra tampoco sería una solución, ya que el código asp se ejecuta antes que cualquier javascript.

Hm... La funcion javascript podría funcionar e incluso podría añadirle otro parametro que sería el nombre de la capa que quiero ocultar (porque son varias y así ahorro codigo). Si pudiera llamarla dentro del Repeater cuando está a punto de cargar la capa, pero sin meterla dentro del hipervinculo para no volverlo loco, podría funcionar. ¿Cómo podría hacerlo?

No sé si algun día podré ganarme la vida con la programación; pero de buen seguro que no será gracias a mi pericia con el ASP.Net

PD: Increible... Mi aficcion al Nestea traspasa fronteras. :blink:

uXeLL:
Esto pasa por las prisas  :P. Yo no he probado nada de lo que te he dicho  :whistling:

--- Citar ---He preguntado a un compañero y en el caso de que la función javascript devolviese la misma direccion que le entra tampoco sería una solución
--- Fin de la cita ---
Seguro? vaya si es asi me has pillado.Tiene su sentido... Uno es un lenguaje que se ejecuta en el servidor y otro en el  cliente.

De todas formas,ahora mismo pensando detenidamente, la función porque no la hacemos en ASP.NET?? solucionaria el problema.La funcion miraria el resultado del enlace y ocultaria la capa,eso es simple pero date cuenta de que la capa debes convertirla en un control de servidor.


--- Código: Text ---&#60;asp:HyperLink id=&#34;Hyperlink5&#34;runat=&#34;server&#34; Text=&#34;Hermano Político&#34;  NavigateUrl=&#34;f_ocultaenlace('&#60;%# DataBinder.Eval(Container.DataItem, &#34;Link3&#34;) %&#62;');&#34; &#62; 
En codebehind harias la función.

PD:Si que traspasa y tu salvapantalla estilo Matrix tb  :rolleyes:

Moy:
Ay, avezado... ¿Tú estás seguro de que se puede hacer la barrabasada de pasarle una función (del lenguaje que sea) a una propiedad que espera un Hyperlink sin que el compilador te escupa en la cara?
Lo digo porque no hay manera de que a mi me lo acepte.
Hasta que no vea una página en la que esté funcionando esa técnica no me lo creeré. :no:

Mientras tanto voy a poner el fondo de la pantalla en negro para que si el link está desactivado no se vea; pero eso no es muy elegante que digamos. <_<

¿La función OcultaDeUna****Vez en ASP debería ser asi?

--- Código: Text --- Function OcultaDeUna****Vez(ByVal Enlace As Object, ByVal url As String)        If url = &#34;&#34; Then            Enlace.Visible = False        End If        Return url    End Function  Entonces en el hyperlink habría esto.

--- Código: Text --- &#60;asp:HyperLink Font-Name=arial Font-size= 10pt id=&#34;HyperCuña&#34; runat=&#34;server&#34; Text=&#34;Cuña&#34; Target=&#34;_blank&#34; NavigateUrl='OcultaDeUna****Vez(HyperCuña,&#34;&#60;%# DataBinder.Eval(Container.DataItem, &#34;Link3&#34;) %&#62;&#34;)'&#62;&#60;/asp:HyperLink&#62;  Si a alguien le funciona eso que me avise, porque a mi no me va ni a tiros. :fire:
Lo que hace es mostrarme un link activado con esta direccion:
OcultaDeUna****Vez(HyperCuña,"<%# DataBinder.Eval(Container.DataItem, "Link3") %>")

PD: Ahora si que sé quien eres. El otro día por MSN confundí a Cachopan contigo. ^_^

uXeLL:
:blink: Hereje!!! estas perdiendo la poca fé en la programación!! venga ahora mismo te lees el codigo ascii al revez
Como te he dicho no me responsabilizo de las comas,puntos,etc por la prisa.....  :P  

--- Citar ---Lo que hace es mostrarme un link activado con esta direccion:
OcultaDeUna****Vez(HyperCuña,"<%# DataBinder.Eval(Container.DataItem, "Link3") %>")
--- Fin de la cita ---
Pues claro xavalín,que esperabas si le pasas una cadena?
Valee  :rolleyes: !!  fue fallo mio,lo correcto es esto:

--- Código: Text ---&#60;asp:HyperLink Font-Name=arial Font-size= 10pt id=&#34;HyperCuña&#34; runat=&#34;server&#34; Text=&#34;Cuña&#34; Target=&#34;_blank&#34; NavigateUrl='&#60;%# OcultaDeUna****Vez(DataBinder.Eval(Container.DataItem, &#34;Link3&#34;) %&#62; '&#62;&#60;/asp:HyperLink&#62; y esto si funciona!!enga hombre faltaria más!! :P
Vale pensando más detenidamente y con tiempo de probar,aqui esta tu solucion :

--- Código: Text ---&#60;div id=&#34;capa&#34; runat=&#34;server&#34; style='&#60;%# f_houdini(DataBinder.Eval(Container.DataItem, &#34;Link3&#34;)) %&#62;'&#62;     &#60;asp:HyperLink ID=&#34;HyperCuñao&#34; Runat=server NavigateUrl='&#60;%# DataBinder.Eval(Container.DataItem, &#34;Link3&#34;) %&#62;'&#62;jodido link&#60;/asp:HyperLink&#62; &#60;/div&#62; y en Codebehind:

--- Código: Text ---Public Function f_houdini(ByVal url As String)        If url = &#34;&#34; Then            Return &#34;visibility:hidden&#34;        End IfEnd Function  Las explicaciones sobrán... :smartass:  Esta probado,osea que sino no te funciona será o por que me he vuelto a equivocar con las comas,puntos,etc o por que algo haces mal  :whistling:
PD:Me has pillado!! :nosweat:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa