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