Sharepoint List定义仅绑定到我的自定义内容类型

时间:2009-04-02 23:16:49

标签: sharepoint sharepoint-2007 wss content-type list-definition

我正在开发一个实现新列表的Sharepoint解决方案。此列表具有附加到自定义内容类型的事件接收器。

我正在使用VSeWSS 1.3执行此任务,它正常(内容类型已创建,列表已创建并绑定到内容类型,事件接收器已成功触发。

我唯一担心的是,在创建的列表中,它始终显示基本内容类型(具有标题字段的项目CT)。通过Web GUI我可以隐藏这种内容类型,但是我无法在我的XML定义中找到这样做,或者在解决方案中使用它来避免在部署时出现双重任务。

有什么建议吗?

3 个答案:

答案 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)

这两个答案对我有帮助,但我发现你还需要在列表定义中再次指定列(不仅仅是在内容类型中),否则它们不会显示在列表中。