SharePoint 2010中的WebProvisioned Event Handler
在SharePoint 2010中,新增加了一些Event Handler事件,例如:针对Web级别的WebProvisioned(SPWebEventProperties),WebAdding(SPWebEventProperties),和针对列表级别的ListAdding(SPListEventProperties),ListDeleting(SPListEventProperties)等,更加详细的内容请参考:http://msdn.microsoft.com/en-us/library/ff407299.aspx
在本文中我将简单说一下WebProvisioned(SPWebEventProperties)这个事件。官方的描述是:After event that fires after a subsite is fully provisioned and the provisioning process has stopped, but does not fire when the root web site of a new site collection is created。我的理解:就是当站点(Web)创建完成之后,你可以自定义的事件,譬如说:修改站点的母版页,新建自定义列表等等。
第一步,项目中添加“Event Handler”,选中Web Events,然后选中想要捕获的事件,例如“a site was provisioned” .如下图:
第二步,写你的自定义逻辑。(我的demo是要修改站点的title):
1: ///
2: /// Web Events
3: ///
4: public class TestEventHandlerWebProvisioned : SPWebEventReceiver
5: { 6: ///
7: /// A site was provisioned.
8: ///
9: public override void WebProvisioned(SPWebEventProperties properties)
10: { 11: //base.WebProvisioned(properties);
12: SPWeb web = properties.Web; 13: web.Title = "test"+web.Title;
14: web.Update(); 15: } 第三步,发布(感谢VS2010,让SharePoint的开发变得如此的简单)
结果:当你在当前站点新建一个网站的时候,网网站的标题前面会自定加上一个“test”。
疑问:
1. 当我在当前站点的子站点新建网站的时候,标题会变化吗?这个feature还会起作用吗?如果不起作用,难道我还要在每个站点上都激活这个feature?有没有其他的办法?
2. 我现在有一个新的需求,当用户新建“博客”或者“工作组”站点的时候,我要在站点里面新建一个列表;或者说当用户新建“我的站点”的时候,我想要在每个用户自己的站点上加上点东西,怎么办?
我在下一篇中会介绍一下Feature Stapling,它可以满足你的需求。
转载于:https://www.cnblogs.com/fanwenxuan/archive/2012/02/15/2353115.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
