我为列表编写了一个模式,只需要在默认自定义列表中添加一列,这是一个名为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>
答案 0 :(得分:4)
问题是您将字段添加到列表中,但同时启用内容类型并指定要使用的唯一内容类型是Item(0x01),该字段不包括该字段。因此,您正在添加/编辑项目,然后您无法获得该字段。
有两种解决方案:
答案 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