Freigeben über


View.GetContextNodes-Methode (XPathNavigator, String)

Ruft einen Verweis auf ein XPathNodeIterator-Objekt zum Durchlaufen der zurückgegebenen XML-Knoten in der aktuellen Auswahl innerhalb des an das angegebene Steuerelement gebundenen Steuerelements ab.

Namespace:  Microsoft.Office.InfoPath
Assembly:  Microsoft.Office.InfoPath (in Microsoft.Office.InfoPath.dll)

Syntax

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

returnValue = instance.GetContextNodes(xmlNode, _
    controlId)
public abstract XPathNodeIterator GetContextNodes(
    XPathNavigator xmlNode,
    string controlId
)

Parameter

  • controlId
    Typ: System.String
    Der ViewContext-Bezeichner des Steuerelements, das die aktuell ausgewählten XML-Knoten enthält, die zurückgegeben werden sollen.

Rückgabewert

Typ: System.Xml.XPath.XPathNodeIterator
Ein XPathNodeIterator-Objekt, das mit den Knoten in der aktuellen Auswahl aufgefüllt wird.

Ausnahmen

Ausnahme Bedingung
InvalidOperationException

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

ArgumentNullException

Die an diese Methode übergebenen Parameter sind ein Nullverweis (Nothing in Visual Basic).

ArgumentException

Die an diese Methode übergebenen Parameter sind nicht gültig. Die Parameter weisen beispielsweise den falschen Typ oder das falsche Format auf.

Hinweise

Sie können den ViewContext-Bezeichner für ein Steuerelement oder eine Gruppe bestimmen, indem Sie die Formularvorlage im Entwurfsmodus öffnen, das Dialogfeld Eigenschaften des Steuerelements anzeigen und dann auf die Registerkarte Erweitert klicken.

Wenn der ViewContext-Bezeichner angegeben ist, müssen sich alle XML-Knoten, die zum Auswählen angegeben wurden, in diesem Kontext befinden.

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 bei der aktuellen Auswahl und wird über die Ansichtenvorgänger bis hin zum BODY-Tag fortgesetzt.

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(XPathNavigator, XPathNavigator, String)-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,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

Siehe auch

Referenz

View Klasse

View-Member

GetContextNodes Überladung

Microsoft.Office.InfoPath-Namespace