Cuando creamos un nuevo elemento (NewForm.aspx) en las listas por defecto sharepoint nos redirecciona al Source, es decir la pagina que nos envió al NewForm.aspx, pero no podemos ir a la pagina de Display o Edit del elemento que acabamos de Rellenar.
Objetivo:
Insertar un nuevo elemento y saltar a la pagina de edicion del mismo.
Estrategia:
Ingredientes:
Una pagina ASPX que creemos nueva y la llamamos RedirectToNew.aspx , junto a la newForm.aspx de la lista sharepoint.
Un parámetro que recoge el Logon_USER de las Server variables
Un trocito de javascript
Receta:
Para hacer esto nos basta con ordenar descendentemente por Id y limitar la lista a un elemento, sin olvidar filtrar por usuario no sea que nos salte a otro elemento que acabe de crear un compañero.
Vamos a construir un javascript con parámetros que se ejecute al cargar la pagina y nos redireccione al Editform.asxp o al DispForm.aspx del nuevo elemento que acaba de crear.
Truco:
Yo suelo dejar la pagina en blanco al completo, o pongo una animación de cargando y ni se nota.
Más trucos:
A la gente le gusta hacer workflows pero yo si puedo los evito, sobre todo si son muy simples.
Podemos usar esta página de salto para hacer recálculos, ajustar totales de otra lista que necesite refrescarse, o redireccionar a otro lugar que necesitemos cuando se cumpla una condición
Para filtrar por usuario usamos un parameter, hay otras formas de hacer esto pero yo prefiero convertir todo a mayúsculas (con el translate) para evitar problemas.
<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[translate(@Propietario,$lcletters,$ucletters) = translate($UID,$lcletters,$ucletters)]"/>
<script language="javascript" type="text/javascript">
document.location.href='DispForm.aspx?ID='+ <xsl:value-of select="@ID" />;
</script>
Si quieres redireccionar al Edit puedes hacerlo reemplazando DispForm.aspx por EditForm.aspx
Por ultimo solo hay que tocar el boton del NewForm.aspx poniendo en lugar de "redirect to source", que redireccione a la pagina de salto de esta forma.
Buenas,
ResponderEliminar¿que tal? Me parece muy interesante tu articulo, y se asemeja bastante a la necesidad que tengo ahora mismo...Necesito que al ver la pantalla Aprobar/Rechazar tarea de un WF (la propia de MOSS), y en la que te aparece un vinculo al DispForm del ID del item de la tarea. En vez de ir al Dispform, se redireccione a otra pagina, cogiendo un valor tipo URL, que aparece en el item...No se si me he explicado bien...
No he logrado conseguirlo...
Gracias ;)