martes, 25 de mayo de 2010

Resolviendo correctamente URL con apostrofes en elemento Web de SharePoint

Recientemente tuve que resolver un problema con URL.  El caso es el siguiente:

Un cliente esta acostumbrado a utilizar el apostrofe en el nombre del sitio y como es el mimo que utiliza para crear el URL en SharePoint entonces el GridView tenía un ItemTemplate dentro del el un LinkButton que tenía en la propiedad URLPostBack un Bind(‘URL’)

Algo como esto:

<asp:LinkButton id=”Enlace” runat=”server” URLPostBack=”<%# Bind(‘URL´)%>” />

Pero ASP.Net realiza un Encode del valor desplegado en el control y estaba convirtiendo el Apostrofe (‘) en una diagonal Apostrofe(/’). Entonces el IIS lo interpreta como otro sitio después de leer la diagonal y por consiguiente no encontraba la dirección. 

Si manualmente quitábamos la diagonal adicional el sitio era encontrado.

Solución:

Agregue el atributo ToolTip al control LinkButton agregando allí el Bind(‘URL’) y agregue el evento OnClick. 

 

<asp:LinkButton id=”Enlace” runat=”server” ToolTip=”<%# Bind(‘URL´)%>” OnClick=”Enlace_OnClick”/>

 

Del lado del servidor este fue el código que escribí:

protected void Enlace_OnClick(object sender, EventArgs e)

{

      LinkButton enlace = sender as LinkButton;

      if(enlace != null)

      {

             Response.Redirect(enlace.ToolTip,true);

      }

}

Y eso fue todo ya no altera el apostrofe incorrectamente y el sitio se abre correctamente.

Code4Fun!,

Manolo Herrera

No hay comentarios.: