2010-02-08 94 views
3

我已經定義了一個自定義列表模板具有以下字段:領域形成

<Fields> 
     <Field Type="Text" DisplayName="Sub-Title" Name="SubTitle" StaticName="SubTitle" ShowInNewForm="TRUE" 
      ShowInEditForm="TRUE" ShowInViewForms="TRUE">   
     </Field> 
     <Field Type="URL" DisplayName="Header Image" Name="HeaderPicUrl" StaticName="HeaderPicUrl" ShowInNewForm="TRUE" 
      ShowInEditForm="TRUE" ShowInViewForms="TRUE"> 
     </Field> 
     <Field Type="Note" RichText="True" RichTextMode="FullHtml" IsolateStyles="True" NumLines="5" Name="Summary" DisplayName="Summary" 
      StaticName="Summary" Sortable="False" ShowInNewForm="TRUE" ShowInEditForm="TRUE" ShowInViewForms="TRUE"> 
     </Field> 
     <Field ID="{7662cd2c-f069-4dba-9e35-082cf976e170}" Type="Note" RichText="TRUE" RichTextMode="FullHtml" IsolateStyles="TRUE" 
      NumLines="45" Name="Body" DisplayName="$Resources:core,camlid2;" Sortable="FALSE" 
      SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="Body"> 
      </Field> 
     <Field ID="{6a09e75b-8d17-4698-94a8-371eda1af1ac}" Type="DateTime" Name="Expires" DisplayName="$Resources:core,camlid3;" 
      Format="DateOnly" FromBaseType="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="Expires"> 
     </Field> 
</Fields> 

注意,ShowInNewFormShowInEditForm,並ShowInViewForms屬性都設置爲TRUE。當我從已部署的模板創建列表時(我從VSeWSS 1.3開始執行此操作),列表中包含正確的字段,但是新項目表單根本不呈現自定義字段。任何人都知道爲什麼會這樣?我是否必須完全自定義由ListFormWebPart加載的控件模板?這是否不能控制ListFieldIterator控件的用途?

編輯:

此外,Schema.xml文件的末尾有此位:

<Forms>  
    <Form Type="DisplayForm" Url="DispForm.aspx" WebPartZoneID="Main"/> 
    <Form Type="EditForm" Url="EditForm.aspx" WebPartZoneID="Main"/> 
    <Form Type="NewForm" Url="NewForm.aspx" WebPartZoneID="Main"/> 
</Forms> 
+0

你有沒有解決這個問題,以及如何? – Kyberias 2012-05-23 11:41:15

+0

@Kyberias:不幸的是,這是以前的事,現在我不記得了。我懷疑Jason Weber的答案爲我解決了這個問題,但我無法確定,因爲我從未將它標記爲答案,現在我不記得了。 對不起! – 2012-05-23 15:55:37

回答

1

當你說你在這裏列出的字段創建列表模板,看看它是否屬於內容類型?如果是這樣,那麼內容類型中的列的定義是否與schema.xml中的字段的定義匹配?

您是否在對schema.xml進行更改後重新創建列表?編輯: 要包含在schema.xml中的字段。如果這些字段不存在但只是您定義列的位置,那麼這可能是您創建新項目時不會出現在newForm.aspx中的原因。

<Field Type="Text" DisplayName="..." Description="..." Required="FALSE" MaxLength="255" Group="..." ID="{GUID}" Name="..." Hidden="FALSE" ReadOnly="FALSE" /> 
+0

沒有與這些字段關聯的內容類型。 – 2010-02-09 13:58:11

+0

要回答你的問題,不,你不需要自定義控件模板,這些字段是爲了顯示。 用你在問題中提到的進行剪切,位於代碼中的位置在schema.xml中?我並不認爲HIDDEN屬性的默認值是真實的,但不會傷害添加它。我用模式中的部分中通常包含的字段編輯了我的回覆。 – 2010-02-10 02:54:15

2

我剛碰到類似的東西。自定義字段不是由ListFieldIterator呈現的。該列表基於自定義列表定義和自定義內容類型,幷包含自定義列表表單。自定義字段顯示在內容類型以及列表的設置頁面中。自定義列表表單是開箱即用(12 \ Template \ Pages \)form.aspx文件的副本。

內容類型包含FieldRef標籤ALA:


     <FieldRef ID="{73AB0549-19DA-43af-938B-873EAD93FE4E}" /> 

這種格式,建議在幾個地方,例如Furuknap的Building the SharePoint User Experience(第261頁)。

在< FieldRef>標記中添加名稱屬性修復了該問題。


     <FieldRef ID="{73AB0549-19DA-43af-938B-873EAD93FE4E}" Name="TestAttachment1" /> 

基於這個經驗,我打算一直包括自定義內容類型的FieldRef元素的name屬性。希望這可以節省別人一些時間。