我正在尝试将sharepoint foundation 2010用作网站的文件存储。每个文档更新必须通过批准周期,并最终达到批准状态,以便在最终用户的网站上显示。在sharepoint中更新文档时,即使先前版本已获批准,状态也会重置为“草稿”。这是预期的行为。
File.Versions为我提供了版本列表。
如何获取上次“已批准”的版本?
答案 0 :(得分:1)
您需要遍历ListItem的版本并找到已发布的最新版本。使用SPListItemVersionCollection循环浏览版本并查看SPFileLevel
根据 Sebastian Wojciechowski's community addition
上MSDN文章的SPListItemVersionCollectionSPListItem.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];
}
}