Добавить веб-часть на страницу sharepoint в разметке aspx - PullRequest
1 голос
/ 17 февраля 2009

У меня есть страница aspx, которая копируется в каталог раскладок установки Project Server. Aspx - это страница веб-части, которая имеет зону веб-части. Как добавить веб-часть в разметку страницы в зоне веб-части?

Ответы [ 2 ]

6 голосов
/ 17 февраля 2009

Вы можете использовать диспетчер SPLimitedWebPart для добавления экземпляра веб-части во время выполнения. Я делаю это на наших личных сайтах, чтобы контролировать добавление, удаление и перемещение веб-частей, необходимых организации. Вы можете поместить код на странице 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);
}

Вам может потребоваться сделать что-то другое, чтобы получить доступ к диспетчеру веб-частей для страницы макетов. После этого вам нужно перенаправить обратно на страницу для отображения изменений. Вам также нужно сохранить битовое значение, чтобы гарантировать, что вы не выполняете действие при каждом последующем посещении.

Если вам нужно сделать это только один раз, я мог бы порекомендовать PowerShell.

В противном случае вы можете добавить веб-часть непосредственно в MarkUp, зарегистрировав тег:

<%@ Register TagPrefix="ABC" Namespace="Namespace" Assembly="Assembly" %>

и прямое добавление веб-части,

<ABC:ClassName ID="ControlID" FrameType="None" runat="server" __WebPartId="YouWebPartGUID" WebPart="true" />

но мы не делали этого внутри веб-зоны, потому что не хотели разрешать его удаление, поэтому я не знаю, работает ли он в этом сценарии. Это проще всего, но не требует какой-либо настройки, и SharePoint на самом деле не «знает» о веб-части.

3 голосов
/ 18 февраля 2009

Вы не можете иметь настраиваемые страницы веб-частей в каталоге раскладок! Это поддерживается только на страницах веб-частей, хранящихся в библиотеке документов или другой папке на SPWeb, то есть файлах ASPX, на которые можно получить ссылку на SPFile. Веб-части на страницах ASPX в каталоге раскладок необходимо добавить в качестве веб-элементов управления в источнике ASPX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...