在SharePoint列表中表示父子关系

时间:2008-11-20 19:58:37

标签: sharepoint list parent-child relationship

我需要在我们的SharePoint应用程序中创建一些功能,这些功能使用一些简单的分层数据填充列表或列表。每个父记录将代表“提交”,每个子记录将是“提交项目”。提交和提交项目之间存在一对一的关系。这在SharePoint中是否可行?到目前为止,我所做的唯一类型的列表关系是查找列,但这看起来有点不同。此外,一旦建立了这样的列表关系,那么在这种数据上创建视图的最佳方法是什么。我几乎确信将这些内容写入外部数据库会更容易,但我想给SharePoint一个机会,以便利用自动搜索功能。

8 个答案:

答案 0 :(得分:7)

正确的 Sharepoint中的父/子几乎是不可能的,如果不自己开发它。这里有一种方法:Simulate Parent / Child relationship in SharePoint 2007 with Folders & Content Types

(注意:这与SharePoint 2007有关。2010年,Joins make this much easier

答案 1 :(得分:3)

在单独的数据库中执行此操作,创建一个页面,其中包含用于显示数据的控件并对其进行搜索。但是,丢失了相当多的SharePoint功能。

否则,可以创建自定义字段控件,以便查看其他列表中的数据。 自定义字段控件可以是“查看”相关数据的控件。 我知道我们已经为同一列表中的页面之间的父子关系做了这个。虽然不是1对N.

任何一种方式都可以选择。

答案 2 :(得分:2)

我的投票是“将此内容写入外部数据库”

您在Sharepoint中遗漏了许多内容,例如事务支持,参照完整性,简单的更新方式(比较SQL),报告(使用Reporting Services和SQL数据库)...请参阅sharepoint作为存储文档的方法和简单列表.....

Sharepoint的论点是它是一个小应用程序,没有对事务支持的要求,不需要导入外部数据等......

当人们说Sharepoint是一个开发平台时,需要定义他们认为开发平台的whjat。

关于Sharepoint 2010的最新传闻告诉我们,下一版本将支持基于SQL服务器的列表.....我认为这至少会使Sharepoint朝着正确的方向发展......

答案 3 :(得分:2)

查看SLAM,SharePoint列表关联管理器,我公司创建并积极支持的开源项目。 SLAM允许您将SharePoint数据同步到SQL,包括列表之间的任何关系。 SLAM除了本身非常有用之外,实际上是一个框架,旨在允许开发人员使用我们称之为SLAM类型的配置文件来创建自己的复杂数据关联。我们有一个开箱即用的类型配置文件,它是开源项目的一部分,它实际上允许您使用嵌套集模型使SharePoint列表分层。有关详细信息,请参阅我们的codeplex网站上的this page

答案 4 :(得分:0)

我使用sharepoint,使用名为AAA(Activity,Assignment,Artifact)的框架,这样做很多,它允许您使用查找列将赋值或工件链接到父Activity。然后,您构建一个Web部件页面,其中包含已连接的Web部件,允许您按活动筛选所有分配和工件。例如,单击提交Web部件中提交的旁边,将显示附加到该提交的所有提交项。效果很好。

答案 5 :(得分:0)

您可以使用的另一种方法是使用项目中的字段来保存XML。这是Podcasting Kit(在CodePlex上)用于存储评级等内容的方法。

答案 6 :(得分:0)

一种可能的方法是根据文件夹内容类型创建提交内容类型,并根据项目内容类型创建提交项目。然后,您可以像文件系统一样分层存储数据,也可以使用默认视图和搜索功能。

其他方法是创建指向同一列表的查找字段(list =“self”)。此字段将用作对父项的引用,您将获得包含递归相关数据的列表。以编程方式使用此数据将是正常的,但使用视图功能将有点复杂。

答案 7 :(得分:0)

使用连接的Web部件很容易。

创建两个列表:

家长(Id,Title) 孩子(Id,Title,ParentId)

创建一个新的sharepoint页面,添加DataFormWebPart(显示Parent)和另一个用于Child,将它们设置为基于QueryString参数进行过滤(使用该参数过滤Parent.Id和Child.ParentId)瞧,你可以显示父子关系。现在,添加孩子更加困难,这是我尚未解决的部分。