我有自定义 SharePoint 2010 列表和自定义 aspx 表单来创建、显示和编辑此列表中的项目。列表定义为:
<Field Type="User" Name="Analyst1" Required="TRUE" . . ./>
<Field Type="User" Name="Analyst2" Required="TRUE" . . ./>
<Field Type="User" Name="Analyst3" Required="TRUE" . . ./>
在 schema.xml 中。
根据 DevEdit.aspx 中的字段定义为:
<SharePoint:FormField runat="server" ID="FormFieldAnalyst1" FieldName="Analyst1" ControlMode="New"/>
<SharePoint:FormField runat="server" ID="FormFieldAnalyst2" FieldName="Analyst2" ControlMode="New"/>
<SharePoint:FormField runat="server" ID="FormFieldAnalyst3" FieldName="Analyst3" ControlMode="New"/>
列表逻辑不需要在创建新列表项时填写所有字段,并且某些“分析员”字段可以稍后指定或由其他用户指定。我的问题是,当我在“新项目”表单中单击“保存”时,我得到“您必须为此必填字段指定一个值”。此类字段的错误消息留空。
我知道,我可以在列表模式中操作属性“必需”,而不是为每个分析师字段设置为“真”,但我必须这样做。我需要的是在实际保存列表项之前在代码隐藏中临时禁用 FormField 元素验证。我尝试过以下 C# 代码:
List.ParentWeb.AllowUnsafeUpdates = true;
List.Fields["Analyst2"].Required = false;
List.Fields["Analyst3"].Required = false;
List.Update();
List.ParentWeb.AllowUnsafeUpdates = false;
在 Page_Load() 方法中,但没有成功。单击“保存”并显示“您必须指定...”消息时,仍会验证空白字段。我可以做什么?如何在特定字段的代码隐藏中禁用验证?
提前致谢。