Validation FormField忽略列验证公式

Validation FormField忽略列验证公式,validation,sharepoint-2010,sharepointfoundation2010,Validation,Sharepoint 2010,Sharepointfoundation2010,SP 2010中有一个很酷的新功能,您可以为任何列指定自定义验证公式和错误消息 由于某些原因,当您使用SharePoint designer的“创建新列表表单->新建项目表单”将列表的默认NewForm.aspx替换为自定义表单时,它将不起作用。它创建一个aspx,在其中为所选内容类型的每个字段放置一个FormField控件,而不是ListFormWebpart,它迭代并呈现页面上没有明确提及字段的每个字段 刚创建的自定义表单上每个字段的代码与下面的代码类似,只是为了说明 <tr>

SP 2010中有一个很酷的新功能,您可以为任何列指定自定义验证公式和错误消息

由于某些原因,当您使用SharePoint designer的“创建新列表表单->新建项目表单”将列表的默认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验证


谢谢

问题不在于FormField控件本身,而在于我在中使用这些字段的DataFormWebPart web部件。有两个问题:

如果字段不一致,则会抛出一个异常,Web部件应正确处理该异常,并显示一条消息,表明具有该字段值的项已存在。但是DataFormWebPart不处理此异常,而默认的ListFormWebPart处理此异常。它与自定义验证公式类似。 SharePoint字段控件实现IValidator界面,以便所属Web部件可以验证它们并显示适当的消息,例如,对于所需的查找字段,但DataFormWebPart不会执行ListFormWebPart所执行的操作