Поля в настраиваемом шаблоне списка SharePoint не отображаются в виде элементов списка - PullRequest
3 голосов
/ 09 февраля 2010

Я определил пользовательский шаблон списка со следующими полями:

<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>

Обратите внимание, что для свойств ShowInNewForm, ShowInEditForm и 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>

Ответы [ 2 ]

2 голосов
/ 18 июля 2010

Я просто столкнулся с чем-то очень похожим. Пользовательские поля не были обработаны ListFieldIterator. Список был основан на пользовательском определении списка и пользовательском типе контента и включал настраиваемые формы списка. Настраиваемые поля отображаются в типе контента, а также на странице настроек списка. Пользовательские формы списка были копиями готового (12 \ Template \ Pages \) файла form.aspx.

Тип содержимого содержит теги FieldRef ala:


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

Этот формат предлагается в нескольких местах, например, Furuknap's Создание пользовательского интерфейса SharePoint (стр. 261).

Добавление атрибута Name в тег устранило проблему.


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

Основываясь на этом опыте, я планирую всегда включать атрибут Name в элементы FieldRef пользовательских типов контента. Надеюсь, это спасет кого-то еще.

1 голос
/ 09 февраля 2010

Когда вы говорите, что создали шаблоны списков с полями, перечисленными здесь, они относятся к типу контента? Если да, соответствует ли определение столбцов в типе содержимого определению полей в файле schema.xml?

Пересоздали ли вы список после внесения изменений в schema.xml?

EDIT: Поля для включения в schema.xml. Если поля отсутствуют, но находятся только там, где вы определили свои столбцы, возможно, поэтому они не отображаются в newForm.aspx при создании нового элемента.

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