Sharepoint 2010 用VS定制Master,并且每个Web应用同一个Master
生活随笔
收集整理的這篇文章主要介紹了
Sharepoint 2010 用VS定制Master,并且每个Web应用同一个Master
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
????? 最近做了一個(gè)項(xiàng)目管理系統(tǒng),要求用Sharepoint,有個(gè)特別的功能就是通過創(chuàng)建出來的子站點(diǎn)要求應(yīng)用同一個(gè)Master頁面,并且每次修改Master頁面都要同時(shí)修改所有的子站點(diǎn),有這個(gè)需求就限制了Master頁面只能有一個(gè),通過查找資料,最終找到了相應(yīng)的解決方案,用VS定制Master頁面,通過Feature EventReceive 和 EventReceive兩個(gè)事件處理程序來完成操作,下面一步一步來介紹開發(fā)過程。
項(xiàng)目整體結(jié)構(gòu)如下圖所示。一、創(chuàng)建兩個(gè)Module,ModuleMasterpage和ModuleStyle 修改ModuleMasterPage的Xml,修改格式如下 <Module Name="ModuleMasterPage" Path="ModuleMasterPage" Url="_catalogs/masterpage"><File Url="CustomMasterPage.master" Type="GhostableInLibrary"><Property Name="UIVersion" Value="4"/><Property Name="ContentTypeId" Value="0x010105"/></File></Module> 上面的Url 通過SharePoint Designer可以找到MasterPage所在的位置,之后把對(duì)應(yīng)的路徑寫上就OK了,部署解決方案后可以到Designer里查看。 修改ModuleStyle <Module Name="ModuleStyle" Url="Style Library"><File Path="ModuleStyle\CustomCss.css" Url="ModuleStyle/CustomCss.css" /></Module> 上面的Url對(duì)應(yīng) 樣式庫 通過Designer查看,原理同上 二、創(chuàng)建Master 把Sample.txt 修改成 CustomMasterPage.master,通過Designer打開V4.master,之后復(fù)制所有內(nèi)容到?CustomMasterPage.master上面,根據(jù)不同的需求進(jìn)行定制就OK了,定制完成后Deploy。 三、創(chuàng)建?Feature EventReceive ,啟用?FeatureActivated(激活某個(gè)功能后引發(fā)的事件) 和?FeatureDeactivating(停用某個(gè)功能前引發(fā)的事件),這兩個(gè)事件對(duì)應(yīng)的方法為 View Code public override void FeatureActivated(SPFeatureReceiverProperties properties){SPSite site = properties.Feature.Parent as SPSite;if (site != null){string url = site.ServerRelativeUrl;foreach (SPWeb web in site.AllWebs){web.MasterUrl = url + "_catalogs/masterpage/CustomMasterPage.master";web.CustomMasterUrl = url + "_catalogs/masterpage/CustomMasterPage.master";web.AlternateCssUrl = url + "Style Library/ModuleStyle/CustomCss.css";web.UIVersion = 4;web.Update();}}}public override void FeatureDeactivating(SPFeatureReceiverProperties properties){SPSite site = properties.Feature.Parent as SPSite;if (site != null){string url = site.ServerRelativeUrl;foreach (SPWeb web in site.AllWebs){web.MasterUrl = url + "_catalogs/masterpage/V4.master";web.CustomMasterUrl = url + "_catalogs/masterpage/V4.master";web.AlternateCssUrl = "";web.SiteLogoUrl = "";web.UIVersion = 4;web.Update();}}} 這兩個(gè)方法比較簡單,就不做詳細(xì)介紹了 四、創(chuàng)建 EventReceive?EventReceiverChildSiteCreated,子站點(diǎn)創(chuàng)建后應(yīng)用Master /// <summary>/// 已配置網(wǎng)站./// </summary>public override void WebProvisioned(SPWebEventProperties properties){base.WebProvisioned(properties);SPWeb web = properties.Web;SPWeb rootWeb = properties.Web.Site.RootWeb;web.MasterUrl = rootWeb.MasterUrl;web.CustomMasterUrl = rootWeb.CustomMasterUrl;web.AlternateCssUrl = rootWeb.AlternateCssUrl;web.Update();}
最后就是部署并激活Feature了,就這樣解決了用戶的要求,同時(shí)分享給大家了......
參考資料:Sharepoint 2010 開發(fā)最佳實(shí)踐?? 這本書
轉(zhuǎn)載于:https://www.cnblogs.com/Fengger/archive/2013/04/07/3003417.html
總結(jié)
以上是生活随笔為你收集整理的Sharepoint 2010 用VS定制Master,并且每个Web应用同一个Master的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: weevely-------linux中
- 下一篇: 腾讯、百度、阿里、微软面试题精选(不断更