SP 2010 中有一个很酷的新功能,您可以在其中为任何列指定自定义验证公式和错误消息。
由于某种原因,当您使用 SharePoint 设计器的“创建新列表表单 -> 新项目表单”将列表的默认 NewForm.aspx 替换为自定义表单时,它不起作用。它创建一个 aspx,在其中为所选内容类型的每个字段放置一个 FormField 控件,而不是 ListFormWebpart,它迭代并呈现页面上没有明确提及的字段的每个字段。
刚刚创建的自定义表单上每个字段的代码类似于以下(仅用于说明)
<tr>
<td width="190px" valign="top" class="ms-formlabel">
<H3 class="ms-standardheader">
<nobr>PhoneNumber</nobr></H3>
</td>
<td width="400px" valign="top" class="ms-formbody">
<SharePoint:FormField runat="server" id="ff4{$Pos}" ControlMode="New" FieldName="PhoneNumber" __designer:bind="{ddwrt:DataBind('i',concat('ff4',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@PhoneNumber')}"/>
<SharePoint:FieldDescription runat="server" id="ff4description{$Pos}" FieldName="PhoneNumber" ControlMode="New"/>
</td>
</tr>
问题在于,对于“创建新列表表单 - > 新项目表单”表单,(新 sharepoint 2010)公式验证不起作用:它通过表单验证,仅在保存阶段失败,导致错误页面。
在使用自定义(非 ListFormWebpart)项目页面时,它是否可以通过 FormField 控件以任何方式配置,或者我是否可以以任何其他方式受益于这个新的 sp2010 验证机制,或者在这种情况下我是否必须编写自定义 GUI 验证?
谢谢!