代码之家  ›  专栏  ›  技术社区  ›  Paul-Jan

在MOSS2007中检测自定义文件夹内容类型

  •  2
  • Paul-Jan  · 技术社区  · 16 年前

        SPContentType folderType = aFolderItem.Web.AvailableContentTypes[SPBuiltInContentTypeId.Folder];
        SPContentType contentType = aFolderItem.ContentType;
    
        if ( contentType != folderType )
           ...
    

    2 回复  |  直到 16 年前
        1
  •  1
  •   Flo    16 年前

    如果内容类型附加到列表,则不会直接附加,但会创建并附加一个副本。然后,原始内容类型id会附加一个Guid,并成为“新”内容类型的id。

    guide lines for defining content type ids 0x0120 + 00 + <Guid> .

    因此,如果你检查一个项目的内容类型,无论是默认文件夹还是自定义文件夹,自定义文件夹的id看起来会像这样 0x0120+00+<Guid> ==>基本文件夹内容类型id+用于将其附加到列表的Guid。

    0x0120 + 00 + <Guid> + <Guid> ==>基本文件夹内容类型+自定义内容类型的Guid+将其附加到列表的Guid。

    为了使比较更容易一点,您不应该比较实际内容类型的id,而应该查看内容类型id parent id 。对于自定义文件夹,父文件夹id为 0x0120 ,对于自定义文件夹,它将是 0x0120+00+<Guid> .

        2
  •  1
  •   Kusek    16 年前

    假设 a文件夹项目 是类型的变量 列表项目 下面的代码应该能得到你想要的。

    if(aFolderItem.ContentType.Id.IsChildOf(SPBuiltInContentTypeId.Folder))
              ...this is a Folder
    else
              ...this is not a Folder
    
    推荐文章