0

当开始针对 SharePoint 进行开发时,我最初并没有完全理解所有的来龙去脉。我创建了一个列表定义(用于文档库)并将各种自定义操作关联到它。不幸的是,我对列表定义本身使用了以下内容:

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

并针对列表注册 CustomActions:

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

当然,这意味着自定义操作对于激活该功能的所有文档库都是可见的,这是不受欢迎的行为。此外,还有很多这些文档库是从生产中的上述列表定义创建的。

解决此问题的最佳方法是什么?我的假设是我需要以某种方式更改现有列表的“类型”属性,但我不知道该怎么做。也许可以通过一些直接的 SQL 操作来完成?或者,还有更好的方法?

注意:我可以看到 AllLists 表有一个列 tp_ServerTemplate,这是正确的更改吗?

4

2 回答 2

2

Microsoft完全不支持修改 SharePoint 数据库。请不要在生产中这样做

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

于 2009-07-24T09:49:47.333 回答
-4

从一些快速的初始测试来看,更改 AllLists 表确实可以解决问题。

所以解决的步骤:

1) 将列表定义类型属性更改为唯一值(例如 11000)

2)将CustomAction RegistrationId属性更改为相同(11000)

3) 将 AllLists 表中的 tp_servertemplate 列更新为所有相关列表的新模板类型 (11000)。

于 2009-07-23T09:53:33.103 回答