SharePoint 2010 用Event Receiver将文件夹自动变成approved状态 (1)

当开发一个sharepoint门户网站,或者是一个内容管理的网站的时候,站点的模板通常会选用publish portal,或者是开启了publishing feature来对内容进行版本控制和流程控制。

在这种环境下,如果对整个站点进行爬网,就需要注意一个关于文档库中文件夹的问题:

文件夹的状态有draft,approved的两种,当创建一个文件夹的时候,文件夹的初始状态是draft,如果对整个站点进行爬网,那么draft状态下的文件夹里的内容是不会被爬到的,即使这些内容都是approved的状态。

因此我们需要将文件夹的状态改成approved状态,手动当然是可以的,但是用户经常忘记这项操作。。。你懂的

所以我们最好用event receiver的ItemAdded方法来自动将文档夹的状态变成approved。

代码片段如下:

 		if (properties.ListItem.FileSystemObjectType != SPFileSystemObjectType.Folder)
                    return;
                SPSecurity.RunWithElevatedPrivileges(delegate
                           {
                               SPSite spSite = new SPSite(properties.Web.Site.ID);
                               SPWeb web = spSite.OpenWeb(properties.Web.Url);
                               web.AllowUnsafeUpdates = true;
                               string itemUrl = properties.Web.Url + @"/" + properties.AfterUrl;
                               SPListItem item = web.GetListItem(itemUrl);
                               SPModerationInformation approverInfo = item.ModerationInformation;
                               if (approverInfo != null)
                               {
                                   if (approverInfo.Status != SPModerationStatusType.Approved)
                                   {
                                       approverInfo.Status = SPModerationStatusType.Approved;
                                       item.Update();
                                   }
                               }
                               web.AllowUnsafeUpdates = false;
                               web.Dispose();
                               spSite.Dispose();

                           });


 创建文件夹动作的代码控制已经完成,但是如果用户修改了文件夹名称,文件夹又会回到draft状态,这时候就需要用到ItemUpdated方法,这块比ItemAdded要复杂,涉及到同步的问题,在下一篇博客会详细讲下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值