SharePoint字段未显示在“显示/编辑/新建”页面中

时间:2009-12-01 18:53:49

标签: sharepoint caml

我为列表编写了一个模式,只需要在默认自定义列表中添加一列,这是一个名为months的数字字段。该字段显示在默认视图中,确实在列表中创建。该列表自动填充正确设置的值。问题是该字段未出现在显示/编辑/新页面上。它可以通过数据表视图进行设置。我不明白为什么当我在架构中专门设置它时它没有出现。

非常赞赏任何建议。

<?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 个答案:

答案 0 :(得分:4)

问题是您将字段添加到列表中,但同时启用内容类型并指定要使用的唯一内容类型是Item(0x01),该字段不包括该字段。因此,您正在添加/编辑项目,然后您无法获得该字段。

有两种解决方案:

  1. 不要启用内容类型(然后 也删除整个 &LT; CONTENTTYPES&GT;部分)
  2. 创建新的内容类型,包括 该字段并添加该内容类型 而不是项目

答案 1 :(得分:1)

我找到了解决自己问题的方法。该字段未在“新建/显示/编辑”表单中列出,因为这些页面基于内容类型。在这种情况下,我基于列表的项目内容类型。

通常我会创建自己的内容类型,但我一直在尝试找到一种创建列表的简写方法,而无需定义全新的内容类型。所以我所做的是直接在列表模式中定义字段,而不是引用内容类型中已存在的字段。仅为一次使用查找列表定义内容类型似乎有点愚蠢,只有一个额外的字段。

如果有人可以建议一种方法来显示新/显示/编辑表单上的字段而无需创建新的内容类型,那么我很乐意将它们作为接受的答案。

答案 2 :(得分:1)

正如您所做的那样,我正在做同样的事情(为我想要创建的每个List创建内容类型) 直到我点击下面的代码。如果您查看以下代码,我删除了<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>

...隐藏

<MetaData>

每个答案是对的+1