Поле SharePoint не отображается на страницах «Отображение / Редактирование / Новые страницы» - PullRequest
3 голосов
/ 01 декабря 2009

Я написал схему для списка, которому нужно добавить только один столбец в пользовательский список по умолчанию, который представляет собой числовое поле, называемое месяцами. Поле отображается в представлении по умолчанию и действительно создается в списке. Список автоматически заполняется значениями, которые установлены правильно. Проблема в том, что поле не отображается на дисплее / редактировать / новые страницы. Это может быть установлено через представление таблицы. Я не понимаю, почему он не отображается, когда я специально установил его в схеме.

Очень ценю любые предложения.

<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" 
      Title="ReviewPeriods" 
      FolderCreation="FALSE" 
      Direction="$Resources:Direction;" 
      Url="Lists/ReviewPeriods" 
      EnableContentTypes="TRUE" 
      BaseType="0">
 <MetaData>
  <ContentTypes>
   <ContentTypeRef ID="0x01">
        <Folder TargetName="Item" />
      </ContentTypeRef>
  </ContentTypes>
  <Fields>
   <Field ID="{B99EB797-4057-4a75-90BF-B40D0F89A9D9}"
             Type="Number"
             Decimals="0"
             Min="0"
             Max="100"
             Percentage="FALSE"
             Name="Months" 
             Required="TRUE"
             Group="SEED"
             DisplayName="Months"
             StaticName="Months"
             ShowInDisplayForm="TRUE"
             ShowInEditForm="TRUE"
             ShowInNewForm="TRUE">
   </Field>
  </Fields>
  <Views>   
   <View BaseViewID="0" 
            Type="HTML"
            WebPartZoneID="Main" 
            DisplayName="Default View" 
            DefaultView="TRUE" 
            SetupPath="pages\viewpage.aspx" 
            ImageUrl="/_layouts/images/generic.png" 
            Url="AllItems.aspx">

... Скрытые вещи ...

<ViewFields>
          <FieldRef Name="LinkTitle"></FieldRef>
          <FieldRef Name="Months"></FieldRef>
    </ViewFields>
    <Query>
     <OrderBy>
      <FieldRef Name="Title">
      </FieldRef>
     </OrderBy>
    </Query>
   </View>
  </Views>
  <Forms>
   <Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
   <Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
   <Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
  </Forms>
 </MetaData>
</List>

Ответы [ 3 ]

4 голосов
/ 01 декабря 2009

Проблема в том, что вы добавляете поле в список, но в то же время включаете типы контента и указываете, что единственным типом контента, который нужно использовать, является Элемент (0x01), который не включает поле. Таким образом, вы добавляете / редактируете элементы, а затем не получаете поле.

Существует два решения:

  1. Не включать типы контента (а затем также удалить весь раздел)
  2. Создать новый тип контента, включая поле и добавить этот тип контента вместо пункта
1 голос
/ 02 декабря 2009

Как и вы, я делал то же самое (создание типа контента для каждого списка, который я хотел создать) Пока я не нажал код ниже. Если вы посмотрите на приведенный ниже код, я удалил тег <ContentTypes> и принудительно добавил поле заголовка и дополнительное поле описания.

<Fields>
  <Field ID="{9830F5FC-99E0-4052-9CC0-50CBEDE80002}" Type="Text" Name="Title" DisplayName="Type Name" Required="TRUE" MaxLength="255" Version="1" RowOrdinal="0">
    <Default/>
  </Field>      
  <Field Type="Note" DisplayName="Description" Required="FALSE" NumLines="6" RichText="TRUE" RichTextMode="Compatible" Sortable="FALSE" 
         ID="{63C25492-BA98-4096-A6D7-F85885E0A425}" Name="Description"
          RowOrdinal="0"/>
</Fields>

...... Hidden

<MetaData>

За ответ был прав + 1

1 голос
/ 01 декабря 2009

Я нашел решение своей проблемы. Поле не отображается в формах New / Display / Edit, потому что эти страницы основаны на типе контента. В этом случае тип содержимого Item, на котором я основываю свой список.

Обычно я создаю свой собственный тип контента, но я пытался найти сокращенный способ создания списка без определения нового типа контента. Поэтому я определил поле непосредственно внутри схемы списка, а не ссылался на уже существующее поле внутри типа контента. Кажется немного глупым определять тип контента только для одноразового поискового списка только с одним дополнительным полем.

Если кто-то может предложить способ отображения полей в формах New / Display / Edit без необходимости создания нового типа контента, тогда я с радостью сделаю для них приемлемый ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...