SPNavigationNodeCollection.Add - Méthode
Ajoute un objet SPNavigationNode après le nœud spécifié dans la collection.
Espace de noms : Microsoft.SharePoint.Navigation
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Public Function Add ( _
node As SPNavigationNode, _
previousNode As SPNavigationNode _
) As SPNavigationNode
'Utilisation
Dim instance As SPNavigationNodeCollection
Dim node As SPNavigationNode
Dim previousNode As SPNavigationNode
Dim returnValue As SPNavigationNode
returnValue = instance.Add(node, previousNode)
public SPNavigationNode Add(
SPNavigationNode node,
SPNavigationNode previousNode
)
Paramètres
node
Type : Microsoft.SharePoint.Navigation.SPNavigationNodeL'objet de nœud (SPNavigationNode) à ajouter à la collection.
previousNode
Type : Microsoft.SharePoint.Navigation.SPNavigationNodeSpécifie la position dans la collection de nœuds à laquelle ajouter le nouvel objet de nœud en identifiant le nœud antérieures à la position où le nouveau nœud est inséré.
Valeur renvoyée
Type : Microsoft.SharePoint.Navigation.SPNavigationNode
Le nœud de navigation qui a été ajouté, désormais complètement initialisé.
Remarques
Un objet SPNavigationNode n'est pas complètement initialisé jusqu'à ce qu'il a été ajouté à une collection. Si l'objet n'est pas encore un membre d'une collection, les propriétés en lecture seule, telles que Id et ParentId renvoient une référence Null (Rien dans Visual Basic).
Exemples
L'exemple suivant montre comment ajouter un lien à une position spécifique dans le menu de lancement rapide. L'exemple fait partie d'un plus grand projet qui utilise une fonctionnalité relatives aux applications Web pour créer une bibliothèque de documents appelée Notes de réunion. La fonctionnalité inclut un gestionnaire d'événements qui implémente la classe SPFeatureReceiver , et en fonction de la méthode de FeatureActivated du récepteur est code pour créer la bibliothèque Notes de réunion et en lui ajoutant un lien sous la rubrique bibliothèques dans le menu de lancement rapide. S'il existe un lien vers la bibliothèque Documents partagés, le nouveau lien est ajouté directement après celui-ci. Si le menu n'a pas un lien vers les Documents partagés, le code fait le lien vers les Notes de réunion le premier élément sous le titre bibliothèques .
Notes
L'exemple de code utilise plusieurs types sans qualification. Le code se compile correctement, votre classe de récepteur de fonctionnalité doit importer les espaces de noms suivants :
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
// Get the web site where the feature is activated.
SPWeb web = properties.Feature.Parent as SPWeb;
if (web == null)
return;
// Get the Meeting Notes document library.
SPList meetingNotes = web.Lists.TryGetList("Meeting Notes");
if (meetingNotes == null)
{
// Create the library if it does not exist.
Guid listId = web.Lists.Add("Meeting Notes", "An archive for meeting notes.", SPListTemplateType.DocumentLibrary);
meetingNotes = web.Lists.GetList(listId, false);
}
// Check for an existing Quick Launch node for Meeting Notes.
SPNavigationNode meetingNotesNode = web.Navigation.GetNodeByUrl(meetingNotes.DefaultViewUrl);
// If a Meeting Notes node exists on Quick Launch, nothing more to do.
if (meetingNotesNode != null)
return;
// Still here, so create a node for Meeting Notes.
meetingNotesNode = new SPNavigationNode(meetingNotes.Title, meetingNotes.DefaultViewUrl);
// Get the Libraries heading.
SPNavigationNode librariesHeading = web.Navigation.GetNodeById((int)SPQuickLaunchHeading.Documents);
// If the Libraries heading does not exist or it exists but has no items below it,
// then Meeting Notes will be the first item.
if (librariesHeading == null || librariesHeading.Children.Count == 0)
{
web.Navigation.AddToQuickLaunch(meetingNotesNode, SPQuickLaunchHeading.Documents);
return;
}
// The Libraries heading exists. Now check for an item linking to Shared Documents.
// If a node for Shared Documents exists, Meeting Notes will go after it.
SPList sharedDocs = web.Lists.TryGetList("Shared Documents");
SPNavigationNode sharedDocsNode = null;
if (sharedDocs != null)
sharedDocsNode = librariesHeading
.Children
.Cast<SPNavigationNode>()
.FirstOrDefault(n => n.Url == sharedDocs.DefaultViewUrl);
// A node for Shared Documents does not exist. Make Meeting Notes the first item.
if (sharedDocsNode == null)
{
librariesHeading.Children.AddAsFirst(meetingNotesNode);
return;
}
// A node for Shared Documents exists. Place Meeting Notes after it.
librariesHeading.Children.Add(meetingNotesNode, sharedDocsNode);
web.Dispose();
}
Public Overrides Sub FeatureActivated(ByVal properties As SPFeatureReceiverProperties)
'Get the web site where the feature is activated.
Dim web As SPWeb = TryCast(properties.Feature.Parent, SPWeb)
If web Is Nothing Then
Return
End If
' Get the Meeting Notes document library.
Dim meetingNotes As SPList = web.Lists.TryGetList("Meeting Notes")
If meetingNotes Is Nothing Then
' Create the library if it does not exist.
Dim listId As Guid = web.Lists.Add("Meeting Notes", "An archive for meeting notes.", SPListTemplateType.DocumentLibrary)
meetingNotes = web.Lists.GetList(listId, False)
End If
' Check for an existing Quick Launch node for Meeting Notes.
Dim meetingNotesNode As SPNavigationNode = web.Navigation.GetNodeByUrl(meetingNotes.DefaultViewUrl)
' If a Meeting Notes node exists on Quick Launch, nothing more to do.
If meetingNotesNode IsNot Nothing Then
Return
End If
' Still here, so create a node for Meeting Notes.
meetingNotesNode = New SPNavigationNode(meetingNotes.Title, meetingNotes.DefaultViewUrl)
' Get the Libraries heading.
Dim librariesHeading As SPNavigationNode = web.Navigation.GetNodeById(CInt(SPQuickLaunchHeading.Documents))
' If the Libraries heading does not exist or it exists but has no items below it,
' then Meeting Notes will be the first item.
If librariesHeading Is Nothing OrElse librariesHeading.Children.Count = 0 Then
web.Navigation.AddToQuickLaunch(meetingNotesNode, SPQuickLaunchHeading.Documents)
Return
End If
' The Libraries heading exists. Now check for an item linking to Shared Documents.
' If a node for Shared Documents exists, Meeting Notes will go after it.
Dim sharedDocs As SPList = web.Lists.TryGetList("Shared Documents")
Dim sharedDocsNode As SPNavigationNode = Nothing
If sharedDocs IsNot Nothing Then
sharedDocsNode = librariesHeading.Children.Cast(Of SPNavigationNode)().FirstOrDefault( _
Function(n) n.Url = sharedDocs.DefaultViewUrl)
End If
' A node for Shared Documents does not exist. Make Meeting Notes the first item.
If sharedDocsNode Is Nothing Then
librariesHeading.Children.AddAsFirst(meetingNotesNode)
Return
End If
' A node for Shared Documents exists. Place Meeting Notes after it.
librariesHeading.Children.Add(meetingNotesNode, sharedDocsNode)
web.Dispose()
End Sub
Voir aussi
Référence
SPNavigationNodeCollection classe
SPNavigationNodeCollection - Membres
Microsoft.SharePoint.Navigation - Espace de noms