2009-07-23 65 views
0

當開始針對SharePoint進行開發時,我並未完全理解最初的所有輸入和輸出。我創建了一個列表定義(對於文檔庫)和相關的各種自定義操作。不幸的是,我用列表定義本身如下:從列表定義創建後,更改文檔庫「類型」

<ListTemplate... 
... 
Type="101" 
... 

並註冊對列表中的CustomActions:

<CustomAction... 
... 
RegistrationType="List" 
RegistrationId="101" 
... 

當然,這意味着自定義操作對所有文檔庫可見該功能被激活,這是不受歡迎的行爲。此外,還有很多這些文檔庫是從生產中的上述列表定義創建的。

解決此問題的最佳方法是什麼?我的假設是,我需要改變已經存在的列表的「Type」屬性,但我不知道該怎麼做。可以通過一些直接的SQL操作來完成嗎?或者,還有更好的方法?

注意:我可以看到AllLists表中有一列tp_ServerTemplate,是否應該更改?

回答

-4

從一些快速的初始測試看來,它改變了AllLists表的功能。

所以步驟來解決:

1)更改列表定義類型屬性是唯一值(例如11000)

2)更改CustomAction RegistrationId屬性是相同的(11000)

3)將AllLists表中的tp_servertemplate列更新爲所有相關列表的新模板類型(11000)。

+2

不好主意。這次可能會幫助你,但你將來可能會被燒掉。 – vitule 2009-11-06 15:15:37

2

Microsoft修改SharePoint數據庫是completely unsupported。請不要在生產

另一種選擇是創建內容類型並將自定義操作與該類型相關聯。您可能需要編寫一個簡單的控制檯應用程序來遍歷現有的文檔庫並添加內容類型,以便可供使用。您希望自定義操作應用到的現有文檔也需要更改其內容類型。