Поделиться через


View.GetContextNodes Метод

Определение

Перегрузки

GetContextNodes(XPathNavigator)

Возвращает ссылку XPathNodeIterator на объект для итерации по возвращенным XML-узлам, начиная с указанного узла.

GetContextNodes(XPathNavigator, String)

Возвращает ссылку XPathNodeIterator на для итерации по возвращенным узлам XML в текущем выборе в элементе управления, привязанном к указанному элементу управления.

GetContextNodes()

Возвращает ссылку XPathNodeIterator на объект для итерации по возвращенным XML-узлам в текущем выделенном фрагменте.

GetContextNodes(XPathNavigator)

Возвращает ссылку XPathNodeIterator на объект для итерации по возвращенным XML-узлам, начиная с указанного узла.

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

Параметры

xmlNode
XPathNavigator

Объект, который указывает узел XML.

Возвращаемое значение

Объект XPathNodeIterator , который заполняется узлами, начиная с указанного узла.

Исключения

Метод GetContextNodes был вызван из обработчика событий для Loading события.

Параметр, передаваемый этому методу, является пустой ссылкой (Nothing в Visual Basic).

Этому методу передан недопустимый параметр. Например, неправильный тип или формат.

Примеры

В следующем примере метод используется для выбора узлов в первой строке элемента управления "Повторяющаяся таблица", SelectNodes(XPathNavigator) привязанного к group2. Метод GetContextNodes затем используется для возврата коллекции узлов контекста на основе текущего выбора и указанных узлов. Наконец, код затем выполняет цикл по коллекции узлов контекста и отображает имя, внутренний XML-код и значение каждого узла.

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

Комментарии

Узлы XML, возвращенные методом GetContextNodes, составляют последовательность узлов, сопоставленных из представления, соответствующего текущему узлу преобразования XSL (XSLT), начиная с указанного узла и через родительские представления до тега BODY.

Если указанные узлы привязаны к нескольким элементам управления в представлении, необходимо использовать GetContextNodes(XPathNavigator, String) метод , который позволяет указать идентификатор ViewContext элемента управления, привязанного к узлам, по которым требуется выполнить итерацию.

Примечание. Метод GetContextNodes не возвращает узлы на основе текущего выделения, если используется в обработчике событий для Clicked события кнопки в представлении, так как фокус теряется из элемента управления, который должен находиться в контексте. Чтобы избежать этого поведения, используйте метод GetContextNodes из настраиваемой области задач, меню или панели инструментов.

Доступ к этому элементу предоставляется только формам, работающим в том же домене, что и текущая открытая форма, а также формам с междоменными правами доступа.

Доступ к этому типу или элементу предоставляется только из кода, выполняющегося в формах, открытых в Microsoft InfoPath Filler.

Применяется к

GetContextNodes(XPathNavigator, String)

Возвращает ссылку XPathNodeIterator на для итерации по возвращенным узлам XML в текущем выборе в элементе управления, привязанном к указанному элементу управления.

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

Параметры

xmlNode
XPathNavigator

Объект, указывающий узел для получения.

controlId
String

Идентификатор ViewContext элемента управления, содержащего выбранные возвращаемые узлы XML.

Возвращаемое значение

Объект XPathNodeIterator , заполненный узлами в текущем выделенном фрагменте.

Исключения

Метод GetContextNodes был вызван из обработчика событий для Loading события.

Параметры, передаваемые этому методу, являются пустой ссылкой (Nothing в Visual Basic).

Этому методу переданы недопустимые параметры. Например, неправильный тип или формат.

Примеры

В следующем примере метод используется для выбора узлов в первой строке элемента управления "Повторяющаяся таблица", SelectNodes(XPathNavigator, XPathNavigator, String) привязанного к group2. Метод GetContextNodes затем используется для возврата коллекции узлов контекста на основе текущего выбора и указанных узлов. Наконец, код выполняет цикл по коллекции узлов контекста и отображает имя, внутренний XML-код и значение каждого узла.

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

Комментарии

Идентификатор ViewContext для элемента управления или группы можно определить, открыв шаблон формы в режиме конструктора, открыв диалоговое окно Свойства элемента управления, а затем щелкнув вкладку Дополнительно.

Когда указан идентификатор ViewContext, все узлы XML, указанные для выбора, должны находится в этом контексте.

Узлы XML, возвращенные методом GetContextNodes, составляют последовательность узлов, сопоставленных из представления, соответствующего текущему узлу преобразования XSL (XSLT), начиная с текущего выбора и через родительские представления до тега BODY.

Примечание. Метод GetContextNodes не возвращает узлы на основе текущего выделения, если используется в обработчике событий для Clicked события кнопки в представлении, так как фокус теряется из элемента управления, который должен находиться в контексте. Чтобы избежать этого поведения, используйте метод GetContextNodes из настраиваемой области задач, меню или панели инструментов.

Доступ к этому элементу предоставляется только формам, работающим в том же домене, что и текущая открытая форма, а также формам с междоменными правами доступа.

Доступ к этому типу или элементу предоставляется только из кода, выполняющегося в формах, открытых в Microsoft InfoPath Filler.

Применяется к

GetContextNodes()

Возвращает ссылку XPathNodeIterator на объект для итерации по возвращенным XML-узлам в текущем выделенном фрагменте.

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

Возвращаемое значение

Объект XPathNodeIterator , заполненный узлами в текущем выделенном фрагменте.

Исключения

Метод GetContextNodes был вызван из обработчика событий для Loading события.

Примеры

В следующем примере метод GetContextNodes используется для возвращения коллекции узлов контекста на основе текущего выбора для заполнения переменной объекта XPathNodeIterator. Затем код выполняет цикл по коллекции узлов контекста и отображает имя, внутренний XML-код и значение каждого узла.

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

Комментарии

Узлы XML, возвращенные методом GetContextNodes, составляют последовательность узлов, сопоставленных из представления, соответствующего выбранным узла преобразования XSL (XSLT).

Если выбранные узлы привязаны к нескольким элементам управления в представлении, вместо этого необходимо использовать GetContextNodes(XPathNavigator, String) метод , который позволяет указать идентификатор ViewContext элемента управления, привязанного к узлам, по которым нужно выполнить итерацию.

Примечание. Метод GetContextNodes не возвращает узлы на основе текущего выделения, если используется в обработчике событий для Clicked события кнопки в представлении, так как фокус теряется из элемента управления, который должен находиться в контексте. Чтобы избежать этого поведения, используйте метод GetContextNodes из настраиваемой области задач, меню или панели инструментов.

Доступ к этому элементу предоставляется только формам, работающим в том же домене, что и текущая открытая форма, а также формам с междоменными правами доступа.

Доступ к этому типу или элементу предоставляется только из кода, выполняющегося в формах, открытых в Microsoft InfoPath Filler.

Применяется к