gpt4 book ai didi

sharepoint - 自定义列表定义 + 自定义内容类型 = 只显示一个表单域?

转载 作者:行者123 更新时间:2023-12-01 01:37:11 28 4
gpt4 key购买 nike

尝试使用功能来部署自定义字段、内容类型和列表。到目前为止,我有一个引用自定义字段和内置字段的内容类型。内容类型继承 Item (0x01)。

现在,我创建引用内容类型和字段(内置和自定义)的自定义列表定义。我明确地将 ShowInDisplayForm、ShowInEditForm、ShowInNewForm 值设置为 true,但是当我部署功能并根据定义创建列表时,我得到的只是所有表单中的一个 Title 字段!

但是,如果我将 UI 中的字段添加到列表中,它会显示在表单中!此外,如果我从 UI 创建自定义列表并添加内容类型,这些字段将显示在表单中!

这是怎么回事?

顺便说一句,我在 Visual Studio 中使用了 VSeWSS 工具,因此它已经正确地生成了很多东西。

部分代码:

<ContentTypes>
<ContentTypeRef ID="0x01003420C661289843dbAB9E41F43C23BFD0" />
</ContentTypes>
<Fields>
<Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Group="$Resources:core,Extended_Columns" Required="TRUE" ShowInDisplayForm="TRUE" ShowInEditForm="TRUE" ShowInNewForm="TRUE" Type="Text" Sortable="TRUE" Filterable="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" />
<Field ID="{B4629012-C672-4911-B0D0-B9CB2DA44ED2}" DisplayName="Jautājumu pacēla" Group="$Resources:core,Extended_Columns" Name="QuestionRisedBy" Required="TRUE" ShowInDisplayForm="TRUE" ShowInEditForm="TRUE" ShowInNewForm="TRUE" Type="User" Sortable="TRUE" Filterable="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" />
<Field ID="{6DF9BD52-550E-4a30-BC31-A4366832A87F}" DisplayName="Komentārs" Group="$Resources:core,Extended_Columns" Name="Comment" AppendOnly="TRUE" Required="FALSE" NumLines="12" Type="Note" ShowInDisplayForm="TRUE" ShowInEditForm="TRUE" ShowInNewForm="TRUE" Sortable="FALSE" Filterable="FALSE" SourceID="http://schemas.microsoft.com/sharepoint/v3" />
<Field ID="{FC072586-E8BB-444f-AAA4-8D5745FBC096}" DisplayName="ParentItemId" Group="$Resources:core,Extended_Columns" Name="AgendaParentItemId" Required="TRUE" Type="Integer" Sortable="FALSE" Filterable="FALSE" SourceID="http://schemas.microsoft.com/sharepoint/v3" />
<Field ID="{29207E42-E107-4379-B620-BAAFC461276B}" DisplayName="AgendaRootItemId" Group="$Resources:core,Extended_Columns" Name="AgendaRootItemId" Required="TRUE" Type="Integer" Sortable="FALSE" Filterable="FALSE" SourceID="http://schemas.microsoft.com/sharepoint/v3" />
<Field ID="{06063FDB-3C2A-4141-91F7-28C2739CE6B5}" DisplayName="AgendaItemClosed" Group="$Resources:core,Extended_Columns" Name="AgendaItemClosed" Required="FALSE" Type="Boolean" Sortable="TRUE" Filterable="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" />
</Fields>

最佳答案

是的,ContentType 对所有字段都有 FieldRef(好吧,不是继承的字段)。但是我在 schema.xml 中定义内容类型时读到,you must explicitly define Field`s also (这很奇怪),但是如果您以编程方式添加 ContentType,那么它会正确地将 CType 字段添加到定义中

顺便说一下,您看到的是 VSeWSS(VS 的 Microsoft 扩展)工具生成的(所有引用)。

Quite from SharePoint blog :

What you need to do is to add the exact same elements to the element as in the content type, including the same ID. This is a little strange, but in fact you need to define the fields twice, both in the content type and in the schema.xml to make this work. You can skip the Group and a few other properties.

但是如果我不使用 Fields,我会得到一个异常:

[COMException (0x80004005): Nevar pabeigt šo darbību.

Lūdzu, mēģiniet vēlreiz.]
Microsoft.SharePoint.Library.SPRequestInternalClass.GetViewsSchemaXml(String bstrUrl, String bstrListName, Boolean bFullBlown, ISP2DSafeArrayWriter p2DWriter, Int32& plDefaultViewIndex) +0
Microsoft.SharePoint.Library.SPRequest.GetViewsSchemaXml(String bstrUrl, String bstrListName, Boolean bFullBlown, ISP2DSafeArrayWriter p2DWriter, Int32& plDefaultViewIndex) +122

哦,好吧,无论如何,我在某处读到一篇文章(再也找不到那篇文章了)建议添加带有特征接收器的内容类型,然后它会正确显示表单中的字段。

关于sharepoint - 自定义列表定义 + 自定义内容类型 = 只显示一个表单域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1177831/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com