Freigeben über


View.GetContextNodes-Methode (XPathNavigator)

Ruft einen Verweis auf ein XPathNodeIterator-Objekt zum Durchlaufen der zurückgegebenen XML-Knoten beginnend beim angegebenen Knoten ab.

Namespace: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in microsoft.office.infopath.dll)

Syntax

'Declaration
Public MustOverride Function GetContextNodes ( _
    xmlNode As XPathNavigator _
) As XPathNodeIterator
'Usage
Dim instance As View
Dim xmlNode As XPathNavigator
Dim returnValue As XPathNodeIterator

returnValue = instance.GetContextNodes(xmlNode)
public abstract XPathNodeIterator GetContextNodes (
    XPathNavigator xmlNode
)

Parameter

Rückgabewert

Ein XPathNodeIterator-Objekt, das aufgefüllt wird mit den Knoten beginnend beim angegebenen Knoten.

Ausnahmen

Ausnahmetyp Bedingung

InvalidOperationException

Die GetContextNodes-Methode wurde aus einem Ereignishandler für das Loading-Ereignis aufgerufen.

ArgumentNullException

Der an diese Methode übergebene Parameter lautet null.

ArgumentException

Der an diese Methode übergebene Parameter ist nicht gültig. Der Parameter weist beispielsweise den falschen Typ oder das falsche Format auf.

Hinweise

Die von der GetContextNodes-Methode zurückgegebenen XML-Knoten bestehen aus einer Sequenz von Knoten, die von der Ansicht entsprechend dem aktuellen XSLT-Knoten (XSL-Transformation) zugeordnet werden. Diese Zuordnung beginnt beim angegebenen Knoten und wird über die Ansichtenvorgänger bis hin zum BODY-Tag fortgesetzt.

Wenn angegebene Knoten an mehrere Steuerelemente in der Ansicht gebunden sind, müssen Sie stattdessen die GetContextNodes-Methode verwenden, mit der Sie den ViewContext-Bezeichner des Steuerelements angeben können, das an die zu durchlaufenden Knoten gebunden ist.

Hinweis

Die GetContextNodes-Methode gibt basierend auf der aktuellen Auswahl keine Knoten zurück, wenn sie im Ereignishandler für das Clicked-Ereignis einer Schaltfläche in der Ansicht verwendet wird, da der Fokus dem Steuerelement entzogen wird, das sich eigentlich im Kontext befinden sollte. Um dieses Verhalten zu vermeiden, verwenden Sie GetContextNodes in einem benutzerdefinierten Aufgabenbereich, einem benutzerdefinierten Menü oder einer benutzerdefinierten Symbolleiste.

Auf den Member kann nur über Formulare zugegriffen werden, die in derselben Domäne wie das zurzeit geöffnete Formular ausgeführt werden, oder über Formulare, denen domänenübergreifende Berechtigungen erteilt wurden.

Auf diesen Typ oder diesen Member kann nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die mit Microsoft Office InfoPath 2007 geöffnet wurden.

Beispiel

Im folgenden Beispiel wird die SelectNodes-Methode zum Auswählen der Knoten in der ersten Zeile eines an group2 gebundenen Steuerelements vom Typ Wiederholte Tabelle verwendet. Dann wird die GetContextNodes-Methode verwendet, um basierend auf der aktuellen Auswahl und dem angegebenen Knoten eine Auflistung von Kontextknoten zurückzugeben. Schließlich führt der Code eine Schleife durch die Auflistung der Kontextknoten aus und zeigt den Namen, die innere XML und den Wert jedes Knotens an.

// 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

Siehe auch

Referenz

View-Klasse
View-Member
Microsoft.Office.InfoPath-Namespace