Как создать список Sharepoint с помощью приемника функций и существующего шаблона списка - PullRequest
2 голосов
/ 28 мая 2009

У меня есть шаблон списка в Галерее шаблонов списков MOSS, и мне нужно создать список, используя этот шаблон из приемника объектов. Это звучит очень просто, но я не могу найти способ сделать это.

SPWeb имеет метод GetCatalog, который возвращает SPList с 1 элементом - моим шаблоном - но это SPListItem, и мне нужен SPListTemplate. Как я могу «преобразовать» предмет в правильный тип?

Спасибо

Ответы [ 4 ]

0 голосов
/ 17 февраля 2012

Прочитайте мой ответ на этот вопрос . При этом вы должны получить результат из GetCustomListTemplates вместо просто пустого списка.

0 голосов
/ 31 мая 2009

Вы должны использовать внутреннее имя ... примерно так:

foreach (SPListTemplate template in web.ListTemplates)
 {
    if (template.InternalName.Equals("MyTemplateName")
     {
        return template;
     }
 }
0 голосов
/ 02 июня 2009

Итак, мы отказались и вместо этого использовали приемник функций, чтобы полностью создать список из кода. ListDefs - это полноценный PITA - C # - гораздо более логичный способ создания списков, плюс вы получаете дополнительное преимущество возможности обновления кода до списков.

Спасибо всем.

0 голосов
/ 31 мая 2009

Используйте метод GetCustomListTemplates объекта SPSite , чтобы получить объект SPListTemplate , представляющий пользовательский шаблон. Затем используйте метод SPListCollection.Add , чтобы создать новый список из этого шаблона. В коде это будет выглядеть примерно так:

using (SPSite site = new SPSite("http://server/sites/site"))
using (SPWeb web = site.OpenWeb())
{
  SPListTemplateCollection templates = site.GetCustomListTemplates(web);
  SPListTemplate template = templates["MyTemplates"];
  Guid listId = web.Lists.Add("Title", "Description", template);
}
...