在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)公式验证不起作用:它将在窗体上验证仅在保存阶段失败,从而导致错误页面。

是以任何方式配置formfield控件,或者我可以在使用自定义(非ListFormWebPart)项目页面时使用任何其他方式采用此新SP2010验证机制的Benifit,或者我必须编写自定义GUI在这种情况下验证?

谢谢!

有帮助吗?

解决方案

问题不是formfield控制本身,但是使用dataformwebpart web部分我正在使用这些字段。有2个问题:

  1. 与UniNqu上,字段抛出异常,该例外应由WebPart正确处理,显示该字段的具有此类值的项目已存在的消息。但是DataFormWebPart无法处理此异常,而默认ListFormWebPart则。它与自定义验证公式类似。
  2. SharePoint字段控件实现了IValidator接口,以便拥有WebPart可以验证它们并显示适当的消息(例如,用于所需的查找字段),但DataFormWebPart不执行(ListFormWebPart)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top