2012-05-07 2 views
0

У меня есть функция Sharepoint, которая включает в себя шаблон списка настроек, который читается другими функциями. В списке должно быть определенное имя для всего, что нужно для работы, поэтому в идеале я бы предпочел создать список вместо шаблона списка.Создать список при установке функции в SharePoint Server 2010

Я пробовал играть с классом EventReceiver, переопределив FeatureInstalled метод. Он получает параметр SPFeatureReceiverProperties. Я просмотрел документацию и увидел, что одно свойство, UserCodeSite, относится к SPSite, где установлена ​​функция, если это решение с областью Site, которое у меня есть. Таким образом, я хотел написать фрагмент кода, который создал бы конкретный список из шаблона списка, включенного в эту функцию.

SPWeb_object.Lists.Add(listName, "", SPListTemplate_object) 

Однако свойство имеет нулевое значение, а также Feature собственность. Поэтому я не могу получить объект SPSite, и я не могу получить объект SPWeb.

Любые другие идеи?

+0

Итак, в вашем проекте Sharepoint у вас есть Список, созданный при реализации? – ironman

+0

Я хочу иметь это. И было бы предпочтительнее иметь этот список, созданный из шаблона. Пока у меня только шаблон. – AlexanderMP

ответ

2

Вы можете создать новую конструкцию ListInstance экземпляра списка. См. Это: http://msdn.microsoft.com/en-us/library/ms476062.aspx Список будет создан после активации этой функции. Для автоматической активации функции вы можете использовать сшивание функций. См. Это http://msdn.microsoft.com/en-us/library/ff648422.aspx

+0

Я создал '' s, затем тип контента, затем определение списка, а затем я заполнил его данными. Это сработало, спасибо. – AlexanderMP

1

Создание списка является очень распространенным требованием. Часто бывает лучше создать экземпляр списка при активации, а не при установке, как это предложил другой плакат. Вы можете получить доступ к желаемой сфере активации (в SPWeb или SPSite, при котором активируется функция) следующим образом:

SPWeb web = (SPWeb)properties.Feature.Parent;

или

SPSite site = (SPSite)properties.Feature.Parent;

Надеется, что это помогает.

+0

Как я уже упоминал в вопросе, свойство 'properties.Feature' имеет значение null в моем случае. В настоящее время я пытаюсь найти решение, подобное предложению Войтеха Надворника. – AlexanderMP

+1

Элемент property.Feature не должен быть нулевым для функции, привязанной к SPWeb, SPSite или SPWebApplication. Если это то, что-то может быть неправильно с пользовательским решением и/или конфигурацией фермы. Лучше всего решить основную причину независимо от того, как вы решите продолжить. –

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