redirect - Redirigir al receptor del evento Sharepoint 2010
sharepoint-2010 (1)
No estoy seguro si entiendo tus requisitos correctamente. Pero lo intentaré. Solo un resumen rápido de lo que entendí (corrígeme si estoy equivocado ...):
- Tiene una Web raíz en una colección de sitios con una lista
- Cada entrada en esa lista corresponde a un subsitio que se creará en la Creación de elemento de lista (ER) debajo de la Web raíz como un subsitio
- Los elementos de la lista se pueden editar tanto desde la lista en la web raíz como desde el subsitio al que se asigna.
- En la edición desde el subsitio que desea volver al subsitio después de guardar
Mi enfoque sería este:
- Siga los pasos que se describen en este artículo SP Diálogo y formularios de lista
- Abra un diálogo en el subsitio que enlaza con la forma de edición de la web raíz.
- Después de guardar, el usuario ya se encuentra donde debería estar
Espero que esto ayude ... ¡Saludos!
Editar: solo lee el requisito sobre el cambio de URL. Cree un formulario de edición personalizado que mejore con algunos js que devuelva los valores al sitio de origen -> Parámetros en los cuadros de diálogo . A continuación, puede reaccionar en consecuencia en la devolución de llamada de javascript y redirigir a la nueva url.
Estoy viendo un código que ha roto el guardado de cambios de un elemento de la Lista en SP2010. En el constructor del Receptor de eventos, el HttpContext se almacena como una variable local, luego en la Actualización de elementos, al final se recupera un parámetro de consulta que contiene la URL de retorno y se pasa el SPUtility.Redirect (...). Esto tiene el efecto de cancelar cualquier cambio que se haya realizado en el formulario de edición. Entonces, siguiendo los escenarios que he encontrado en línea, estoy almacenando el HttpContext como un objeto de clase estático y redireccionando en el evento ItemUpdated , y las ediciones ahora se conservan, seguidas de un redireccionamiento a donde estamos esperando.
Sin embargo, me preocupa guardar un HttpContext de un usuario específico como estático en una clase que potencialmente se secuestrará si otro usuario realiza la misma acción entre el momento en que el usuario 1 establece el contexto inicialmente y antes de la redirección. El usuario 2 sobrescribirá el contexto y hay posibles problemas.
La única otra opción que puedo pensar como una salida rápida sería almacenar un diccionario estático donde la clave es la identificación del usuario y luego eliminar la entrada justo antes de redirigir para no dejar pérdidas en las instancias perdidas de HttpContext.
Entonces, al observar la solución aceptada desde aquí, la primera respuesta de servy42 indica que The fact that it works for a few trivial test cases at first doesn''t make it a viable solution.
pero no sugiere una solución viable.
Hay otra opción El best approach may be changing Save Button in ribbon such that when clicked, a ECMA script first save your Item, then redirect to other page, or open other page in dialog.
sugerido más abajo pero ¿es esa la única otra manera de ir?
Soy bastante nuevo para SP y solo estoy tratando de navegar a través de la riqueza de formas incorrectas de hacer las cosas con mi conocimiento limitado, mientras que lamentablemente estoy atascado con SP2010.
¿Alguna idea de cómo hacerlo?
============
Editar: más información según lo solicitado
Así que hay dos sitios, uno llamado A, que tendrá un sitio secundario llamado B. A tiene una lista y agregar un elemento a esa lista activa receptores de eventos que crean el sitio secundario B y otras cosas relacionadas. Si modifico el "elemento" B de la lista de B de SharePoint, entonces no es necesario redirigirlo y volver a la lista está bien. Si estoy buscando y un gráfico de Gantt pulcramente renderizado en la lista A de A, si edito B luego de hacer clic en Guardar necesitamos regresar a A. Si estoy en B, también hay un botón de edición, así que quiero volver a B después de editar y hacer clic en guardar.
Así que tenemos la fuente = añadida cuando vamos a la pantalla de edición. De alguna lectura que he hecho, parece que SharePoint lo detectará y redirigirá. Uno de los campos en la página de edición es la url relativa debajo del sitio A y, si eso cambia, la url de redirección ya no será válida y arrojará un 404, por lo que reemplazamos el antiguo subespacio B con el nuevo valor ingresado. Pero luego necesitamos un código para redirigir a la nueva ubicación.