del método SPNavigationNodeCollection.Add
Agrega un objeto SPNavigationNode después del nodo especificado de la colección.
Espacio de nombres: Microsoft.SharePoint.Navigation
Ensamblado: Microsoft.SharePoint (en Microsoft.SharePoint.dll)
Sintaxis
'Declaración
Public Function Add ( _
node As SPNavigationNode, _
previousNode As SPNavigationNode _
) As SPNavigationNode
'Uso
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
)
Parámetros
node
Tipo: Microsoft.SharePoint.Navigation.SPNavigationNodeObjeto de nodo (SPNavigationNode) que se va a agregar a la colección.
previousNode
Tipo: Microsoft.SharePoint.Navigation.SPNavigationNodeEspecifica la posición en la colección de nodos en el que se va a agregar el nuevo objeto de nodo mediante la identificación del nodo anterior a la posición donde se inserta el nuevo nodo.
Valor devuelto
Tipo: Microsoft.SharePoint.Navigation.SPNavigationNode
El nodo de navegación que se ha agregado, ahora totalmente inicializado.
Comentarios
Un objeto SPNavigationNode no se inicializa completamente hasta que se ha agregado a una colección. Si el objeto todavía no es un miembro de una colección, propiedades de solo lectura como Id y ParentId devuelven una referencia null (Nothing en Visual Basic).
Ejemplos
El ejemplo siguiente muestra cómo agregar un vínculo en una posición específica en el menú Inicio rápido. El ejemplo forma parte de un proyecto más grande que usa una característica con ámbito de Web para crear una biblioteca de documentos con el nombre de notas de la reunión. La característica incluye un controlador de eventos que implementa la clase SPFeatureReceiver , y en la característica del receptor FeatureActivated consiste código para crear la biblioteca de notas de la reunión y agregar un vínculo a ella en el encabezado de las bibliotecas en el menú Inicio rápido. Si hay un vínculo a la biblioteca de documentos compartidos, se agrega el nuevo vínculo inmediatamente después de ella. Si el menú no tiene un vínculo a documentos compartidos, el código hace que el vínculo para notas de la reunión el primer elemento por debajo del encabezado de bibliotecas .
Nota
El código de ejemplo usa varios tipos sin calificación. Para compilar correctamente el código, la clase de receptor de característica debe importar los espacios de nombres siguientes:
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
Vea también
Referencia
clase SPNavigationNodeCollection
Miembros SPNavigationNodeCollection
Espacio de nombres Microsoft.SharePoint.Navigation