martes, 10 de diciembre de 2013

Cómo redirigir a una página de nuestro site desde una webpart sandboxed solution.

Uno de los inconvenientes y limitaciones que tenemos en una webpart que se 'deployara' como Sandboxed solution es que no tenemos privilegios para utilizar el Response.Redirect() y tampoco el ScriptManager (nos impide llamar a un script desde servidor).

El único truco que me sirvió para re-dirigir a una página fue este:

Primero tenemos que crear un control asp:Literal en nuestra .acsx

<asp:Literal ID="litRedirect" runat="server" />

Lo segundo que tendremos que hacer, desde codebehind, sera añadirle al atributo text un script que tenga simplemente un location.href.

SPWeb web = SPContext.Current.Web;
string url = web.Url + "/Lists/TuLista/AllItems.aspx";
litRedirect.Text = "<script type='text/javascript'>top.location.href = '"+url+"';</script>";

Bueno yo aquí hago un top.location.href=""; porque quería re-dirigir desde un popup, y sharepoint es tan listo que si haces un windows.location, te abre otro popup con la url.

Parece una tontería pero a mi me llevo rato saber el porque me abría la url en otro popup.

Espero que os haya servido.

Saludos.





No hay comentarios:

Publicar un comentario