【问题标题】:SPFileVersionCollection - why versions are sorted in mixed order?SPFileVersionCollection - 为什么版本以混合顺序排序?
【发布时间】:2011-01-21 09:37:06
【问题描述】:

SPFileVersionCollection 和 SPListItemVersionCollection 版本控制对我来说似乎不一致。不一致对我来说不是问题,但排序顺序是。

SPListItemVersionCollection

我可以理解 ListItems 的版本控制,因为它们是按降序存储的:

SPContext.Current.ListItem.Versions.Count -> 5
SPContext.Current.ListItem.Versions[0].VersionId -> 1026 (2.2 latest version)
SPContext.Current.ListItem.Versions[1].VersionId -> 1025 (2.1)
SPContext.Current.ListItem.Versions[2].VersionId -> 1024 (2.0)
...                                [4].VersionId ->      (oldest version)

SPFileVersionCollection

但是我不明白如何为文档库项目保存版本号:

SPContext.Current.ListItem.File.Versions.Count -> 4
SPContext.Current.ListItem.File.Versions[0].ID -> 512 (1.0 oldest one) 
SPContext.Current.ListItem.File.Versions[1].ID -> 513 (1.1)
SPContext.Current.ListItem.File.Versions[2].ID -> 1025 (2.1 latest version)
SPContext.Current.ListItem.File.Versions[3].ID -> 1024 (2.0 (EDIT: IsCurrentVersion = True))

它们既不是升序,也不是降序,而是混合的。

SharePoint 团队是否有任何理由决定存储这样的 SPFile 版本?他们是否希望我编写自己的方法来获取最新版本,或者是否有内置的方法?

注意:让我指出,对于文档库项目,SPListItem.File 不为空。

【问题讨论】:

    标签: sharepoint version-control document wss-3.0


    【解决方案1】:

    以为我会在控制台应用程序中输出一些关于 SPFileVersionCollection 的信息,结果是:

    • 最后一个索引将保存当前(不是 起草但已出版)版本 (SPFileVersion.IsCurrentVersion 属性为 TRUE)
    • 0 索引保存最旧的版本
    • (last index - 1) 包含最后起草的版本(例如 2.7),并且 (last index - 2) 包含 2.6 等。
    • SPFile.Versions.Count = 0,如果您刚刚上传了全新的文档(次要版本,发布前)。
    • 如果您继续上传新的文档版本但尚未发布,则它们会添加到 SPFileVersionCollection,但是在您发布之前没有一个 IsCurrentVersion 属性设置为 true。

    啊,我有一个错误的假设,即最后一个文档草稿版本应该算作最新版本。当然,最后一个 PUBLISHED 版本是最新的!

    不过,请注意不一致。

    【讨论】:

    • 您的最后两个点对我来说似乎是矛盾的 - 如果在发布之前Count 为 0,如何将它们添加到 SPFileVersionCollection
    • @Nacht 感谢您的评论。很久没测试过了,懒得去SharePoint确认了,不过this answer可以解释一下:“SPListItem.Versions.Count总是比SPFile.Versions.Count多1。原因是SPFile考虑最新版本作为当前版本,因此不包含在其版本集合中”
    猜你喜欢
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    相关资源
    最近更新 更多