如何修改SharePoint网站,以便在文档库中默认开启版本控制功能?默认情况下,在SharePoint中进行版本控制
5
A
回答
7
版本控制不是在站点级完成,而是在列表级完成。
如果你想版本是打开每一个新的图书馆,你就必须要么:
- 使用自己的模板库(带版本开启)
- 使用功能+事件处理程序以编程方式激活每个新列表的版本号
最简单的方法可能是使用自己的模板。为此,创建一个新的文档库,激活版本控制,然后将该列表保存为模板。
当您创建新列表时,您将能够使用您的模板并直接创建激活版本控制的列表。
5
你当然可以创建自己的网站定义,但这可能不是最好的解决方案。创建自定义库模板也会起作用,但是如果您想为特定网站定义为您创建的库打开版本控制功能,则必须提供其他内容。
我们恰好为我们的SharePoint实施做了这些工作。我们决定最好的方法是创建一个事件处理函数,并将其装订到所有网站,以便在创建网站时,对所有现有文档库进行版本控制。当然,新的文档库将获得创建它的用户设置的任何版本控制选项。
我们遇到的问题是没有“ListCreating”事件处理程序,因此我们无法在此时开启版本控制。因此,我们尝试将代码放入FeatureActivated事件处理程序中,并确定它会在网站创建时激活,然后可以更改所有文档库以启用版本控制。问题在于这个事件在图书馆真正创建之前被解雇了。
因此,我们决定将代码放入“ItemAdding”事件处理程序中,并在第一次运行后将其删除。因此,当用户第一次添加列表项或文档时,它将打开网站中所有文档库的版本控制。这样,我们确保用户无法在未经版本化的情况下将文档添加到现有库。此外,在添加项目之前创建的任何库都将默认打开版本控制。
这是一个多毛的解决方案,但它为我们工作得很好。以下是我们使用的代码:
public class SetVersioning : SPItemEventReceiver
{
public override void ItemAdding(SPItemEventProperties properties)
{
SPWeb CurrentWeb = properties.OpenWeb();
foreach (SPDocumentLibrary doclib in CurrentWeb.GetListsOfType(SPBaseType.DocumentLibrary))
{
doclib.EnableVersioning = true;
doclib.MajorVersionLimit = 8;
//doclib.EnableMinorVersions = true;
doclib.Update();
}
//now get rid of the receiver
SPEventReceiverDefinitionCollection receivers = CurrentWeb.EventReceivers;
foreach (SPEventReceiverDefinition definition in receivers)
{
if (definition.Name.Equals(EVENT_RECEIVER_NAME))
{
definition.Delete();
break;
}
}
base.ItemAdding(properties);
}
}
相关问题
- 1. 如何在默认情况下禁用IntelliJ IDEA版本控制?
- 2. 运行从终端的R新版本时,旧版本在默认情况下
- 3. 默认情况下在VBox
- 4. 在默认情况下
- 5. FactoryGirl在默认情况下
- 6. 进口的UIKit默认情况下为
- 7. 更改PublishingWebControls 1的默认文本:为SharePoint 2010 RichHtmlField?默认情况下,
- 8. 如何在默认情况下添加2个十进制值
- 9. 默认情况下让emacs在控制台模式下运行(-nw)
- 10. 产量和默认情况||不输出默认情况下
- 11. 安卓:默认情况下
- 12. 默认情况下,法国
- 13. 默认情况下,Constexpr lambda?
- 14. 默认情况下不会执行C++
- 15. 默认情况下使用的Google Maps API版本是什么?
- 16. 默认情况下放大的移动版本
- 17. 默认情况下在WebStorm中像PhpStorm中自动缩进
- 18. 使用TFS在VM和版本控制中进行SharePoint开发
- 19. 默认情况下使用擦除选项进行pip安装
- 20. 默认情况下,在网页
- 21. 在默认情况下优化CMake
- 22. 复选框在默认情况下knockout.js
- 23. 在默认情况下的UITableViewCell
- 24. 默认情况下在参数
- 25. 的Rails:在默认情况下
- 26. 在wxpython默认情况下隐藏TextCtrl
- 27. 默认情况下,在项目
- 28. 默认情况下,在asp.net MVC2
- 29. 默认情况下,哪个版本的Python会执行pip或easy_install?
- 30. 默认情况下,SharePoint功能未启用
创建模板作为解决方案非常简单。 – CodeGrue 2012-10-05 19:02:07