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
- xmlNode
Typ: System.Xml.XPath.XPathNavigator
Ein Objekt, das einen XML-Knoten angibt.
Rückgabewert
Typ: System.Xml.XPath.XPathNodeIterator
Ein XPathNodeIterator-Objekt, das aufgefüllt wird mit den Knoten beginnend beim angegebenen Knoten.
Ausnahmen
Ausnahme | Bedingung |
---|---|
InvalidOperationException | Die GetContextNodes-Methode wurde aus einem Ereignishandler für das Loading-Ereignis aufgerufen. |
ArgumentNullException | Der an diese Methode übergebene Parameter lautet ein Nullverweis (Nothing in Visual Basic). |
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 InfoPath Filler geöffnet wurden.
Beispiele
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