View.GetContextNodes(Object, Object) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets a reference to an XMLNodesCollection collection that is populated with XML Document Object Model (DOM) nodes based on the current context.
public Microsoft.Office.Interop.InfoPath.XMLNodesCollection GetContextNodes (object varNode, object varViewContext);
abstract member GetContextNodes : obj * obj -> Microsoft.Office.Interop.InfoPath.XMLNodesCollection
Public Function GetContextNodes (Optional varNode As Object, Optional varViewContext As Object) As XMLNodesCollection
Parameters
- varNode
- Object
An XML DOM node.
- varViewContext
- Object
The ID of the control that is used for the context.
Returns
A reference to the XMLNodesCollection collection.
Examples
In the following example, the GetContextNodes method of the ViewObject object is used to return a collection of XML DOM nodes based on the current context. The code then loops through the collection of XML DOM nodes looking for a particular node. When it is found, the text of field1
is updated. This example requires a structure of a repeating section named group1
containing a field named field1
.
XMLNodesCollection contextNodes = thisXDocument.View.<span class="label">GetContextNodes</span>(Type.Missing, Type.Missing);
// Scan the list of context nodes for an field1 node and if one is found
// update its text.
foreach (IXMLDOMNode contextNode in contextNodes)
{
if (contextNode.nodeName == "my:group1")
{
contextNode.selectSingleNode("my:field1").text = "found node";
break;
}
}
Remarks
The collection returned by the GetContextNodes method consists of the sequence of XML DOM nodes that are mapped from the view, corresponding to the current XSL Transformation (XSLT) node, starting at the current selection and walking up through the view ancestors to the BODY tag.
If no parameters are used, the context nodes are based on the current selection. If parameters are used, then the context nodes returned are those that would be returned based on the selection that would be obtained from calling the SelectNodes(IXMLDOMNode, Object, Object) method.
Note: The GetContextNodes method will not return nodes based on the current selection if used in the OnClick event of a button in the view, since the focus is lost from the control that is intended to be in context. To avoid this behavior, use the GetContextNodes method from a custom task pane, menu or toolbar.