Sharepoint 2010客户端OM - 如何获取上次批准的文档版本?

时间:2012-04-03 20:41:46

标签: c# sharepoint-clientobject

我正在尝试将sharepoint foundation 2010用作网站的文件存储。每个文档更新必须通过批准周期,并最终达到批准状态,以便在最终用户的网站上显示。在sharepoint中更新文档时,即使先前版本已获批准,状态也会重置为“草稿”。这是预期的行为。

File.Versions为我提供了版本列表。

如何获取上次“已批准”的版本?

1 个答案:

答案 0 :(得分:1)

您需要遍历ListItem的版本并找到已发布的最新版本。使用SPListItemVersionCollection循环浏览版本并查看SPFileLevel

根据 Sebastian Wojciechowski's community addition

上MSDN文章的SPListItemVersionCollection
SPListItem.Versions[0] //this is current version of the item
SPListItem.Versions[1] //this is previous version of the item
SPListItem.Versions[SPListItem.Versions.Count - 1] //this is first version of the item

版本以相反的顺序(从最新到最旧)编制索引,因此您的代码将类似于:

// Retrieve all versions
SPListItemVersionCollection itemVersions = item.Versions;
for (int i = 0; i < itemVersions.Count - 1; i++)
{
    // Check if version is published
    if (itemVersions[i].Level == SPFileLevel.Published)
    {
        return itemVersions[i];
    }
}