1

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

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

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

有什么建议么??

4

3 回答 3

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" />

于 2009-04-03T02:40:48.630 回答
1

在 schema.xml 中,您需要进行 2 处更改

在 <List> 元素中添加以下属性:

EnableContentTypes="TRUE"

<ContentTypes> 元素应该包含一个指定您的自定义内容类型的 <ContentType> 元素。

例如:

<?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>
于 2009-04-06T04:31:35.687 回答
0

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

于 2009-04-17T17:05:50.730 回答