Arbeiten mit Menüs und Navigationsobjekten
Letzte Änderung: Sonntag, 4. April 2010
Gilt für: SharePoint Server 2010
Inhalt dieses Artikels
Horizontale und vertikale Menüs
PortalSiteMapDataSource
PortalSiteMapProvider
Navigationsanweisungen für horizontale und vertikale Menüs werden im XML für die Gestaltungsvorlage deklariert. Zwei Klassen werden für die Navigation verwendet: PortalSiteMapDataSource und PortalSiteMapProvider.
Mit dem PortalSiteMapProvider-Objekt wird die Websitehierarchie (Navigationsstruktur) bereitgestellt, und außerdem werden damit die Beziehung zwischen den Knoten überwacht. Mit dem PortalSiteMapDataSource-Objekt werden Navigationsfeatures aus dem PortalSiteMapProvider-Objekt zugeordnet und Navigationselemente gefiltert, um die Elemente zu bestimmen, die dem Benutzer in den horizontalen oder vertikalen Menüs oder in Breadcrumbs angezeigt werden können.
Horizontale und vertikale Menüs
Wenn Sie eine Websitestruktur erstellen, die eine Stammwebsite oder eine Website auf oberster Ebene, mehrere Websites sowie Seiten und zusätzliche Websites, die untergeordnete Elemente der Website auf oberster Ebene sind, enthalten, werden von Microsoft SharePoint Server 2010 zwei Menüs erstellt, nämlich ein horizontales Menü (oben) und ein vertikales Menü (links).
Horizontale und vertikale Menüs werden im Gestaltungsseitenmarkup deklariert. Im folgenden Beispiel wird ein horizontales Menü deklariert.
<SharePoint:AspMenu ID="GlobalNav" Runat="server"
DataSourceID="GlobalNavDataSource"
Orientation="Horizontal"
StaticDisplayLevels="1"
MaximumDynamicDisplayLevels="1" />
Das vertikale Menü wird auf ähnliche Weise deklariert, aber es werden andere Eigenschaften wie beim horizontalen Menü verwendet. Diese Eigenschaften sind identisch mit den im Menu-Steuerelement von ASP.NET verfügbaren Eigenschaften.
In Tabelle 1 werden Eigenschaften vorgestellt, die standardmäßig in Gestaltungsvorlagenmarkup für horizontale und vertikale Menüs vorhanden sind.
Tabelle 1. Eigenschaften, die standardmäßig in Gestaltungsvorlagenmarkup für horizontale und vertikale Menüs vorhanden sind
Eigenschaft |
Beschreibung |
---|---|
Gibt das Datenquellensteuerelement an, mit dem die hierarchischen Daten für dieses Menü bereitgestellt werden. Im vorherigen Beispielcode verweist DataSourceID auf ein Steuerelement mit der ID GlobalNavDataSource. |
|
Gibt an, ob es sich um ein horizontales oder vertikales Menü handelt. Im vorherigen Beispielcode ist die Ausrichtung horizontal. |
|
Gibt die Anzahl der Hierarchieebenen an, die im Menü gleichzeitig angezeigt werden sollen. In diesem Beispiel ist 1 angegeben, womit im Menü eine Hierarchieebene unterhalb der Website auf oberster Ebene angezeigt wird. |
|
Gibt die Anzahl der Ebenen an, die in dynamischen Menüs (Flyoutmenüs) angezeigt werden sollen. In diesem Beispiel ist 1 angegeben, womit für das Menüelement auf der ersten Websitehierarchieebene mit untergeordneten Websites oder Seiten diese Websites oder Seiten in dynamischen Menüs angezeigt werden. |
PortalSiteMapDataSource
PortalSiteMapDataSource ist eine Datenquelle speziell für SharePoint Server 2010, mit der Daten aus dem PortalSiteMapProvider-Objekt abgerufen und Daten gemäß der hierarchischen ASP.NET-Datenquellen-Schnittstelle verfügbar gemacht werden. Das PortalSiteMapDataSource-Objekt gibt den Namen des PortalSiteMapProvider-Objekts an, das zum Abrufen von Daten über die SiteMapProvider-Eigenschaft von ASP.NET verwendet wird.
Wenn das DataSourceID="GlobalNavDataSource"-Attribut im Gestaltungsvorlagenmarkup enthalten ist, gibt die Anwendung ein PortalSiteMapDataSource-Objekt zurück.
<PublishingNavigation:PortalSiteMapDataSource ID="GlobalNavDataSource"
Runat="server"
SiteMapProvider="CombinedNavSiteMapProvider"
ShowStartingNode="false"
StartFromCurrentNode="true"
StartingNodeOffset="0"
TrimNonCurrentTypes="Heading"
TreatStartingNodeAsCurrent="true" />
Tabelle 2. Häufig verwendete PortalSiteMapDataSource-Eigenschaften
Eigenschaft |
Beschreibung |
---|---|
Gibt an, ob der Startknoten von der Datenquelle zurückgegeben wird. Wenn diese Eigenschaft auf true festgelegt ist, gibt die Datenquelle den Startknoten zurück. Das Menü empfängt den Startknoten, wobei es sich um den Stammknoten handeln kann, und Elemente unterhalb des Startknotens. Wenn diese Eigenschaft auf false festgelegt ist, gibt die Datenquelle den Startknoten nicht zurück. Das Menü empfängt nur die Elemente unterhalb des Startknotens. |
|
Gibt an, in welchem Knoten die Datenquelle startet. Mit dieser Eigenschaft wird festgelegt, welcher Abschnitt der gesamten Websitehierarchie vom Datenquellensteuerelement an das Menü zurückgegeben wird. Wenn diese Eigenschaft auf true festgelegt ist, wird das PortalSiteMapDataSource-Objekt von SharePoint Server 2010 angewiesen, dessen Regeln für die Bestimmung des Knotens, in dem die Datenquelle starten soll, anzuwenden. |
|
Ruft einen positiven oder negativen ganzzahligen Offset für den Startknoten ab, der die vom DataSourceControl-Steuerelement verfügbar gemachte Websitehierarchie auf oberster Ebene festlegt, oder legt diesen Offset fest. Der Standardwert ist 0, womit die vom SiteMapDataSource-Objekt verfügbar gemachte Websitehierarchie auf oberster Ebene mit dem Startknoten identisch ist. Die Auswirkung dieser Eigenschaft ist variabel, undefiniert und hängt von Websitehierarchiedetails ab, die den Rahmen dieses Themas sprengen würden. |
|
Aktiviert das kontextbasierte und das typbasierte Einschränken von Knoten. In diesem Beispiel wird TrimNonCurrentTypes="Heading" verwendet, womit für die Datenquelle festgelegt wird, dass alle Knoten vom Typ Heading entfernt werden, die sich nicht direkt unterhalb des aktuellen Knotens befinden. Sie können mehrere Werte für diese Eigenschaft in einer durch Trennzeichen getrennten Liste angeben. Verfügbare Werte werden in der NodeTypes-Enumeration definiert. |
|
Entfernt alle Knoten der angegebenen Typen, die sich nicht direkt unterhalb der aktuellen Website oder einer der übergeordneten Websites befinden. |
|
Entfernt alle Knoten der angegebenen Typen, die sich nicht unterhalb der aktuellen Website oder einer der übergeordneten oder untergeordneten Websites befinden. |
|
Gibt an, welcher Knoten für Einschränkungszwecke als aktueller Knoten behandelt wird. Standardmäßig bezeichnet der aktuelle Knoten den Knoten für das aktuell besuchte Element. Wenn TreatStartingNodeAsCurrent auf true festgelegt ist, wird der Startknoten der Datenquelle als Kontext- oder Einschränkungsknoten behandelt. |
PortalSiteMapProvider
Das PortalSiteMapProvider-Objekt ist die eigentliche Quelle für hierarchische Navigationsdaten und stellt diese Daten dem PortalSiteMapDataSource-Objekt bereit. Das PortalSiteMapProvider-Objekt ruft Knoten aus dem Microsoft SharePoint Foundation 2010SPNavigation-Speicher ab. Mit dem SPNavigation-Objekt erstellen Sie statische Links und Gruppierungen. Nachdem Sie statische Links und Gruppierungen bereitgestellt haben, werden von der Anwendung dynamische Elemente, die Websites und Seiten darstellen, mit den statischen Links und Gruppierungen zusammengeführt. SharePoint Server 2010 wendet außerdem die Einschränkung aus Sicherheitsgründen an, damit Benutzer nur die Navigationselemente sehen, für die sie die Navigationsberechtigung haben.
Deklarieren Sie benannte Anbieter in der Datei web.config der Anwendung, damit von überall aus darauf zugegriffen werden kann. Deklarationen der beiden wichtigsten PortalSiteMapProvider-Objekte – CombinedNavSiteMapProvider und CurrentNavSiteMapProvider – werden im folgenden Code gezeigt.
<add name="CombinedNavSiteMapProvider" description="MOSS 2007 provider for Combined navigation"
Type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider"
NavigationType="Combined" EncodeOutput="true">
<add name="CurrentNavSiteMapProvider" description="MOSS 2007 provider for Current navigation"
Type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider"
NavigationType="Current" EncodeOutput="true" />
![]() |
---|
Der Name des ersten Anbieters, CombinedNavSiteMapProvider, stimmt mit dem für die SiteMapProvider-Eigenschaft angegebenen Wert überein. Dies bedeutet, dass ein horizontales Menü erstellt wird. |
In Tabelle 3 sind einige der häufiger verwendeten PortalSiteMapProvider-Eigenschaften beschrieben.
Tabelle 3. Häufig verwendete PortalSiteMapProvider-Eigenschaften
Eigenschaft |
Beschreibung |
---|---|
Ruft den Navigationstyp für diesen Navigationsanbieter ab oder legt diesen fest. Zu den verfügbaren Optionen zählen Combined, Current und Global, und sie verhalten sich wie in den nächsten drei Eigenschaften angegeben: CombinedNavSiteMapProvider, CurrentSiteMapProvider und CurrentSiteNavSiteMapProviderNoEncode. |
|
Ruft das PortalSiteMapProvider-Objekt ab, das standardmäßig an das globale Navigationsmenü angefügt ist. |
|
Ruft das PortalSiteMapProvider-Objekt ab, das standardmäßig an das aktuelle Navigationsmenü oder die Schnellstart-Symbolleiste angefügt ist. |
|
Ruft das PortalSiteMapProvider-Objekt ab, das standardmäßig an die Brotkrümelnavigation angefügt ist. Deklarieren Sie diese Eigenschaft fast identisch wie CurrentSiteNavSiteMapProvider, aber schließen Sie das EncodeOutput="true"-Attribut aus. |
|
Ruft ein PortalSiteMapProvider-Objekt ab, dessen NavigationType-Eigenschaft auf Global festgelegt ist. |
|
Ruft ab oder legt fest, ob die Title-Eigenschaft jedes vom Anbieter zurückgegebenen PortalSiteMapNode-Objekts im HTML-Format codiert werden soll. Mit dem ASP.NET-Menüsteuerelement wird die Title-Eigenschaft beim Rendern nicht automatisch im HTML-Format codiert. Mit dem SiteMapPath-Steuerelement von ASP.NET wird die Title-Eigenschaft jedoch im HTML-Format codiert. |
|
Ruft die Anzahl dynamischer untergeordneter Elemente ab, die auf jeder Ebene angezeigt werden sollen, oder legt diese fest. Dynamische untergeordnete Elemente können Unterwebsites (beliebige SPWeb-Objekte) und Seiten sein. |
|
Ruft ab, ob vom Anbieter zurückgegebene Knoten jeweils eindeutige Werte für die Key-Eigenschaften aufweisen sollen, oder legt dies fest. Legen Sie RequireUniqueKeysForNodes="false" fest, damit Menüs für erstellte Links und Überschriften ordnungsgemäß hervorgehoben werden. Beim Anfügen an ein ASP.NET-Menüsteuerelement mithilfe einer Datenquelle gibt es keine Probleme, aber für die meisten anderen Anzeigesteuerelemente sollten Sie RequireUniqueKeysForNodes="true" deklarieren. |
|
Ruft ab, ob von diesem Anbieter Unterwebsites zurückgegeben werden, oder liegt dies fest. |
Siehe auch
Referenz
Microsoft.SharePoint.Publishing.Navigation
Microsoft.SharePoint.Navigation
Konzepte
Gewusst wie: Anpassen der Navigation
Anpassen von Navigationssteuerelementen und Anbietern