当开发一个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要复杂,涉及到同步异步的问题,在下一篇博客会详细讲下。

SharePoint 2010 用Event Receiver将文件夹自动变成approved状态 (1)的更多相关文章

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

    接上篇,先贴ItemUpdated的代码: base.ItemUpdated(properties); if (properties.ListItem.FileSystemObjectType != ...

  2. Idea创建文件夹自动合成一个

    在idea中创建文件夹时,它们总是自动合成一个,如下图: 文件夹自动折叠真的很影响效率,可能会引发一些不经意的失误 解决方法: 取消这个地方的勾选 这样就可以正常创建文件夹了

  3. 在SharePoint中创建可自定义属性的文件夹

    概况 阅读时间:约5分钟 适用版本:SharePoint Server 2010及以上 面向用户:普通用户.管理员.开发人员 难度指数:★★★☆☆ SharePoint中的文件夹分为2种,一种是文档库 ...

  4. [SharePoint 2013] Create event receiver for external list

    Main list for creating event receiver for external list Subscribe   storage, it could be data table ...

  5. VS15 preview 5打开文件夹自动生成slnx.VC.db SQLite库疑惑?求解答

    用VS15 preview 5打开文件夹(详情查看博客http://www.cnblogs.com/zsy/p/5962242.html中配置),文件夹下多一个slnx.VC.db文件,如下图: 本文 ...

  6. 解决jsp上传文件,重启tomcat后文件和文件夹自动删除

    吼吼,我遇到的问题是这样的......我写了一个图片上传的方法,上传时,判断没有这个目录就自动建立一个.然后开始上传图片,能成功,能在服务器找到文件夹和相应的文件. 但是,重启项目,或者清理缓存之后, ...

  7. CAML获取SharePoint文档库中除文件夹外所有文档

    方法一: <QueryOptions> <ViewAttributes Scope="Recursive" /> </QueryOptions> ...

  8. Sharepoint中有关文件夹的操作

    1.GetItemsWithUniquePermissions根据返回数量和是否返回文件夹获取唯一权限的列表项集合 对于SharePoint对象模型中SPList的GetItemsWithUnique ...

  9. SharePoint 2010 获取列表中所有数据(包括文件夹内)的方法

    转: http://blog.csdn.net/wangwenism/article/details/8751411 SharePoint的列表能存储文件以及文件夹,用户使用的时候,经常会建几个分类文 ...

随机推荐

  1. IOS-将长文字转化成图片方法

    我们在看微博时,会看到一些长图片上的显示文章,现在就介绍下如何实现.分析下还是很简单的,总结如下:1.计算文字区域的高 2.利用UIGraphics图形上下文方法来实现 3.验证方法:UIImageW ...

  2. System.Web.HttpException: 无法向会话状态服务器发出会话状态请求

    System.Web.HttpException: 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器 ...

  3. 一周学会Mootools 1.4中文教程:(7)汇总收尾

    转眼之间已经第七课了,这也将成为最后一课,如果这7课下来您感觉水平没有达到预想的水平,没关系您可以继续关注本站的博文,我会陆续发一些类似的文章帮您提升水平,另外我最近打算和群里的几个Mootools爱 ...

  4. poj 3469 Dual Core CPU 最小割

    题目链接 好裸的题....... 两个cpu分别作为源点和汇点, 每个cpu向元件连边, 权值为题目所给的两个值, 如果两个元件之间有关系, 就在这两个元件之间连边, 权值为消耗,这里的边应该是双向边 ...

  5. SQL Server 中大小写区分的处理

    SQL Server 中大小写区分的处理. 默认情况下,SQL Server 里面是不区分大小写的: E:\>sqlcmd -S "localhost\SQLEXPRESS" ...

  6. RHEL4-Partition Image系统备份(软件版)

    对于BBS,或Apache,PHP等相关网页的程序 备份: 1)/var/www/html目录,里面有PHP所写成的网页.此网页主要功能是从资料库中读取由信件存入的文章,或是使用者选择由网页输入资料时 ...

  7. 求1~n直接1出现的次数

    参考前人的统计思想:分别统计个.十.百...亿等第N位上1出现的次数. 如ABCDE,在统计D位1出现的次数时,用D做分割符,ABC为Before,E为After. 分情况考虑:(n为D的length ...

  8. 修改Eclipse的WorkSpace保持数[转载]

    最近用Eclipse开发特别多,我个人习惯每一个项目一个WorkSpace,这样的话代码干净.而且当项目之前编码规范不一样时,也不会彼此影响.但项目一多,Eclipse默认只保存5个WorkSpace ...

  9. WPF:在XmlDataProvider上使用主-从绑定(Master-Detail Binding)

    原文 http://www.cnblogs.com/mgen/archive/2011/06/19/2084553.html 示例程序: 如上程序截图,一目了然典型的主从模式绑定应用,如果里面的数据不 ...

  10. HDU 5729 Rigid Frameworks(连通性DP)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5729 [题目大意] 给出一个n*m的方格框,可以在单位矩形中添加两种对角线的线,使得其变得稳定,问 ...