Compartir a través de


View.GetSelectedNodes (Método)

Obtiene una referencia a un objeto XPathNodeIterator para recorrer en iteración todos los nodos XML de los elementos seleccionados de una vista.

Espacio de nombres: Microsoft.Office.InfoPath
Ensamblado: Microsoft.Office.InfoPath (en microsoft.office.infopath.dll)

Sintaxis

'Declaración
Public MustOverride Function GetSelectedNodes As XPathNodeIterator
'Uso
Dim instance As View
Dim returnValue As XPathNodeIterator

returnValue = instance.GetSelectedNodes
public abstract XPathNodeIterator GetSelectedNodes ()

Valor devuelto

Objeto XPathNodeIterator para recorrer en iteración todos los nodos de la selección actual.

Excepciones

Tipo de excepción Condición

InvalidOperationException

Se ha llamado al método GetSelectedNodes desde un controlador de eventos para el evento Loading.

Comentarios

Si no hay ningún elemento seleccionado en una vista o si sólo hay texto seleccionado, el objeto XPathNodeIterator devuelto por el método GetSelectedNodes no tiene nodos por los que realizar la iteración.

Nota

El método GetSelectedNodes no devolverá nodos basados en la selección actual si se usaron en el controlador de eventos para el evento Clicked de un botón de la vista, porque se pierde el foco del control que se pretende que esté en contexto. Para evitar este comportamiento, utilice el método GetSelectedNodes desde un panel de tareas personalizado, un menú o una barra de tareas.

Sólo pueden tener acceso a este miembro los formularios que se ejecuten en el mismo dominio que el formulario abierto actualmente o los formularios a los que se hayan concedido permisos entre dominios.

Se puede tener acceso a este tipo o miembro solamente desde un código ejecutado en formularios abiertos en Microsoft Office InfoPath 2007.

Ejemplo

En el ejemplo siguiente, se usa el método SelectNodes para seleccionar los nodos de la primera fila de un control Tabla extensible enlazado a group2. A continuación, se usa el método GetSelectedNodes para devolver una colección de nodos basada en la selección actual. Por último, el código realiza una operación de bucle en la colección de nodos y muestra el nombre, el XML interno y el valor de cada nodo.

// Create XPathNavigator and specify XPath for nodes.
XPathNavigator repeatingTableRow1 = 
   MainDataSource.CreateNavigator().SelectSingleNode(
   "/my:myFields/my:group1/my:group2[1]", NamespaceManager);

// Select nodes in specified XPathNavigator.
CurrentView.SelectNodes(repeatingTableRow1);

// Get selected nodes.
XPathNodeIterator selectedNodes = 
   CurrentView.GetSelectedNodes();

// Display the count of selected nodes.
MessageBox.Show(selectedNodes.Count.ToString());

// Loop through collection and display information.
foreach (XPathNavigator selectedNode in selectedNodes)
{
   MessageBox.Show(selectedNode.Name);
   MessageBox.Show(selectedNode.InnerXml);
   MessageBox.Show(selectedNode.Value);
}
' Create XPathNavigator and specify XPath for nodes.
Dim repeatingTableRow1 As XPathNavigator  = _
   CreateNavigator().SelectSingleNode( _
   "/my:myFields/my:group1/my:group2[1]", NamespaceManager)

' Select nodes in specified XPathNavigator.
CurrentView.SelectNodes(repeatingTableRow1)

' Get selected nodes.
Dim selectedNodes As XPathNodeIterator = _
   CurrentView.GetSelectedNodes()

' Display the count of selected nodes.
MessageBox.Show(selectedNodes.Count.ToString())

' Loop through collection and display information.
Dim selectedNode As XPathNavigator
For Each selectedNode In selectedNodes
   MessageBox.Show(selectedNode.Name)
   MessageBox.Show(selectedNode.InnerXml)
   MessageBox.Show(selectedNode.Value)
Next

Vea también

Referencia

View (Clase)
View (Miembros)
Microsoft.Office.InfoPath (Espacio de nombres)