您的位置:首页 > 其它

SharePoint 2010中的WebProvisioned Event Handler

2012-02-15 19:40 441 查看
在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):

/// <summary>


[code] /// Web Events


/// </summary>


public class TestEventHandlerWebProvisioned : SPWebEventReceiver


{


/// <summary>


/// A site was provisioned.


   /// </summary>


public override void WebProvisioned(SPWebEventProperties properties)


   {


//base.WebProvisioned(properties);


SPWeb web = properties.Web;


web.Title = "test"+web.Title;


web.Update();


}

[/code]

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }第三步,发布(感谢VS2010,让SharePoint的开发变得如此的简单)

结果:当你在当前站点新建一个网站的时候,网网站的标题前面会自定加上一个“test”。

疑问:

1. 当我在当前站点的子站点新建网站的时候,标题会变化吗?这个feature还会起作用吗?如果不起作用,难道我还要在每个站点上都激活这个feature?有没有其他的办法?

2. 我现在有一个新的需求,当用户新建“博客”或者“工作组”站点的时候,我要在站点里面新建一个列表;或者说当用户新建“我的站点”的时候,我想要在每个用户自己的站点上加上点东西,怎么办?

我在下一篇中会介绍一下Feature Stapling,它可以满足你的需求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: