我正在尝试实现一个列表,其中唯一的项类型是文件夹。如果有人点击“新建”,他们会被带到一个表单,允许他们输入文件夹名称,描述,并从下拉菜单中选择“活动”或“非活动”。在文件夹里面我想要一个只有2列的简单列表。
我尝试使用我需要的列制作自定义文件夹内容类型,并将其设置为默认内容类型。这似乎有助于制作文件夹列表。一旦我进入文件夹并尝试更改内部视图/列表设置(我不想在文件夹中使用自定义文件夹内容类型...我只需要2个简单的列)它会更改列表的设置文件夹也是。内部列表有什么方法可以有比其父级不同的设置吗?
答案 0 :(得分:1)
我不知道这个问题是否仍然有用,但也许其他人会觉得我的答案很有用。
我曾经实现过一个只包含根目录中的文件夹的列表,按顺序可以包含很少的基于项目的内容类型。 FeatureActivated和ItemAdded事件有两个事件接收器,它们分别更改了列表根文件夹和正在创建的文件夹的UniqueContentTypeOrder属性(可供用户创建的内容类型列表)。像这样:
List<SPContentType> ctl = new List<SPContentType>();
foreach (SPContentType ct in lst.ContentTypes) if (ct.Id.IsChildOf(SPBuiltInContentTypeId.Folder)) ctl.Add(ct);
lst.RootFolder.UniqueContentTypeOrder = ctl;
lst.RootFolder.Update();
此外,我通过为View定义指定ContentTypeID属性,为根文件夹及其包含的文件夹指定了不同的可用列表视图。
答案 1 :(得分:0)
不幸的是,没有。由于SharePoint列表不是关系数据,因此您可以选择允许多种内容类型。如果列表可以使用内容类型,则它可用于整个列表(根目录和子文件夹)。
对您要完成的任务进行建模的一种可能性依赖于SharePoint 2010 Enterprise。 Infopath允许您自定义列表的新项目表单。也许可以编辑表单,使其只允许顶级文件夹和文件夹中的列表项,但我不确定 - 自从我使用Infopath自定义列表表单以来已经有一段时间了。