1

有没有按类型迭代信息路径字段?

如,遍历所有日期字段或所有整数字段等。我正在尝试编写一个在表单后面的代码中执行字段验证的类,因为从后面的代码提交表单时,OOTB 字段验证不起作用。我想编写一个可用于任何信息路径表单的通用类。谢谢。

4

2 回答 2

1

您不能仅通过 InfoPath 表单的 XML 执行此操作。
您必须依赖 myschema.xsd(您可以通过将 xsn 文件重命名为 cab 并提取它或从发布菜单中选择“导出源文件”来获取此文件)。现在您有了 xsd 文件,并且在 InfoPath 表单中字段的名称是唯一的,您可以执行以下操作:
1- 从 InfoPath 表单中获取字段的名称
2- 检查该字段的数据类型myschema.xsd 文件
3- 进行验证。

简而言之,myschema.xsd 文件存储数据类型
<xsd:element name="CurrentAccount" nillable="true" type="xsd:boolean"/>
但 InfoPath 表单仅存储可能转换为多种数据类型的值(我只是将其视为字符串)
<my:CurrentAccount>false</my:CurrentAccount>

于 2011-11-03T08:16:13.103 回答
0

很有可能与Linq有关。例如,您有一个对象列表,其中放置了不同的东西,但您只迭代字符串:

var fields = new List<object>();
fields.Add(42);
fields.Add("one");
fields.Add(84);
fields.Add("two");
foreach (string s in fields.OfType<string>())
{
    Debug.Print(s);
}

您将进入输出窗口:

one
two
于 2011-10-25T11:06:18.830 回答