Как добавить веб -часть на все страницы на сайте SharePoint?
-
16-10-2019 - |
Вопрос
Я использую SharePoint Server 2007 Enterprise с Windows Server 2008 Enterprise, и я использую шаблон Publishing Portal. Я разрабатываю с помощью VSTS 2008 + C# + .NET 3.5.
Я хочу знать, как добавить веб -части на все страницы сайта SharePoint?
Какие -либо эталонные образцы?
Я хочу использовать эту веб -часть для отображения некоторой общей информации (но информация может измениться динамически, и именно поэтому я выбираю веб -часть) на всех страницах.
Решение
Эта информация динамически не означает, что вы должны использовать веб -части.
Используйте веб -части, когда вы
- Требуется дизайнер/участник, чтобы изменить функциональность по умолчанию, добавляя веб -частями или изменение свойств на веб -частях без необходимости вовлечения разработчика
- Имейте особую причину, например, использование его в качестве веб -частей фильтров, подключенных веб -частей, кэширования и т. Д.
Для того, что вы делаете, я бы вместо этого рекомендовал использовать обычный пользовательский веб -управление ASP.NET.
В зависимости от требований это может быть размещено на главных страницах или на страницах макета.
Вы также можете разработать управление делегатом, который дает вам большую гибкость для добавления новых элементов управления и иметь различное поведение на разных уровнях структуры сайта.Подробнее о управлении делегатами
HTH Anders Rask
Другие советы
Я думаю, что веб -часть будет работать в любом случае, потому что веб -частя - это просто более продвинутый веб -контроль. Я бы сделал это один из двух способов:
- Добавьте его на главную страницу или макет страницы с помощью SP Designer.
- Добавьте его на каждую страницу программически, используя функцию
Я бы ни был, если вам нужно существовать веб -части, где нет зоны веб -частей. Вам нужно будет внести изменения в каждый другой экземпляр главной страницы или макета страницы, в котором вы захотите включить контроль. У большинства людей есть только одна главная страница, так что это может быть легкой победой.
2 ограничивает вас только страницами, на которых есть зоны веб -части. Помните, что добавление веб -части программически требует, чтобы его добавляли в зону.
Код для добавления веб -части выглядит так:
ContentEditorWebPart webpart = new ContentEditorWebPart();
webpart.ChromeType = PartChromeType.TitleOnly;
webpart.Title = "Content Editor";
XmlDocument xmlDoc = new XmlDocument();
XmlElement xmlElement = xmlDoc.CreateElement("MyElement");
xmlElement.InnerText = "My Text";
webpart.Content = xmlElement;
using (SPLimitedWebPartManager mgr = web.GetLimitedWebPartManager(pageUrl, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared))
{
try
{
mgr.AddWebPart(webPart, "MiddleLeftZone", 0);
}
finally
{
if (mgr != null &&
mgr.Web != null)
{
mgr.Web.Dispose();
}
}
}
Есть два способа сделать это в зависимости от вашей ситуации.
Если сайты уже существуют, вам необходимо обратить внимание на сайты, добавив веб -часть:
http://blogs.msdn.com/tconte/archive/2007/01/18/programmaly-adding-web-parts-to-a-page.aspx
Если сайтов не существует, вы можете добавить веб -часть в шаблон сайта:
https://stackoverflow.com/questions/234302/how-to-add-a-web-part-page-to-a-site-definition