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要复杂,涉及到同步异步的问题,在下一篇博客会详细讲下。
SharePoint 2010 用Event Receiver将文件夹自动变成approved状态 (1)的更多相关文章
- SharePoint 2010 用Event Receiver将文件夹自动变成approved状态 (2)
接上篇,先贴ItemUpdated的代码: base.ItemUpdated(properties); if (properties.ListItem.FileSystemObjectType != ...
- Idea创建文件夹自动合成一个
在idea中创建文件夹时,它们总是自动合成一个,如下图: 文件夹自动折叠真的很影响效率,可能会引发一些不经意的失误 解决方法: 取消这个地方的勾选 这样就可以正常创建文件夹了
- 在SharePoint中创建可自定义属性的文件夹
概况 阅读时间:约5分钟 适用版本:SharePoint Server 2010及以上 面向用户:普通用户.管理员.开发人员 难度指数:★★★☆☆ SharePoint中的文件夹分为2种,一种是文档库 ...
- [SharePoint 2013] Create event receiver for external list
Main list for creating event receiver for external list Subscribe storage, it could be data table ...
- VS15 preview 5打开文件夹自动生成slnx.VC.db SQLite库疑惑?求解答
用VS15 preview 5打开文件夹(详情查看博客http://www.cnblogs.com/zsy/p/5962242.html中配置),文件夹下多一个slnx.VC.db文件,如下图: 本文 ...
- 解决jsp上传文件,重启tomcat后文件和文件夹自动删除
吼吼,我遇到的问题是这样的......我写了一个图片上传的方法,上传时,判断没有这个目录就自动建立一个.然后开始上传图片,能成功,能在服务器找到文件夹和相应的文件. 但是,重启项目,或者清理缓存之后, ...
- CAML获取SharePoint文档库中除文件夹外所有文档
方法一: <QueryOptions> <ViewAttributes Scope="Recursive" /> </QueryOptions> ...
- Sharepoint中有关文件夹的操作
1.GetItemsWithUniquePermissions根据返回数量和是否返回文件夹获取唯一权限的列表项集合 对于SharePoint对象模型中SPList的GetItemsWithUnique ...
- SharePoint 2010 获取列表中所有数据(包括文件夹内)的方法
转: http://blog.csdn.net/wangwenism/article/details/8751411 SharePoint的列表能存储文件以及文件夹,用户使用的时候,经常会建几个分类文 ...
随机推荐
- <jsp:directive.page>标签
directive 英 [dɪ'rektɪv; daɪ-] 美 [daɪ'rɛktɪv] n. 指示:指令 adj. 指导的:管理的 等效于 <%page import="com.ct ...
- R与数据分析旧笔记(四)画地图练习
> library(maps) > library(geosphere) 载入需要的程辑包:sp > map("state")#画美国地图 > map(&q ...
- jQuery给table中的负数标红色
<table class="tb_list"></table> $(function(){ $(".tb_list td").each( ...
- 《JavaScript+DOM编程艺术》的摘要(一)---基本知识点
保持良好的编程习惯:在同一脚本中,保持引号的一致性,都用单引 var mood = "don\"t worry";alert(mood); 数组:var arr=Arra ...
- 第三条:私有化构造器或者枚举类型强化Singleton属性
1.5版本之前,我们通常实现单例模式有两种方式: 两种方法前提都是私有化构造器,然后通过不同的方式获取对象. 第一种:通过公共的静态变量获取 public class Elivs{ // 私有化构造器 ...
- call和apply方法的理解
第一种:直接先来个粟子吧... ; } var child = {}; console.log(child); //Object() 对象 Parent.call(child); console. ...
- Weblogic安装NodeManager
http://blog.sina.com.cn/s/blog_6ed936400100ytdo.html
- delphi datasnap 心跳包
为了能让我们的服务程序更加稳定,有些细节问题必须解决.就如上一讲中提到的客户端拔掉网线,造成服务器上TCP变成死连接,如果死连接数量过多,对服务器能长期稳定运行是一个巨大的威胁.另外,经过测试,如果服 ...
- Thml 小插件8 天气插件定制
网址:http://www.tianqi.com/plugin/
- JAVA排序(一) Comparable接口
昨天接到一个实习公司的电话面试,来的很突然,没有准备. 由于以前没用过,在被他问及是否用过JAVA的排序工具Comparable与Comparator时,没有回答上来,只能实话实说没有用过. 感觉太丢 ...