【问题标题】:How to Create a new Version Programmatically in Sharepoint List如何在 Sharepoint 列表中以编程方式创建新版本
【发布时间】:2017-03-24 21:10:10
【问题描述】:

我有一个名为 stage 的选择字段,假设它具有以下值用作下拉列表

stage1
stage2
stage3

换个阶段我要记录TimeStamp和谁更新了物品信息

如何在不创建任何其他列表的情况下在我的列表中执行此操作,我认为使用版本控制我可以在该字段的属性更改之前和之后添加新版本。

//ItemUpdating Event 
if(properties.ListItem["Stage"] != properties.AfterProperties["Stage"])
{
   //Create a Version;
}

我在这里找不到如何创建版本。

【问题讨论】:

    标签: sharepoint sharepoint-2007


    【解决方案1】:

    如果您启用了版本控制,则每次调用 SPListItem.Update 方法时,SharePoint 都会自动创建新版本。

    如果您不想创建新版本,请致电UpdateOverwriteVersion

    如果您不想修改 Modified By 和 Modified 字段,请调用 SystemUpdate(请参阅重载的 SystemUpdate,您在其中传递参数也不是创建新版本)。

    【讨论】:

    • 感谢您的帮助,但我有一个事件处理程序,用于检查天气以创建版本的列表,因为我现在知道如何禁用版本控制但我无法应用它,在哪里我实际上是在 ItemUpdated 或 ItemUpdating 或 eleswhere 中做的吗?
    • 在列表设置中启用了版本控制。设置 -> 列表设置 -> 版本设置
    • 您通常不检查天气来创建版本 - 只需调用更新方法。如果启用版本控制 - 将创建版本。如果未启用 - 未创建。 UpdateOverwriteVersion 和 SystemUpdate 方法是例外的,你使用它们只是为了表明你真的不想创建新版本。
    【解决方案2】:

    我不确定我是否理解这个问题。如果您启用了版本控制,您是否在版本历史记录中没有此信息?为什么需要开发新的东西?

    【讨论】:

    • 我需要这个,因为我正在尝试创建一个日志,该日志可以在项目的“阶段”发生变化时记录下来到它不适合的项目。
    • 嗯,如果 Stage 没有更改,那么以编程方式删除版本怎么样?比方说,一个事件接收器?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    相关资源
    最近更新 更多