[C#.NET][Infopath 2007] 使用 XPathNodeIterator 讀取欄位

[C#.NET][Infopath 2007] 使用 XPathNodeIterator 讀取欄位

如果在Infopath裡有像這樣的資料欄位,

2009-12-3 上午 02-14-17

fields是一個重複表格

2009-12-3 上午 02-16-33

利用以下程式碼,不管使用者動態增加了幾列資料,都能夠將它撈出來。


public void GetValue_Clicked(object sender, ClickedEventArgs e)
{
    //1.定義資料庫
    XPathNavigator root = MainDataSource.CreateNavigator();
    //2.定義群組名稱
    XPathNodeIterator fields = root.Select("/my:myFields/my:group/my:fields", NamespaceManager);
    string str =string.Empty;
    //3.定義RichTextBox欄位
    XPathNavigator RichTextBox = root.SelectSingleNode("/my:myFields/my:ShowValue", NamespaceManager);
    //列舉欄位資料
    while (fields.MoveNext())
    {
        string id = fields.Current.SelectSingleNode("my:ID", NamespaceManager).Value;
        string name = fields.Current.SelectSingleNode("my:Name", NamespaceManager).Value;
        str = str  +id+ " , " + name + System.Environment.NewLine;
        Debug.WriteLine(str);
    }
    RichTextBox.SelectSingleNode("/my:myFields/my:ShowValue", NamespaceManager).SetValue(str);
}

 

2009-12-3 上午 02-21-25

 

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


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

Image result for microsoft+mvp+logo