2010-09-18 1 views
0

У меня есть родительский сайт под которым я хочу создать подсайты на лету с помощью Visual Studio 2010.Создание нового сайта Sharepoint 2010 под родительский сайт с моей пользовательских шаблонов Programatically с помощью Visual Studio 2010

субсайтов, которые я хочу для создания имеют общий stuructre (в темпах списков & custom).

Итак, я сохранил шаблон в sharepoint 2010, он становится wsp и переходит в галерею soution.

Теперь, как я могу использовать этот шаблон, скажите 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

Смежные вопросы