我正在开发一个实现新列表的Sharepoint解决方案。此列表具有附加到自定义内容类型的事件接收器。
我正在使用VSeWSS 1.3执行此任务,它正常(内容类型已创建,列表已创建并绑定到内容类型,事件接收器已成功触发。
我唯一担心的是,在创建的列表中,它始终显示基本内容类型(具有标题字段的项目CT)。通过Web GUI我可以隐藏这种内容类型,但是我无法在我的XML定义中找到这样做,或者在解决方案中使用它来避免在部署时出现双重任务。
有什么建议吗?
答案 0 :(得分:1)
您必须编辑自定义列表的Schema.xml。找到<ContentTypes>
标记并删除您不希望显示的任何内容。
您的列表定义将有一个guid(例如。<Elements Id="0a8594c8-5cf1-492e-88ce-df943830c88c"
),它将指定架构xml中的列表(例如<List Name="... ...Id="0a8594c8-5cf1-492e-88ce-df943830c88c">
)
我不确定实现是什么,通常有一个feature.xml将以前的xml文件组合在一起(例如<ElementManifests><ElementManifest Location="MyFeature\ListDefinition.xml" /><ElementFile Location="MyFeature\schema.xml" />
)
答案 1 :(得分:1)
在schema.xml中,您需要进行2次更改
&lt; List&gt;中的element添加以下属性:
EnableContentTypes="TRUE"
&lt; ContentTypes&gt; element应包含&lt; ContentType&gt;指定自定义内容类型的元素。
例如:
<?xml version="1.0"?>
<List
xmlns:ows="Microsoft SharePoint"
Title="List_Title"
FolderCreation="FALSE"
Direction="$Resources:Direction;"
Url="Lists/List_Title"
BaseType="0"
Name="List_Title"
Id="51D716AC-DF9D-4ebb-9F8E-9134EEBB7C39"
Type="100"
xmlns="http://schemas.microsoft.com/sharepoint/"
EnableContentTypes="TRUE"
>
<MetaData>
<ContentTypes>
<ContentTypeRef ID="0x01..." />
</ContentTypes>
答案 2 :(得分:0)
这两个答案对我有帮助,但我发现你还需要在列表定义中再次指定列(不仅仅是在内容类型中),否则它们不会显示在列表中。