从InfoPath重复表中检索和更新数据

时间:2017-06-16 03:51:03

标签: c# infopath

我发现这个link有助于从infopath中获取数据。不幸的是,在我每次用户在字段上进行更改后尝试设置值时,它似乎是无限循环并导致错误。

这是我的代码:

XPathNavigator xNavigation = this.MainDataSource.CreateNavigator();
XPathNodeIterator xNodeIterator = xNavigation.Select(“/my:myFields/my:group1/my:group2”, this.NamespaceManager);
while (xNodeIterator.MoveNext()){
  string mystring = xNodeIterator.Current.SelectSingleNode(“my:County”, this.NamespaceManager).Value;
  xNodeIterator.Current.SelectSingleNode(“my:County”, this.NamespaceManager).SetValue("mystring"+ mystring);
}

这里有什么问题?请帮帮我。

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的,你可以使用XPathNavigator来浏览列表而不使用While循环:

EDITED,基于评论的更多信息:

foreach (XPathNavigator nav in xNavigation.Select(“/my:myFields/my:group1/my:group2”, this.NamespaceManager))
{
    string mystring = myTextBox.Text + ", " + "GUID";  //replace "GUID" with the actual GUID which you need
    nav.SelectSingleNode("my:field3", this.NamespaceManager).SetValue("mystring"+ mystring);
}

基本上,您应该获取元素/节点的值,然后在向其添加内容后设置相同的元素/节点的值。这将导致指数字符串扩展。