2010-07-12 66 views
1

SP 2010中有這個很酷的新功能,您可以爲任何列指定自定義驗證公式和錯誤消息。FormField忽略列驗證公式

出於某種原因,當您使用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)公式驗證不起作用:它通過表單上的驗證,僅在保存階段失敗導致出現錯誤頁面。

它是否以任何方式可配置與FormField控件,或者我可以以任何其他方式採用這種新的sp2010驗證機制,當使用自定義(非ListFormWebpart)項目頁面或我必須編寫自定義GUI驗證在這種情況下?

謝謝! 。

回答

0

的問題是不是與FormField控件本身,而是與DataFormWebPart網絡部分我是用在這些領域有很2點的問題:

  1. 隨着uninquness現場拋出它應該是一個例外由WebPart正確處理,顯示具有該字段值的項目已存在的消息。但是DataFormWebPart不處理這個異常,而默認的ListFormWebPart可以。它與自定義驗證公式類似。
  2. 的SharePoint字段控制實現IValidator接口,使得擁有Web部件可以驗證他們並顯示適當的消息(例如,對於需要查找字段),但DataFormWebPart沒有做到這一點(該ListFormWebPart那樣)