Gewusst wie: Freigeben der Leiste für häufig verwendete Hyperlinks zwischen Websites

Letzte Änderung: Dienstag, 5. Oktober 2010

Gilt für: SharePoint Foundation 2010

In Microsoft SharePoint Foundation können Sie für Benutzer eine konsistente Navigation auf Websites bereitstellen, indem Sie die Vererbung von der übergeordneten Website angeben. Dies ist besonders wichtig, wenn Sie Navigationsmöglichkeiten zwischen Peer-Unterwebsites bereitstellen müssen. In diesem Fall wird auf jeder Unterwebsite, die unter der Website erstellt wird, eine Leiste für häufig verwendete Hyperlinks verwendet, wobei die Unterwebsite ebenfalls in den Hyperlinks angezeigt wird. Ohne Vererbung bei der Navigation hätte jede Website eine eigene Navigation. Die gemeinsame Navigation muss über die Leiste für häufig verwendete Hyperlinks der übergeordneten Website implementiert werden.

Durch die gemeinsame Verwendung einer Leiste für häufig verwendete Hyperlinks auf Websites wird die Benutzerfreundlichkeit verbessert, da die Navigation zwischen Websites einfacher ist. Durch die gemeinsame Navigation wird die Navigation vereinfacht, dies sollte jedoch kein Ersatz für eine sorgfältige Planung sein. Beachten Sie, dass das Steuerelement für die gemeinsame Navigation eine "flache" Websitestruktur darstellt und für den Benutzer in Bezug auf die tatsächliche Hierarchie der in einer Websitesammlung erstellten Websites verwirrend sein kann.

Sie können ein Steuerelement für die gemeinsame Navigation zwischen Websites innerhalb einer Websitesammlung über die Benutzeroberfläche implementieren. Sie können die Freigabe der Leiste für häufig verwendete Hyperlinks entweder bei der Erstellung jeder Website oder nach der Erstellung einer Website angeben.

  1. Klicken Sie auf der Seite Erstellen auf Weitere Optionen.

  2. Klicken Sie im Abschnitt Navigationsvererbung nach Leiste für häufig verwendete Hyperlinks der übergeordneten Website verwenden? auf Ja.

  3. Klicken Sie auf Erstellen.

  1. Navigieren Sie zur Unterwebsite.

  2. Klicken Sie auf Websiteaktionen und dann auf Websiteeinstellungen.

  3. Klicken Sie auf der Seite Websiteeinstellungen im Abschnitt Aussehen und Verhalten auf Leiste für häufig verwendete Hyperlinks.

  4. Klicken Sie auf der Seite Leiste für häufig verwendete Hyperlinks auf Hyperlinks aus übergeordneter Website verwenden, und klicken Sie in dem dann geöffneten Meldungsfeld auf OK.

Navigationsvorgänge auf einer Website werden mithilfe von im SPNavigation-Objekt gespeicherten Einstellungen gesteuert, das von der Navigation-Eigenschaft des SPWeb-Objekts zurückgegeben wird, welches die Website darstellt.

Ob eine Website die Leiste für häufig verwendete Hyperlinks der übergeordneten Website verwendet, hängt von der Einstellung für die UseShared-Eigenschaft des SPNavigation-Objekts ab. Wenn UseSharedtrue zurückgibt, erbt die Unterwebsite die Leiste für häufig verwendete Hyperlinks von der übergeordneten Website; andernfalls weist die Unterwebsite eine eigene, eindeutige Leiste für häufig verwendete Hyperlinks auf.

HinweisHinweis

Die Stammwebsite in einer Websitesammlung kann keine Leiste für häufig verwendete Hyperlinks erben, da es keine übergeordnete Website gibt, von der sie erben könnte. Deshalb gibt SPWeb.Navigation.UseShared die Zeichenfolge false zurück, wenn SPWeb.IsRootWeb die Zeichenfolge true zurückgibt. Eine Ausnahme wird ausgelöst, wenn Sie versuchen, die UseShared-Eigenschaft der Stammwebsite auf true festzulegen.

Beim Codieren einer Website ist es nicht möglich, die Website zu erstellen und ihr in einem einzigen Aufruf die Leiste für häufig verwendete Hyperlinks der übergeordneten Website hinzuzufügen. Sie müssen zunächst die Website erstellen und anschließend die Leiste für häufig verwendete Hyperlinks der übergeordneten Website hinzufügen. Ein Beispiel finden Sie in der SPWebCollection.Add-Methode.

  1. Rufen Sie einen Verweis auf das SPWeb-Objekt ab, das die Unterwebsite darstellt.

    SPWeb child = site.OpenWeb("parent/child");
    
    Dim child As SPWeb = site.OpenWeb("parent/child")
    
  2. Stellen Sie sicher, dass SPWeb.IsRootWeb die Zeichenfolge false zurückgibt.

    if (!child.IsRootWeb)
    
    If Not child.IsRootWeb Then
    
  3. Rufen Sie die Navigation-Eigenschaft der Unterwebsite ab, und legen Sie im zurückgegebenen Objekt die UseShared-Eigenschaft auf true fest.

    child.Navigation.UseShared = true;
    
    child.Navigation.UseShared = True
    

Beispiel

Beim folgenden Beispiel handelt es sich um eine Konsoleanwendung, mit der einer Unterwebsite die Leiste für häufig verwendete Hyperlinks einer übergeordneten Website hinzugefügt wird. Mit dieser Anwendung wird außerdem die Leiste für häufig verwendete Hyperlinks der übergeordneten Website geändert, indem ein Hyperlink zur Unterwebsite hinzugefügt wird. Die TopNavigationBar-Eigenschaft eines SPNavigation-Objekts gibt ein SPNavigationNodeCollection-Objekt zurück. Zum Hinzufügen eines Knotens zur Leiste für häufig verwendete Hyperlinks müssen Sie lediglich ein SPNavigationNode-Objekt erstellen und dieses dem SPNavigationNodeCollection-Objekt hinzufügen, das die Leiste für häufig verwendete Hyperlinks darstellt.

Beachten Sie, dass vor dem Hinzufügen eines Hyperlinks zuerst überprüft wird, dass die übergeordnete Website keine Hyperlinks vererbt. Falls die übergeordnete Website Hyperlinks vererbt, entspricht SPNavigationNodeCollection NULL, sodass kein Hyperlink hinzugefügt werden kann. Wenn die Sammlung nicht NULL ist, wird überprüft, ob bereits ein Hyperlink zur Unterwebsite in der Leiste für häufig verwendete Hyperlinks der übergeordneten Website vorhanden ist. Für denn Fall, dass in der übergeordneten Website kein Hyperlink zur Unterwebsite vorhanden ist, wird ein Hyperlink hinzufügt.

using System;
using System.Linq;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb child = site.OpenWeb("parent/child"))
                {
                    // Verify that this is not the root of a site collection.
                    if (!child.IsRootWeb)
                    {
                        // Use links from parent on the child's top link bar.
                        child.Navigation.UseShared = true;

                        // If the parent web's top link bar is not inherited,
                        // add a link to the child on the parent's top link bar.
                        if (!child.ParentWeb.Navigation.UseShared)
                        {
                            // Get the parent's top link bar.
                            SPNavigationNodeCollection topnav = child.ParentWeb.Navigation.TopNavigationBar;

                            // Query for an existing link to the child.
                            SPNavigationNode node = topnav
                                .Cast<SPNavigationNode>()
                                .FirstOrDefault(n => n.Url.Equals(child.ServerRelativeUrl));

                            // No link, so add one.
                            if (node == null)
                            {
                                // Truncate long a title.
                                string linkTitle = child.Title;
                                if (linkTitle.Length > 15)
                                    linkTitle = linkTitle.Substring(0, 12) + "...";

                                // Create the node.
                                node = new SPNavigationNode(linkTitle, child.ServerRelativeUrl);

                                // Add it.
                                node = topnav.AddAsLast(node);
                            }
                        }
                    }
                }
            }
            Console.Write("\nPress ENTER to continue....");
            Console.ReadLine();
        }
    }
}
Imports System
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Navigation

Module ConsoleApp

    Sub Main()

        Using site As New SPSite("https://localhost")

            Using child As SPWeb = site.OpenWeb("parent/child")

                ' Verify that this is not the root of a site collection.
                If Not child.IsRootWeb Then

                    ' Use links from parent on the child's top link bar.
                    child.Navigation.UseShared = True

                    ' If the parent web's top link bar is not inherited,
                    ' add a link to the child on the parent's top link bar.
                    If Not child.ParentWeb.Navigation.UseShared Then

                        ' Get the parent's top link bar.
                        Dim topnav As SPNavigationNodeCollection = child.ParentWeb.Navigation.TopNavigationBar

                        ' Query for an existing link to the child.
                        Dim node As SPNavigationNode = topnav.Cast(Of SPNavigationNode)().FirstOrDefault(Function(n) n.Url.Equals(child.ServerRelativeUrl))

                        ' No link, so add one.
                        If node Is Nothing Then
                            ' Truncate long a title.
                            Dim linkTitle As String = child.Title
                            If linkTitle.Length > 15 Then
                                linkTitle = linkTitle.Substring(0, 12) + "..."
                            End If

                            ' Create the node.
                            node = New SPNavigationNode(linkTitle, child.ServerRelativeUrl)

                            ' Add it.
                            node = topnav.AddAsLast(node)
                        End If

                    End If

                End If

            End Using

        End Using

        Console.Write(vbCrLf & "Press ENTER to continue....")
        Console.Read()
    End Sub

End Module

Siehe auch

Aufgaben

Gewusst wie: Anpassen der Anzeige der Schnellstartleiste

Konzepte

Navigationssteuerelemente