2014-02-11 41 views
1

我目前正在開發一個SharePoint站點,我需要設置兩個多對多關係。連接N - N Sharepoint關係

的List1Ñ< - >ñ列表2Ñ< - >Ñ項目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. 將表單按鈕提交給另一個aspx頁面,該頁面接收RID和CID/PID並創建列表項並重定向。我擔心這種方法會很慢。
  3. 使用工作流程。我試圖遠離工作流程。
  4. 創建一個事件接收器。我不知道該從哪裏開始,或者如果我能夠在我的環境限制內做到這一點。

現在我正在運行的問題是ListCID-RID和ListPID-RID只包含查找,這意味着這些項目必須存在於List1,List2或List3中才能連接。

回答

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參數傳遞值。

這不是一個優雅的解決方案,感覺更像是一種黑客攻擊,但現在它正在正常工作。