[C#.NET][Infopath 2010] 如何在 VSTA 使用 XPathNodeIterator

[C#.NET][Infopath 2010] 如何在 VSTA 使用 XPathNodeIterator

在上篇[Infopath 2010] 如何在 VSTA 使用 XPathNavigator 介紹了使用單一節點的方法,本篇將介紹重覆節點的用法

2010-5-6 上午 12-41-42

它可以在表單上讓使用者動態插入列,想插多少就插多少

2010-5-6 上午 12-43-59

 

 

這些操作該如何用程式產生呢?別急,讓我們先學好怎麼用 XPathNodeIterator

Step1.引用重覆節點


//引用 MainData 節點
XPathNavigator root = MainDataSource.CreateNavigator();
//引用 target 節點
XPathNodeIterator retable = root.Select("/my:myFields/my:target", this.NamespaceManager);

 

 

用法其實跟單一節點一樣,只是引用的類別不一樣

單一節點:XPathNavigator retable = root.SelectSingleNode("/my:myFields/my:target", this.NamespaceManager);

重覆節點:XPathNodeIterator retable = root.Select("/my:myFields/my:target", this.NamespaceManager);

這樣列出來應該就懂了吧,可別弄錯了。

 

Step2.移動節點

當我們引用XPathNodeIterator 後,需要用MoveNext方法來取得欄位內容


string value = string.Empty;
if (retable != null)
{
    while (retable.MoveNext())
    {
        value += retable.Current.Value+"\n";
        Console.WriteLine(value);
    }
}

 

執行結果

2010-5-6 上午 01-47-24

範例下載

Infopath 2010Demo4.rar

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo