View.GetContextNodes 方法
获取一个对 XMLNodesCollection 集合的引用,该集合是基于当前上下文用 XML 文档对象模型 (DOM) 节点填充的。
命名空间: Microsoft.Office.Interop.InfoPath.SemiTrust
程序集: Microsoft.Office.Interop.InfoPath.SemiTrust(位于 Microsoft.Office.Interop.InfoPath.SemiTrust.dll 中)
语法
声明
Function GetContextNodes ( _
varNode As Object, _
varViewContext As Object _
) As XMLNodesCollection
用法
Dim instance As View
Dim varNode As Object
Dim varViewContext As Object
Dim returnValue As XMLNodesCollection
returnValue = instance.GetContextNodes(varNode, _
varViewContext)
XMLNodesCollection GetContextNodes(
Object varNode,
Object varViewContext
)
参数
varNode
类型:System.ObjectXML DOM 节点。
varViewContext
类型:System.Object用于上下文的控件的 ID。
返回值
类型:Microsoft.Office.Interop.InfoPath.SemiTrust.XMLNodesCollection
一个对 XMLNodesCollection 集合的引用。
备注
由 GetContextNodes 方法返回的集合包含一系列从视图映射而来的 XML DOM 节点,这些节点与当前的 XSL 传输 (XSLT) 节点相对应,从当前所选项开始,沿视图祖先向上直到 BODY 标记。
如果不使用参数,则上下文节点将基于当前所选项。如果使用参数,则返回的上下文节点将是那些基于通过调用 SelectNodes 方法获得的所选项而返回的节点。
备注
由于焦点脱离规定在上下文中的控件,如果在视图中某个按钮的 OnClick 事件中使用,GetContextNodes 方法将不返回基于当前选择的节点。若要避免此行为,请通过自定义任务窗格、菜单或工具栏使用 GetContextNodes 方法。
重要
此成员只能由与当前打开的表单在相同域中运行的表单访问,或者由已授予跨域权限的表单访问。
示例
在以下示例中,ViewObject 对象的 GetContextNodes 方法用来基于当前上下文返回 XML DOM 节点的集合。然后代码循环遍历该 XML DOM 节点集合以查找特定节点。找到后,field1 的文本将进行更新。本示例需要一个名为 group1 的重复节结构,其中包含一个名为 field1 的域。
XMLNodesCollection contextNodes = thisXDocument.View.GetContextNodes(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;
}
}