Получить пользовательские шаблоны программно sharepoint 2010 - PullRequest
0 голосов
/ 27 января 2011

Для получения стандартных шаблонов я делаю:

private void getTemplates()
{
    string server = serverURL();
    using (SPSite siteCollection = new SPSite(server))
    {
        SPWebTemplateCollection Templates = siteCollection.GetWebTemplates(1033);
        foreach (SPWebTemplate template in Templates)
        {
                ddlSiteTemplate.Items.Add(new ListItem(template.Title, template.Name));
        }
    }
}

Я думал, что смогу сделать:

private void getTemplates()
{
    string server = serverURL();
    using (SPSite siteCollection = new SPSite(server))
    {
        SPWebTemplateCollection Templates = siteCollection.GetCustomWebTemplates(1033);
        foreach (SPCustomWebTemplate template in Templates)
        {
                ddlSiteTemplate.Items.Add(new ListItem(template.Title, template.Name));
        }
    }
}

Чтобы получить пользовательские шаблоны, но раскрывающийся список пуст, что я здесь не так делаю?

Заранее спасибо.

Редактировать: шаблоны активируются в галерее решений.

Ответы [ 2 ]

0 голосов
/ 27 марта 2013

SPSite не содержит метод GetAvailableWebTemplates.Для тех, кто хотел бы использовать код, используйте приведенный ниже.Поэтому я добавил эту строку кода:

 using(SPWeb web = siteCollection.OpenWeb())
    {
                SPWebTemplateCollection Templates = web.GetAvailableWebTemplates(1033);

Полный код:

 private void getTemplates()
    {
        string server = serverURL();
        using (SPSite siteCollection = new SPSite(server))
        {
using(SPWeb web = siteCollection.OpenWeb())
{
            SPWebTemplateCollection Templates = web.GetAvailableWebTemplates(1033);
            foreach (SPCustomWebTemplate template in Templates)
            {
    //this gives me all templates, both standard and custom so I filter by name
    if(template.name.ToUpper().StartsWith("CUSTOM"))
    {
                    ddlSiteTemplate.Items.Add(new ListItem(template.Title, template.Name));
    }
}
            }
        }
    }
0 голосов
/ 27 января 2011

Я получил его на работу с

private void getTemplates()
{
    string server = serverURL();
    using (SPSite siteCollection = new SPSite(server))
    {
        SPWebTemplateCollection Templates = siteCollection.GetAvailableWebTemplates(1033);
        foreach (SPCustomWebTemplate template in Templates)
        {
//this gives me all templates, both standard and custom so I filter by name
if(template.name.ToUpper().StartsWith("CUSTOM"))
{
                ddlSiteTemplate.Items.Add(new ListItem(template.Title, template.Name));
}
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...