我有自定义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"/>
列表逻辑不需要在创建新列表项时填充所有字段,并且某些“分析师”字段可以由后者或其他用户指定。我的问题是当我点击“新项目”表单中的“保存”时,我得到“你必须为这个必填字段指定一个值”。这些字段的错误消息是空白的。
我知道,我可以在列表架构中操作属性“必需”,而不是为每个分析师字段设置为“TRUE”,但我必须这样做。我需要的是在实际保存列表项之前临时禁用代码隐藏中的FormField元素验证。我试过跟随C#代码:
List.ParentWeb.AllowUnsafeUpdates = true;
List.Fields["Analyst2"].Required = false;
List.Fields["Analyst3"].Required = false;
List.Update();
List.ParentWeb.AllowUnsafeUpdates = false;
在Page_Load()方法中,但没有成功。单击“保存”时仍会验证空白字段,并显示“您必须指定...”消息。我可以做什么?如何在特定字段的代码隐藏中禁用验证?
提前致谢。