Desarrollando una web en Sharepoint 2010 me encontré con el siguiente problema:
Creé una lista de solicitudes en la raíz de la colección de sitios para que los usuarios anónimos pudiesen rellenar la información necesaria y enviarla desde la misma web (a modo de formulario).
La web era multi-idioma, y el formulario debía aparecer en un subsitio en concreto.
Bien, no había manera de hacer referencia a una lista que estaba situada en la raíz desde una página ubicada en un subsitio de la colección.
Ahí va la solución:
1. Crear una página .aspx en la raíz (biblioteca de páginas).
2. Desde SharePoint Designer, en el menú, hacer clic en: Insertar –> Formulario de nuevo elemento – > Formulario de lista personalizada.
3. Estos pasos crean un DataFormWebPart. Debe copiarlo y pegarlo en la página del subsitio en la que desea que esté el formulario.
4. Localizar el tag “SharePointWebControls:SPDataSource” y dentro de éste, en el tag “<SelectParameters>” añadir el parámetro siguiente:
<WebPartPages:DataFormParameter Name="WebURL" ParameterKey="WebURL" PropertyName="ParameterValues" DefaultValue="/"/>
Es decir, quedaría de la siguiente forma:
<SelectParameters><WebPartPages:DataFormParameter Name="WebURL"…
A partir de este momento el DataFormWebPart, sabe que la localización de la lista está en la raíz de la colección de sitios, y se muestra el formulario sin más problemas.