Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按类型迭代InfoPath字段_C#_Infopath2010 - Fatal编程技术网

C# 按类型迭代InfoPath字段

C# 按类型迭代InfoPath字段,c#,infopath2010,C#,Infopath2010,是否仍然可以按类型对infopath字段进行迭代 如中所示,迭代所有日期字段或所有整数字段等。我试图编写一个类,在表单的代码隐藏中执行字段验证,因为从代码隐藏提交表单时OOTB字段验证不起作用。我想编写一个可用于任何infopath表单的通用类。谢谢。关于Linq的可能性很大。例如,您有一个对象列表,您在其中放置了不同的内容,但您仅对字符串进行迭代: var fields = new List<object>(); fields.Add(42); fields.Add("one");

是否仍然可以按类型对infopath字段进行迭代


如中所示,迭代所有日期字段或所有整数字段等。我试图编写一个类,在表单的代码隐藏中执行字段验证,因为从代码隐藏提交表单时OOTB字段验证不起作用。我想编写一个可用于任何infopath表单的通用类。谢谢。

关于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);
}

在很大的可能性是与林克。例如,您有一个对象列表,您在其中放置了不同的内容,但您仅对字符串进行迭代:

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);
}

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

简而言之,myschema.xsd文件存储的是数据类型

但是InfoPath表单只是存储可能转换为多种数据类型的值(我只是将其视为字符串)

false

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

简而言之,myschema.xsd文件存储的是数据类型

但是InfoPath表单只是存储可能转换为多种数据类型的值(我只是将其视为字符串)

false

谢谢,但问题是用户可以在日期字段中输入任何文本,使用上面的代码,这些文本将被视为类型字符串,我需要它被视为类型DateTime,如果不是有效的日期格式,则通知用户更正。@TamarindoSean:您知道字段的类型吗?您的目标是验证infopath字段的输入吗?仅此而已,我一直很难在代码中确定字段类型,您对字段的唯一引用是XPathNavigator对象。我正在尝试为InfoPath 2010输入自定义验证解决方案。谢谢,但问题是用户可以在日期字段中输入任何文本,使用上面的代码,这些文本将被视为类型字符串,而我需要将其视为类型DateTime,如果不是有效的日期格式,则通知用户更正。@TamarindoSean:您知道字段的类型吗?您的目标是验证infopath字段的输入吗?仅此而已,我一直很难在代码中确定字段类型,您对字段的唯一引用是XPathNavigator对象。我正在尝试为InfoPath 2010导入自定义验证解决方案。谢谢,这就是我要找的。谢谢,这就是我要找的。