質問

SP 2010では、このクールな新機能があり、そこでカスタム検証式と任意の列のエラーメッセージを指定できます。

SharePoint Designerの「新しいリストフォーム - >新しい項目フォーム」を使用して、一覧のデフォルトのNewForm.aspxをカスタムフォームに置き換えるとうまくいきません。これは、ページ上で明示的に言及されたフィールドなしですべてのフィールドを繰り返してレンダリングするListFormWebPartの代わりに、選択したコンテンツタイプのすべてのフィールドに対してFormFieldコントロールを作成します。

ただ作成されたカスタムフォーム上のすべてのフィールドのコードは、次の(説明のためだけに)

のようなものです。
<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>
.

問題は、「新しいリストフォームの作成 - >新規アイテムフォーム」フォームを使用して(New SharePoint 2010)式検証は機能しません。それは保存段階でのみ失敗したフォームの検証を渡し、その結果、エラーページ

は、FormFieldコントロールで設定可能な方法で、カスタム(ListFormWebPart)アイテムページを使用する場合、またはカスタムGUIを書く必要がある場合は、この新しいSP2010検証メカニズムを認識しています。検証この場合は?

ありがとう!

役に立ちましたか?

解決

問題はFormField Control自体ではありませんが、DataFormWebPart Webパーツではこれらのフィールドを使用していました。2つの問題があります。

  1. uninqunessを持つフィールドは、フィールドのそのような値を持つアイテムが既に存在するというメッセージを表示するWebPartによって正しく処理されるべき例外をスローします。しかし、DataFormWebPartはこの例外を処理しませんが、デフォルトのListFormWebPartは実行されます。カスタム検証式と似ています。
  2. SharePointフィールドコントロールは、所有WebPartがそれらを検証して適切なメッセージを表示できるようにIValidatorインターフェイスを実装します(例えば、必要なルックアップフィールドでは)。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top