如何判断当前文档Check In的是Minor(Draft) version 还是Major(publish) version?

一个很有趣的case, 客户想知道在ItemCheckingIn的Event Handler中如何知道自己Check In的是Minor(Draft) version 还是Major(publish) version。

这是一个典型的ItemCheckingIn Event Handler的方法

public override void ItemCheckingIn(SPItemEventProperties properties)
{
    //Your Code
}

 

如果比较properties.BeforeProperties和properties.AfterProperties,在SP1时,两个完全相同。就是说,你没有办法从这个Event Handler来判断,需要借助ItemCheckedIn。

在SP2(最早应该在2008年8月累计更新,没环境了,不完全肯定),properties.BeforeProperties和properties.AfterProperties有点区别了。

properties.BeforeProperties["vti_level"] = 255

properties.AfterProperties["vti_level"] = 255 / 1 / 2

AfterProperties["vti_level"] = 255, 说明是一个普通的Check In,

AfterProperties["vti_level"] = 1, 则说明是Check In 并且发布成为一个Major(publish) version。

如果启用了Content Approval 功能, AfterProperties["vti_level"] 可能会等于 2, 说明是Check In 并且发布成为一个Major(publish) version,但是还没有经过审核。

posted @ 2009-07-23 18:28  Lambert Qin  Views(578)  Comments(0Edit  收藏  举报