asp.net - para - ebook gratis
Agregue la parte web a la página sharepoint en el marcado aspx (2)
Tengo una página aspx que se copia en el directorio de diseños de una instalación de Project Server. El aspx es una página de parte web que tiene una zona de parte web. ¿Cómo puedo agregar un elemento web en el marcado de la página, dentro de la zona de elementos web?
¡No puede tener páginas de elementos web personalizables en el directorio de diseños! Esto solo se admite en páginas de elementos web almacenadas en una biblioteca de documentos u otra carpeta en un SPWeb, es decir, archivos ASPX a los que puede obtener una referencia de SPFile. Los elementos web en páginas ASPX en el directorio de diseños deben agregarse como controles web en la fuente ASPX.
Puede usar el administrador SPLimitedWebPart para agregar una instancia de un elemento web en tiempo de ejecución. Hago esto en nuestras MySites para controlar agregar, eliminar y mover elementos web que la organización requiere. Puedes poner el código en la página aspx.
SPFile thePage = currentWeb.RootFolder.Files["default.aspx"]
using (Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager spLimitedWPManager = thePage.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared))
{
Assembly assembly = Assembly.Load("WebPartAssemblyName");
WebPart webPart = (WebPart)assembly.CreateInstance("WebPartClassName");
spLimitedWPManager.AddWebPart(webPart, ZoneId, ZoneIndex);
}
Es posible que deba hacer algo diferente para obtener acceso al Web Part Manager para su página de diseños. Después de esto, debe redirigir a la página para mostrar los cambios. También querrá almacenar un valor de bit para asegurarse de no realizar la acción en cada visita posterior.
Si solo necesita hacer esto una vez, entonces podría recomendar PowerShell.
De lo contrario, puede agregar el elemento web directamente en MarkUp registrando la etiqueta:
<%@ Register TagPrefix="ABC" Namespace="Namespace" Assembly="Assembly" %>
y agregando directamente la parte web,
<ABC:ClassName ID="ControlID" FrameType="None" runat="server" __WebPartId="YouWebPartGUID" WebPart="true" />
pero no lo hicimos dentro de una zona web porque no queríamos que se eliminara, así que no sé si funciona en ese escenario. Esto es más fácil pero no permite ninguna personalización y SharePoint realmente no "sabe" sobre el elemento web.