2010-09-18 36 views
0

我有一個父網站下我想動態創建子網站使用Visual Studio 2010中下創建父網站一個新的站點的SharePoint 2010年我自定義模板編程方式使用Visual Studio 2010

我想讓哪個子網站創建一個共同的stuructre(在列表&定製的temters)。

因此,我將模板保存在sharepoint 2010中,它變成了wsp並進入了soution gallery。

現在我如何使用這個模板說mytemplate.wsp,在Visual Studio中創建網站。

我想這

使用(SPSite的網站=新的SPSite( 「http://infml01132:5566/sites/VRND」))

 { 

      using (SPWeb web = site.OpenWeb()) 

      { 



       SPWebTemplateCollection myTemplates = site.GetCustomWebTemplates(Convert .ToUInt32(web.Locale.LCID)); 

       //SPWebTemplateCollection temlates1 = site.GetCustomWebTemplates(1033); 

       //SPWebTemplateCollection temlates = site.GetWebTemplates(1033); 

       //SPCustomWebTemplate 

       SPWebTemplate subsitetemplate = myTemplates["vrndtmpl" ]; 



       web.Webs.Add("subsite1" , "rnd subsite1" , "subsite description changed" , Convert .ToUInt16(1033), subsitetemplate, false , false); 

      } 

     } 

但我沒有得到我的mytemplates集模板。

感謝

回答

1

我們正在使用此代碼通過它的名稱檢索網站模板:

private SPWebTemplate GetSiteTemplate(SPSite site, string templateName, int lcid) 
{ 
    foreach (SPWebTemplate webTemplate in site.GetWebTemplates(lcid)) 
    { 
     if (webTemplate.Name.ToLower().Contains(templateName.ToLower())) 
     { 
      return webTemplate; 
     } 
    } 
    return null; 
} 

這是100級%的作品。 所以,你的情況,你應該寫:

using (SPSite site = new SPSite ("http://infml01132:5566/sites/VRND")) 
{ 
    using (SPWeb web = site.OpenWeb()) 
    { 
     SPWebTemplate subsitetemplate = GetSiteTemplate(site, "vrndtmpl", 1033); 
     web.Webs.Add("subsite1" , "rnd subsite1" , "subsite description changed" , uint(1033), subsitetemplate, false , false); 
    } 
} 

另外,請保證,您已經SiteTemplates目錄下部署您的網站模板,以及相應的WebTemp.xml文件< 14蜂巢> \模板\ 1033 \ XML或通過功能部署它,如here所述。

+0

嘿非常感謝omlin.Your方法幫了我,我用了getavailablewebtemplates方法。 :) – user439613 2010-09-20 06:27:56

相關問題