Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SharePoint字段未显示在显示/编辑/新建页面中_Sharepoint_Caml - Fatal编程技术网

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

SharePoint字段未显示在显示/编辑/新建页面中,sharepoint,caml,Sharepoint,Caml,我已经为一个列表编写了一个模式,它只需要在默认的自定义列表中添加一列,这是一个名为months的数字字段。该字段显示在默认视图中,并且确实是在列表中创建的。该列表自动填充正确设置的值。问题是该字段没有出现在显示/编辑/新建页面上。可以通过数据表视图进行设置。我不明白为什么当我在模式中特别设置它时,它没有显示出来 非常感谢您的建议 <?xml version="1.0" encoding="utf-8"?> <List xmlns:ows="Microsoft SharePoin

我已经为一个列表编写了一个模式,它只需要在默认的自定义列表中添加一列,这是一个名为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>

我已经找到了解决我自己问题的方法。该字段不会在新建/显示/编辑表单中列出,因为这些页面基于内容类型。在本例中,是基于列表的项目内容类型

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


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

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

有两种解决方案:

  • 不启用内容类型(然后 也要把整个 (节)
  • 创建新的内容类型,包括 字段并添加该内容类型 代替物品

  • 和您一样,我也在做同样的事情(为我想要创建的每个列表创建内容类型) 直到我点击下面的代码。如果您查看下面的代码,我已经删除了
    标记,并强制添加了标题字段和额外字段描述。

    
    
    ……隐藏


    每个答案都是正确的+1

    我已经选择了您列出的第二个解决方案,尽管我对第一个很感兴趣。实际上是否可以完全禁用列表中的内容类型,或者只是隐藏起来。如果您只保留EnableContentTypes属性和部分,那么您将得到一个列表,其中添加的字段显示在项目的添加/编辑中
    <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>