连接N - N共享点关系

时间:2014-02-11 22:47:23

标签: sharepoint-2010 many-to-many

我目前正在开发一个SharePoint网站,我需要建立两个多对多的关系。

List1 n< - > n List2 n< - > n List3

每个列表的键是:CID,RID和PID。

我还有两个列表加入列表: ListCID-RID ListPID-RID

这两个列表有两列,都是查找。 ListCID-RID具有List1的查找列:CID和List2:RID。 ListPID-RID具有List2的查阅列:RID和List3:PID。

有了这些关系,如果我手动添加数据并链接它,我可以生成我需要的相应视图,但是我在创建新项目时遇到了麻烦。

在List2中创建新项目时,通过获取GUID生成RID。只有在引用List2时才能创建List1和List3项。基本上,RID被传递给List1 / List3的新表单,然后列表生成自己的GUID。

我遇到的问题是找到一种链接列表的方法。

我目前认为的选项是:

  1. 挂钩表单提交按钮以在ListCID-RID或ListPID-RID中创建项目。我已经看过URL重定向的例子,并且会使用相同的方法。
  2. 让表单按钮提交到另一个获取RID和CID / PID的aspx页面并创建列表项,然后重定向。我担心这种方法会很慢。
  3. 使用工作流程。我正试图远离工作流程。
  4. 创建一个事件接收器。我不知道从哪一个开始,或者我是否能够在我的环境限制范围内完成它。
  5. 现在我遇到的问题是ListCID-RID和ListPID-RID只包含查找,这意味着这些项必须存在于List1,List2或List3中才能连接。

1 个答案:

答案 0 :(得分:1)

对于通过搜索引擎找到这个的人来说,这就是我最终的方法。

我创建了两个链接列表(总共五个):

  • CID
  • CID-RID
  • RID
  • PID
  • PID-RID

工作流程是在创建新项目时,它在RID列表中开始。我在RID列表中创建了一些内容,通过jquery,我得到了一个GUID。

现在,如果用户想要创建CID或PID,我会传递GUID,然后创建新的CID / PID。这些CID / PID每个都有自己的GUID。

创建新的PID / CID后,我将两个GUID传递到临时页面,并以编程方式在CID-RID或PID-RID中创建项目。然后该页面将用户转发回主视图。

由于SharePoint的问题,我最终通过浏览器本地存储和http参数传递值。

它不是一个优雅的解决方案,而且感觉更像是一个黑客,但是现在它已经体面地工作了。