无论用户单击按钮时是否输入了必填字段,我都需要保存我的 InfoPath 表单。有没有办法暂时关闭 InfoPath 表单的验证?
4 回答
通过保存,我假设您的意思是您想在本地保存 xml 数据文件,而不是将您的表单提交到数据存储区(webservice、sharepoint 等)
在工具>表单选项中,您可以在表单上启用“保存/另存为”(我认为默认情况下启用)它会抱怨存在验证错误但仍然允许您保存。
还有通过代码隐藏使用保存,它不会通过验证例程,但需要完全信任表单,因为它需要访问 Infopath 表单通常限制使用的资源。
VB.Net
Me.SaveAs("c:\temp\myfile.xml")
C#
this.SaveAs("c:\temp\myfile.xml");
或者正如克里斯建议的那样,允许将空值作为数据源的一部分。
在我的表单中,我需要一个按钮(“另存为草稿”),即使存在验证错误,它也会将表单提交到 SharePoint 库。
这个代码隐藏函数对我有用:
public void SaveAsDraftButton_Clicked(object sender, ClickedEventArgs e)
{
this.Errors.DeleteAll();
this.Submit();
}
您必须在代码隐藏文件中编写自己的验证代码,并在用户单击提交按钮时验证它,或者当您只想拥有代码时验证它。
另一种方法是让字段允许空值,并且仅在其中包含文本时进行验证。此方法不需要自定义代码。
我通过在表单上添加带有“我已完成此表单并准备提交”和“我尚未完成此表单”标签的单选按钮来完成类似的操作。保存并稍后完成'。然后每个验证看起来像(验证或 saveOptions == '完成')。提交同样使用此字段来决定采取什么行动。