Freigeben über


View.GetContextNodes Methode

Definition

Überlädt

GetContextNodes(XPathNavigator)

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

GetContextNodes(XPathNavigator, String)

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

GetContextNodes()

Ruft einen Verweis auf einen XPathNodeIterator zum Durchlaufen der zurückgegebenen XML-Knoten in der aktuellen Auswahl ab.

GetContextNodes(XPathNavigator)

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

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

Parameter

xmlNode
XPathNavigator

Ein Objekt, das einen XML-Knoten angibt.

Gibt zurück

Ein XPathNodeIterator , das mit den Knoten beginnend mit dem angegebenen Knoten aufgefüllt wird.

Ausnahmen

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

Der an diese Methode übergebene Parameter ist ein NULL-Verweis (Nothing in Visual Basic).

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

Beispiele

Im folgenden Beispiel wird die SelectNodes(XPathNavigator) -Methode verwendet, um die Knoten in der ersten Zeile eines Steuerelements für wiederholte Tabellen auszuwählen, das an group2 gebunden ist. 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

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 mehr als ein Steuerelement in der Ansicht gebunden sind, müssen Sie stattdessen die -Methode verwenden, mit der GetContextNodes(XPathNavigator, String) Sie den ViewContext-Bezeichner des Steuerelements angeben können, das an die Knoten gebunden ist, die Sie durchlaufen möchten.

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

Auf dieses Mitglied kann nur mithilfe von Formularen zugegriffen werden, die in der gleichen Domäne wie das derzeit geöffnete Formular ausgeführt werden oder denen domänenübergreifende Berechtigungen zugewiesen wurden.

Auf diesen Typ oder dieses Mitglied kann nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die in Microsoft InfoPath Filler geöffnet wurden.

Gilt für:

GetContextNodes(XPathNavigator, String)

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

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

Parameter

xmlNode
XPathNavigator

Ein Objekt, das den abzurufenden Knoten angibt.

controlId
String

Der ViewContext-Bezeichner des Steuerelements, das die aktuell ausgewählten XML-Knoten enthält, die zurückgegeben werden sollen.

Gibt zurück

Ein XPathNodeIterator , das mit den Knoten in der aktuellen Auswahl aufgefüllt wird.

Ausnahmen

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

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

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

Beispiele

Im folgenden Beispiel wird die SelectNodes(XPathNavigator, XPathNavigator, String) -Methode verwendet, um die Knoten in der ersten Zeile eines Steuerelements für wiederholte Tabellen auszuwählen, das an group2 gebunden ist. 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

Hinweise

Sie können den ViewContext-Bezeichner für ein Steuerelement oder eine Gruppe ermitteln, 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 keine Knoten basierend auf der aktuellen Auswahl zurück, wenn sie im Ereignishandler für das Clicked Ereignis einer Schaltfläche in der Ansicht verwendet wird, da der Fokus von dem Steuerelement verloren geht, das im Kontext sein soll. Um dieses Verhalten zu vermeiden, verwenden Sie GetContextNodes in einem benutzerdefinierten Aufgabenbereich, einem benutzerdefinierten Menü oder einer benutzerdefinierten Symbolleiste.

Auf dieses Mitglied kann nur mithilfe von Formularen zugegriffen werden, die in der gleichen Domäne wie das derzeit geöffnete Formular ausgeführt werden oder denen domänenübergreifende Berechtigungen zugewiesen wurden.

Auf diesen Typ oder dieses Mitglied kann nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die in Microsoft InfoPath Filler geöffnet wurden.

Gilt für:

GetContextNodes()

Ruft einen Verweis auf einen XPathNodeIterator zum Durchlaufen der zurückgegebenen XML-Knoten in der aktuellen Auswahl ab.

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

Gibt zurück

Ein XPathNodeIterator , das mit den Knoten in der aktuellen Auswahl aufgefüllt wird.

Ausnahmen

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

Beispiele

Im folgenden Beispiel wird die GetContextNodes-Methode verwendet, um eine Auflistung von Kontextknoten basierend auf der aktuellen Auswahl zurückzugeben, um eine XPathNodeIterator-Objektvariable aufzufüllen. Der Code führt dann eine Schleife durch die Auflistung von Kontextknoten aus und zeigt den Namen, die innere XML und den Wert jedes Knotens an.

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

Hinweise

Die von der GetContextNodes-Methode zurückgegebenen XML-Knoten bestehen aus einer Sequenz von Knoten, die von der Ansicht entsprechend den ausgewählten XSLT-Knoten (XSL-Transformation) zugeordnet werden.

Wenn die ausgewählten Knoten an mehr als ein Steuerelement in der Ansicht gebunden sind, müssen Sie stattdessen die -Methode verwenden, mit der GetContextNodes(XPathNavigator, String) Sie den ViewContext-Bezeichner des Steuerelements angeben können, das an die Knoten gebunden ist, die Sie durchlaufen möchten.

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

Auf dieses Mitglied kann nur mithilfe von Formularen zugegriffen werden, die in der gleichen Domäne wie das derzeit geöffnete Formular ausgeführt werden oder denen domänenübergreifende Berechtigungen zugewiesen wurden.

Auf diesen Typ oder dieses Mitglied kann nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die in Microsoft InfoPath Filler geöffnet wurden.

Gilt für: