Закрепление терминов в наборах терминов навигации в SharePoint с помощью кода
Узнайте, как использовать код, чтобы закрепить термины в наборах терминов навигации.
В разделе Создание таксономии фиксации это возможность подключать терминов в целевой. В SharePoint введено закрепление терминов. Закрепленные терминов так же, как условие, которое используется повторно, за исключением того, как он доступен только для чтения и не может изменяться в расположение, где используется термин.
В управляемой навигации SharePoint API позволяет закреплять новые или существующие термины в объекте NavigationTermSet . В Microsoft SharePoint Server 2010 пользователи могли бы повторно использовать условия (и всех вложенных в повторно используемую условия) в другие расположения в иерархии терминов. После того как эти термины, которые использовались повторно, может быть изменено в любом месте и изменения будут видны везде термины, которые использовались повторно.
Закрепленным essentials терминов
Чтобы понять закрепление в SharePoint, вы можете ознакомиться с управляемыми метаданными, терминами, наборами терминов, управляемой навигацией, хранилищем терминов и другими связанными понятиями и API. В таблице 1 описаны статьи, в которых представлены дополнительные сведения о фиксации.
Таблица 1. Основные понятия при закреплении
Название статьи | Описание |
---|---|
Краткое введение в компоненты Enterprise Metadata Management для разработчиков Microsoft SharePoint Server 2010 |
Написана для SharePoint Server 2010 в этой статье приводятся общие сведения о корпоративных управляемых метаданных, программирование модели, а также основными понятиями, такие как терминов и наборов терминов. |
Управляемая навигация в SharePoint |
Общие сведения о функции управляемой навигации на основе таксономии в SharePoint. |
Использовать код для выполнения задач, закрепленным
Можно использовать пользовательский код из .NET server, .NET клиента (CSOM), Silverlight или JavaScript моделей программирования для выполнения операций закрепленным на терминов и наборов терминов. В следующих примерах кода .NET server включить проверку закрепленным терминов для наборов терминов навигации и метод, который можно использовать для проверки, является ли указанный TermSet объект закреплен объект Term. Затем тест создает объекты Term и один из них объект указанного NavigationTermSet ПИН-код.
Закрепление терминов для навигации по наборам терминов
Следующий пример проверяет закрепленным терминов в наборах терминов навигации. В нем используется объект NavigationTermSet , который содержит методы и свойства, удобные в сценариях управляемой навигации, таких как создание меню навигации сайта на основе таксономии.
Пример сначала проверяет, существует ли объект NavigationTermSet. Если он не существует, код создает NavigationTermSet. (Если он уже существует, код удаляет старый перед созданием новой). Затем после код создает некоторые объекты Term, чтобы выбрать нужное, его создает файл публикации страницы (ASPX) в целях демонстрации, устанавливает в качестве настраиваемого конечной страницы для закрепленных соглашения и затем ПИН-код некоторые свойства навигации на страницу.
public void TermPinningTest()
{
using (SPSite site = new SPSite(TestConfig.ServerUrl))
{
using (SPWeb web = site.OpenWeb())
{
TaxonomySession taxonomySession = new TaxonomySession(site, updateCache: true);
// Create the navigation term set.
NavigationTermSet menuNavTermSet = DemoUtilities.SetUpSampleNavTermSet(
this.TestContext, taxonomySession, web);
TermSet menuTaxTermSet = menuNavTermSet.GetTaxonomyTermSet();
TermStore termStore = menuTaxTermSet.TermStore;
Group group = menuTaxTermSet.Group;
// Does the tagging Taxonomy term set already exist?
TermSet taggingTaxTermSet = group.TermSets.FirstOrDefault(
ts => ts.Id == TestConfig.TaggingTermSetId);
if (taggingTaxTermSet != null)
{
Log("Deleting old tagging term set");
// If the tagging Taxonomy term set already exists, delete the old one.
taggingTaxTermSet.Delete();
termStore.CommitAll();
}
Log("Creating the tagging term set");
taggingTaxTermSet = group.CreateTermSet("Demo Tagging TermSet", TestConfig.TaggingTermSetId);
int lcid = termStore.WorkingLanguage;
// Create some terms.
Term taggingProductsTaxTerm = taggingTaxTermSet.CreateTerm("Products", lcid);
taggingProductsTaxTerm.CreateTerm("Electronics", lcid);
taggingProductsTaxTerm.CreateTerm("Footwear", lcid);
taggingProductsTaxTerm.CreateTerm("Sports", lcid);
termStore.CommitAll();
/// Pinning the products subtree. Pins the "Products" Term object to the NavigationTermSet object.
Term menuProductsTaxTerm = menuTaxTermSet.ReuseTermWithPinning(taggingProductsTaxTerm);
termStore.CommitAll();
/// Creating the publishing page template DemoTargetPage.aspx");
PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);
SPListItem pageListItem = null;
PublishingPage publishingPage;
try
{
pageListItem = web.GetListItem(web.Url + "/Pages/DemoTargetPage.aspx");
publishingPage = PublishingPage.GetPublishingPage(pageListItem);
}
catch (FileNotFoundException)
{
Log("Creating new target page");
publishingPage = publishingWeb.AddPublishingPage("DemoTargetPage.aspx", publishingWeb.DefaultPageLayout);
Log("Checking in target page draft");
publishingPage.CheckIn("TermPinningTest");
}
// Set a custom target page for the pinned terms and then set some navigation properties.
// Normally the navigation objects are obtained by way of an optimized function such as
// TaxonomyNavigation.GetTermSetForWeb() or TaxonomyNavigationContext.Current.NavigationTerm.
// The function guarantees that URLs will be resolved using a valid NavigationTerm.View.
// But because we are populating totally new data, the cache will probably not be updated
// yet, so instead we manually construct a view using GetAsResolvedByWeb().
NavigationTerm menuProductsNavTerm = NavigationTerm.GetAsResolvedByWeb(menuProductsTaxTerm,
web, StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider);
menuProductsNavTerm.TargetUrl.Value = publishingPage.Uri.AbsolutePath;
menuProductsNavTerm.TargetUrlForChildTerms.Value = publishingPage.Uri.AbsolutePath;
termStore.CommitAll();
Log("TermPinningTest completed successfully");
}
}
}