Compartir a través de


View.GetContextNodes Método

Definición

Sobrecargas

GetContextNodes(XPathNavigator)

Obtiene una referencia a un XPathNodeIterator objeto para recorrer en iteración los nodos XML devueltos a partir del nodo especificado.

GetContextNodes(XPathNavigator, String)

Obtiene una referencia a para XPathNodeIterator recorrer en iteración los nodos XML devueltos en la selección actual dentro del control enlazado al control especificado.

GetContextNodes()

Obtiene una referencia a para XPathNodeIterator recorrer en iteración los nodos XML devueltos en la selección actual.

GetContextNodes(XPathNavigator)

Obtiene una referencia a un XPathNodeIterator objeto para recorrer en iteración los nodos XML devueltos a partir del nodo especificado.

public:
 abstract System::Xml::XPath::XPathNodeIterator ^ GetContextNodes(System::Xml::XPath::XPathNavigator ^ xmlNode);
public abstract System.Xml.XPath.XPathNodeIterator GetContextNodes (System.Xml.XPath.XPathNavigator xmlNode);
abstract member GetContextNodes : System.Xml.XPath.XPathNavigator -> System.Xml.XPath.XPathNodeIterator
Public MustOverride Function GetContextNodes (xmlNode As XPathNavigator) As XPathNodeIterator

Parámetros

xmlNode
XPathNavigator

Objeto que especifica un nodo XML.

Devoluciones

que XPathNodeIterator se rellena con los nodos a partir del nodo especificado.

Excepciones

Se llamó al método GetContextNodes desde un controlador de eventos para el Loading evento.

El parámetro pasado a este método es una referencia nula (Nothing en Visual Basic).

El parámetro que se ha pasado a este método no es válido. Por ejemplo, es de un tipo o formato no válido.

Ejemplos

En el ejemplo siguiente, el SelectNodes(XPathNavigator) método se usa para seleccionar los nodos de la primera fila de un control Repeating Table enlazado a group2. A continuación, se usa el método GetContextNodes para devolver una colección de nodos de contexto basada en la selección actual y el nodo especificado. Por último, el código realiza una operación de bucle en la colección de nodos de contexto y muestra el nombre, XML interno y 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 context nodes in selection.
XPathNodeIterator contextNodes = 
   CurrentView.GetContextNodes(repeatingTableRow1);

// Loop through collection and display information.
foreach (XPathNavigator contextNode in contextNodes)
{
   MessageBox.Show(contextNode.Name);
   MessageBox.Show(contextNode.InnerXml);
   MessageBox.Show(contextNode.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 context nodes in selection.
Dim contextNodes As XPathNodeIterator = _
   CurrentView.GetContextNodes(repeatingTableRow1)

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

Comentarios

Los nodos XML devuelto por el método GetContextNodes son una secuencia de nodos que se asignan desde la vista, correspondientes al nodo actual de transformación XSL (XSLT), empezando en el nodo actual y recorriendo los antecesores de la vista hasta la etiqueta BODY.

Si los nodos especificados están enlazados a más de un control en la vista, debe usar el GetContextNodes(XPathNavigator, String) método en su lugar, que le permite especificar el identificador ViewContext del control enlazado a los nodos que desea recorrer en iteración.

Nota: El método GetContextNodes no devolverá nodos en función de la selección actual si se usa en el controlador de eventos para el Clicked evento de un botón en la vista, ya que el foco se pierde del control que está pensado para estar en contexto. Para evitar este comportamiento, utilice el método GetContextNodes desde un panel de tareas personalizado, un menú o una barra de tareas.

Únicamente se puede acceder a este miembro con formularios que se ejecuten en el mismo dominio que el formulario que está actualmente abierto o con formularios a los que se hayan concedido permisos entre dominios.

Únicamente se puede acceder a este tipo o miembro desde el código que se ejecuta en los formularios abiertos en Microsoft InfoPath Filler.

Se aplica a

GetContextNodes(XPathNavigator, String)

Obtiene una referencia a para XPathNodeIterator recorrer en iteración los nodos XML devueltos en la selección actual dentro del control enlazado al control especificado.

public:
 abstract System::Xml::XPath::XPathNodeIterator ^ GetContextNodes(System::Xml::XPath::XPathNavigator ^ xmlNode, System::String ^ controlId);
public abstract System.Xml.XPath.XPathNodeIterator GetContextNodes (System.Xml.XPath.XPathNavigator xmlNode, string controlId);
abstract member GetContextNodes : System.Xml.XPath.XPathNavigator * string -> System.Xml.XPath.XPathNodeIterator
Public MustOverride Function GetContextNodes (xmlNode As XPathNavigator, controlId As String) As XPathNodeIterator

Parámetros

xmlNode
XPathNavigator

Objeto que especifica el nodo que se va a obtener.

controlId
String

Identificador ViewContext del control que contiene los nodos XML seleccionados que se van a devolver.

Devoluciones

que XPathNodeIterator se rellena con los nodos de la selección actual.

Excepciones

Se llamó al método GetContextNodes desde un controlador de eventos para el Loading evento.

Los parámetros pasados a este método son una referencia nula (Nothing en Visual Basic).

Los parámetros que se han pasado a este método no son válidos. Por ejemplo, son de un tipo o formato no válido.

Ejemplos

En el ejemplo siguiente, el SelectNodes(XPathNavigator, XPathNavigator, String) método se usa para seleccionar los nodos de la primera fila de un control Repeating Table enlazado a group2. A continuación, se usa el método GetContextNodes para devolver una colección de nodos de contexto basada en la selección actual y el nodo especificado. Por último, el código realiza una operación de bucle en la colección de nodos de contexto y muestra el nombre, XML interno y 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,repeatingTableRow1,"CTRL5");

// Get context nodes in selection.
XPathNodeIterator contextNodes = 
   CurrentView.GetContextNodes(repeatingTableRow1,"CTRL5");

// Loop through collection and display information.
foreach (XPathNavigator contextNode in contextNodes)
{
   MessageBox.Show(contextNode.Name);
   MessageBox.Show(contextNode.InnerXml);
   MessageBox.Show(contextNode.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,repeatingTableRow1,"CTRL5")

' Get context nodes in selection.
Dim contextNodes As XPathNodeIterator = _
   CurrentView.GetContextNodes(repeatingTableRow1)

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

Comentarios

Para determinar el identificador de ViewContext de un control o grupo, abra la plantilla de formulario en modo diseño, muestre el cuadro de diálogo Propiedades del control y haga clic en la pestaña Opciones avanzadas.

Si se especifica el identificador ViewContext, todos los nodos XML que se han especificado para su selección deben encontrarse en ese contexto.

Los nodos XML devuelto por el método GetContextNodes son una secuencia de nodos que se asignan desde la vista, correspondientes al nodo actual de transformación XSL (XSLT), empezando en la selección actual y recorriendo los antecesores de la vista hasta la etiqueta BODY.

Nota: El método GetContextNodes no devolverá nodos en función de la selección actual si se usa en el controlador de eventos para el Clicked evento de un botón en la vista, ya que el foco se pierde del control que está pensado para estar en contexto. Para evitar este comportamiento, utilice el método GetContextNodes desde un panel de tareas personalizado, un menú o una barra de tareas.

Únicamente se puede acceder a este miembro con formularios que se ejecuten en el mismo dominio que el formulario que está actualmente abierto o con formularios a los que se hayan concedido permisos entre dominios.

Únicamente se puede acceder a este tipo o miembro desde el código que se ejecuta en los formularios abiertos en Microsoft InfoPath Filler.

Se aplica a

GetContextNodes()

Obtiene una referencia a para XPathNodeIterator recorrer en iteración los nodos XML devueltos en la selección actual.

public:
 abstract System::Xml::XPath::XPathNodeIterator ^ GetContextNodes();
public abstract System.Xml.XPath.XPathNodeIterator GetContextNodes ();
abstract member GetContextNodes : unit -> System.Xml.XPath.XPathNodeIterator
Public MustOverride Function GetContextNodes () As XPathNodeIterator

Devoluciones

que XPathNodeIterator se rellena con los nodos de la selección actual.

Excepciones

Se llamó al método GetContextNodes desde un controlador de eventos para el Loading evento.

Ejemplos

En el ejemplo siguiente, el método GetContextNodes se usa para devolver una colección de nodos de contexto basada en la selección para rellenar una variable de objeto XPathNodeIterator. Después, el código efectúa un bucle en la colección de nodos de contexto y muestra el nombre, el XML interno y el valor de cada nodo.

// Get context nodes in current selection.
XPathNodeIterator contextNodes = 
   CurrentView.GetContextNodes();

// Loop through collection and display information.
foreach (XPathNavigator contextNode in contextNodes)
{
   MessageBox.Show(contextNode.Name);
   MessageBox.Show(contextNode.InnerXml);
   MessageBox.Show(contextNode.Value);
}
' Get context nodes in current selection.
Dim contextNodes As XPathNodeIterator = _
   CurrentView.GetContextNodes(repeatingTableRow1)

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

Comentarios

Los nodos XML que devuelve el método GetContextNodes consisten en una secuencia de nodos que se asignan desde la vista, en correspondencia con los nodos de transformación XSL (XSLT) seleccionados.

Si los nodos seleccionados están enlazados a más de un control en la vista, debe usar el GetContextNodes(XPathNavigator, String) método en su lugar, lo que le permite especificar el identificador ViewContext del control que está enlazado a los nodos que desea recorrer en iteración.

Nota: El método GetContextNodes no devolverá nodos en función de la selección actual si se usa en el controlador de eventos para el Clicked evento de un botón en la vista, ya que el foco se pierde del control que está pensado para estar en contexto. Para evitar este comportamiento, utilice el método GetContextNodes desde un panel de tareas personalizado, un menú o una barra de tareas.

Únicamente se puede acceder a este miembro con formularios que se ejecuten en el mismo dominio que el formulario que está actualmente abierto o con formularios a los que se hayan concedido permisos entre dominios.

Únicamente se puede acceder a este tipo o miembro desde el código que se ejecuta en los formularios abiertos en Microsoft InfoPath Filler.

Se aplica a