1
我在Infopath中有一個重複表格。在字段更改事件中,我需要執行計算來處理相關行中的數據。我如何在代碼隱藏(C#)和Xpath中解決這個問題?Infopath重複表格 - 從當前行獲取字段
例如,我有一個開始日期和結束日期。在代碼後面做一個計算來計算跨度中的小時數。這適用於第一行,但不適用於後續行。我知道迄今爲止我編寫它的方式只適用於第一行,但我如何使這項工作適用於所有行?
我在Infopath中有一個重複表格。在字段更改事件中,我需要執行計算來處理相關行中的數據。我如何在代碼隱藏(C#)和Xpath中解決這個問題?Infopath重複表格 - 從當前行獲取字段
例如,我有一個開始日期和結束日期。在代碼後面做一個計算來計算跨度中的小時數。這適用於第一行,但不適用於後續行。我知道迄今爲止我編寫它的方式只適用於第一行,但我如何使這項工作適用於所有行?
您可以爲此使用XPathNodeIterator。例如: 您可以爲此使用XPathNodeIterator。例如:
XPathNodeIterator nodes = MainDataSource.CreateNavigator().Select("/my:myFields/my:group1/my:group2", this.NamespaceManager);
string field1 = string.Empty;
string field2 = string.Empty;
string field3 = string.Empty;
foreach (XPathNavigator node in nodes)
{
field1 = node.SelectSingleNode("my:field1", this.NamespaceManager).Value;
field2 = node.SelectSingleNode("my:field2", this.NamespaceManager).Value;
field3 = node.SelectSingleNode("my:field3", this.NamespaceManager).Value;
}
這將得到每個字段的值並將字符串變量設置爲該值。如果你希望來連接所有的值,就需要修改這個 - 你可以做一些很簡單的,如:
field1 = node.SelectSingleNode("my:field1", this.NamespaceManager).Value + " " + field1;
或者(如果你不希望訴諸後面的代碼),你可以做原始日期差異與字段解析的字段。然後,您可以使用內置的規則(爲您保留重複行)。如果您堅持使用代碼,或者在別處已經有代碼,那麼只需使用其中一個答案中給出的XPathNodeIterator即可。 – ktharsis 2012-07-16 21:21:12