Создание настраиваемых типов контента в SharePoint 2010
Начало работы по веб-разработке в SharePoint 2010: создание настраиваемого типа контента в SharePoint 2010.
Дата последнего изменения: 12 января 2011 г.
Применимо к: SharePoint Foundation 2010 | SharePoint Server 2010 | Visual Studio | Visual Studio 2010
В этой статье
Создание проекта SharePoint 2010
Создание типа контента
Проверка работы проекта
Дальнейшие действия
В этом упражнении создается настраиваемый тип контента. После этого в тип контента добавляются два поля: новое текстовое поле и поле, уже существующее на веб-сайте. Для выполнения этой задачи необходимо выполнить следующие действия:
Создание проекта SharePoint 2010
Создание типа контента
Проверка работы проекта
Создание проекта SharePoint 2010
В этой задаче создается пустой проект SharePoint 2010 в Microsoft Visual Studio 2010.
Создание проекта SharePoint
Чтобы запустить Visual Studio 2010, щелкните меню "Пуск", Все программы, Microsoft Visual Studio 2010 и Microsoft Visual Studio 2010.
В меню Файл наведите курсор на команду Создать и выберите Проект.
В диалоговом окне Создание проекта в разделе Установленные шаблоны щелкните Visual C#, SharePoint и 2010.
Выберите Пустой проект SharePoint из элементов проекта.
В поле Имя введите CreateContentType и нажмите кнопку OK.
В мастере настройки SharePoint введите локальный веб-сайт, который будет использоваться для этого упражнения (например, https://localhost/SampleWebSite).
Для уровня доверия выберите Развернуть как решение фермы и нажмите кнопку Готово.
Создание типа контента
В этой задаче создается тип контента как компонент и добавляется приемник событий.
Создание типа контента
Щелкните правой кнопкой мыши папку Компоненты в обозревателе решений и выберите команду Добавить компонент.
Щелкните правой кнопкой мыши Feature1 и выберите команду Добавить приемник событий. Visual Studio добавляет приемник событий компонента в Feature1.
Щелкните правой кнопкой мыши файл Feature1.EventReceiver.cs и выберите команду Просмотреть код.
Раскомментируйте метод FeatureActivated в классе Feature1EventReceiver.
Вставьте следующий код в метод FeatureActivated.
using (SPWeb spWeb = properties.Feature.Parent as SPWeb) { SPContentType newAnnouncement = spWeb .ContentTypes .Cast<SPContentType>() .FirstOrDefault(c => c.Name == "New Announcements"); if (newAnnouncement != null) { newAnnouncement.Delete(); } SPField newField = spWeb.Fields .Cast<SPField>() .FirstOrDefault(f => f.StaticName == "Team Project"); if (newField != null) { newField.Delete(); } SPContentType myContentType = new SPContentType(spWeb.ContentTypes["Announcement"], spWeb.ContentTypes, "New Announcements"); myContentType.Group = "Custom Content Types"; spWeb.Fields.Add("Team Project", SPFieldType.Text, true); SPFieldLink projFeldLink = new SPFieldLink(spWeb.Fields["Team Project"]); myContentType.FieldLinks.Add(projFeldLink); SPFieldLink companyFieldLink = new SPFieldLink(spWeb.Fields["Company"]); myContentType.FieldLinks.Add(companyFieldLink); spWeb.ContentTypes.Add(myContentType); myContentType.Update(); }
Метод FeatureActivated выполняется при запуске компонента Feature1. Этот код выполняет следующие действия:
Удаляет тип контента New Announcements и поле Team Project, если они существуют.
Создает родительский тип контента Announcement, основанный на типе контента New Announcements.
Создает текстовое поле с именем Team Project и добавляет его в тип контента.
Добавляет в тип контента существующее поле с именем Company.
Раскомментируйте метод FeatureDeactivating.
Вставьте в метод FeatureDeactivating следующий код.
using (SPWeb spWeb = properties.Feature.Parent as SPWeb) { SPContentType myContentType = spWeb.ContentTypes["New Announcements"]; spWeb.ContentTypes.Delete(myContentType.Id); spWeb.Fields["Team Project"].Delete(); }
Метод FeatureDeactivating выполняется при деактивации компонента Feature1. Этот код выполняет следующие действия:
Удаляет тип контента New Announcements.
Удаляет текстовое поле Team Project.
В обозревателе решений щелкните правой кнопкой мыши CreateContentType и выберите команду Развернуть.
Проверка работы проекта
В этой задаче выполняется проверка наличия типа контента и двух его полей.
Тестирование проекта
Запустите Internet Explorer и перейдите на веб-сайт, указанный ранее.
В левой верхней области экрана щелкните Действия сайта и Параметры сайта.
В разделе Коллекции щелкните Столбцы сайта.
В параметрах Показать группу щелкните Настраиваемые столбцы.
Должно отобразиться новое поле Team Project.
Рис. 1. Поле "Team Project"
Щелкните Действия сайта и Параметры сайта.
В разделе Коллекции щелкните Типы контента сайта.
В параметрах Показать группу выберите Настраиваемые типы контента.
Должен отобразиться новый тип контента New Announcements.
Рис. 2. Тип контента "Новые объявления"