Problemas con <%# %> y <%= %>

Los problemas aparecen donde menos lo piensas, hasta en las cosas que parecen mas simples.

Actualmente estoy haciendo un pequeño modulo para DotNetNuke, yo programe en este framework cuando era allaaaa la version 2.x, ahora prácticamente estamos en la versión 5.x, recordar como hacerlo me llevo un poco de tiempo fundamentalmente por que cambiaron algunos temas estructurales, pero reitero, no es mi problema el cambio que sufrió la arquitectura de DNN, mas al contrario lo que me trajo problemas fue una cosilla que no tenia sentido.

Necesitaba crear un link entre dos controles ascx, cosa trivial cuando manejamos paginas, simplemente, la idea en DNN es crear la URL con una función llamada NavigateURL, de la siguiente manera:

DotNetNuke.Common.Globals.NavigateURL(PortalSettings.ActiveTab.TabID, key, "mid=" + ModuleId.ToString());

El parámetro key es el mas importante y esta definido en la definición de módulos, como se muestra en la captura a continuación.

image

Mi idea era crear links mediante un control Hyperlink, desechando inicialmente al buen LinkButton, pensando que la URL seria simple de armar, pero craso error cuando coloque esta linea:

<asp:HyperLink ID="HyperLink1" NavigateUrl='<%# DotNetNuke.Common.Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "NewQuestion", "mid=" +ModuleId.ToString()) %>’ runat="server">Click Here!</asp:HyperLink>

En la pagina que se generaba el href ni siquiera aparecía, entonces me percate que estaba utilizando los el método de binding <%#……%> con el mendigo # (numeral) entonces siguiendo mis instintos utilice <%= %>, en esta ocasión si aparecía el href, pero era como si concatenase la url con lo que se encontraba después del =.

Recurrí a varios foros con una frustración creciente, cuestionando inclusive mi certificación en desarrollo web y en casi todos ellos me hicieron percatar que no existe forma de hacer lo que quería, al menos no de manera declarativa (a no ser que alguien en esta comunidad diga lo contrario) lo que se me recomendó es colocar la asignación a la propiedad en un evento Load, así como lo muestro:

btnPropose.NavigateUrl = NavigateURL(PortalSettings.ActiveTab.TabID, "NewQuestion", "mid=" +ModuleId.ToString())

En fin…..

Una respuesta a “Problemas con <%# %> y <%= %>”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *