Verwenden von Code zum Anheften von Ausdrücken zu Ausdruckssätzen in SharePoint

In diesem Artikel erfahren Sie, wie Sie Code verwenden, um Ausdrücke an Navigationsausdruckssätze anzuheften.

Taxonomie beim Erstellen ist Verankern die Möglichkeit zum Anfügen eines Ausdrucks zu einem Ziel aus. In SharePoint wurde das Anheften von Ausdrücken eingeführt. Ein angehefteter Begriff ist genau wie ein Begriff, der wiederverwendet wird, außer dass er schreibgeschützt ist und an der Stelle, an der der Begriff verwendet wird, nicht geändert werden kann.

In der verwalteten SharePoint-Navigation können Sie mit der API neue oder vorhandene Begriffe an ein NavigationTermSet-Objekt anheften. In Microsoft SharePoint Server 2010 konnten Benutzer Begriffe (und alle geschachtelten den wiederverwendete Bestimmungen Begriffe) an anderen Stellen in der Hierarchie Begriff wiederverwenden. Nach dieser Begriffe wiederverwendet wurden, sie an einem Standort geändert werden konnte und Änderungen überall angezeigt werden würde, wurden die Begriffe wiederverwendet.

Feste Essentials Begriff

Um zu verstehen, in SharePoint verankern, sollten Sie erfahren Sie, dass Navigation, Terminologiespeicher und Konzepte und APIs ähnliche verwaltete Metadaten, Ausdrücke, Ausdruckssätze, verwaltet. Tabelle 1 beschreibt Artikeln, in denen Weitere Informationen zum Anheften übergeben.

Tabelle 1. Kernkonzepte für das Anheften

Titel des Artikels Beschreibung
Eine kurze Einführung in Enterprise Metadata Management für Microsoft SharePoint Server 2010-Entwickler
Dieser Artikel wurde für SharePoint Server 2010 geschrieben und bietet eine grundlegende Übersicht über das vom Unternehmen verwaltete Metadatenprogrammierungsmodell und kerne Konzepte wie Begriffe und Ausdruckssätze.
Verwaltete Navigation in SharePoint
Eine Einführung in das Feature taxonomiegesteuerte verwaltete Navigation in SharePoint.

Verwenden von Code festen Aufgaben

Sie können benutzerdefinierten Code vom .NET-Server, vom .NET-Client (CSOM) und JavaScript-Programmiermodellen verwenden, um Anheftvorgänge für Begriffe und Ausdruckssätze abzuschließen. Die folgenden .NET-Servercodebeispiele umfassen einen Test zum Anheften von Begriffen an Navigationsausdruckssätze und eine Methode, mit der Sie testen können, ob ein Term Objekt an ein angegebenes TermSet Objekt angeheftet ist. Anschließend erstellt Term der Test Objekte und heftet 1 davon an das angegebene NavigationTermSet Objekt an.

So heften Sie Begriffe im Zusammenhang mit navigationsausdruckssätzen an

  • Im folgende Beispiel testet festen Begriffe im Zusammenhang mit navigationsausdruckssätzen. Es verwendet das NavigationTermSet-Objekt , das Methoden und Eigenschaften enthält, die in verwalteten Navigationsszenarien nützlich sind, z. B. beim Erstellen taxonomiegesteuerter Websitenavigationsmenüs.

    Im Beispiel wird zunächst überprüft, ob ein NavigationTermSet -Objekt vorhanden ist. Wenn keine vorhanden ist, erstellt der Code eine NavigationTermSet. (Sofern bereits vorhanden, löscht der Code der alte Datenbankserver bevor sie einen neuen Anwendungspool erstellt). Nachdem der Code einige Term Objekte zur Auswahl erstellt hat, erstellt er eine Veröffentlichungsseitendatei (.aspx) zu Demonstrationszwecken, legt sie als benutzerdefinierte Zielseite für angeheftete Begriffe fest und heftet dann einige Navigationseigenschaften an die Seite an.

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");
    }
  }
}

Siehe auch