2009-07-23 41 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。请不要在生产

另一种选择是创建内容类型并将自定义操作与该类型相关联。您可能需要编写一个简单的控制台应用程序来遍历现有的文档库并添加内容类型,以便可供使用。您希望自定义操作应用到的现有文档也需要更改其内容类型。

相关问题