Поделиться через


Создание настраиваемых типов контента в SharePoint 2010

Баннер SharePoint QuickStart

Начало работы по веб-разработке в 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

  1. Чтобы запустить Visual Studio 2010, щелкните меню "Пуск", Все программы, Microsoft Visual Studio 2010 и Microsoft Visual Studio 2010.

  2. В меню Файл наведите курсор на команду Создать и выберите Проект.

  3. В диалоговом окне Создание проекта в разделе Установленные шаблоны щелкните Visual C#, SharePoint и 2010.

  4. Выберите Пустой проект SharePoint из элементов проекта.

  5. В поле Имя введите CreateContentType и нажмите кнопку OK.

  6. В мастере настройки SharePoint введите локальный веб-сайт, который будет использоваться для этого упражнения (например, https://localhost/SampleWebSite).

  7. Для уровня доверия выберите Развернуть как решение фермы и нажмите кнопку Готово.

Создание типа контента

В этой задаче создается тип контента как компонент и добавляется приемник событий.

Создание типа контента

  1. Щелкните правой кнопкой мыши папку Компоненты в обозревателе решений и выберите команду Добавить компонент.

  2. Щелкните правой кнопкой мыши Feature1 и выберите команду Добавить приемник событий. Visual Studio добавляет приемник событий компонента в Feature1.

  3. Щелкните правой кнопкой мыши файл Feature1.EventReceiver.cs и выберите команду Просмотреть код.

  4. Раскомментируйте метод FeatureActivated в классе Feature1EventReceiver.

  5. Вставьте следующий код в метод 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.

  6. Раскомментируйте метод FeatureDeactivating.

  7. Вставьте в метод 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.

  8. В обозревателе решений щелкните правой кнопкой мыши CreateContentType и выберите команду Развернуть.

Проверка работы проекта

В этой задаче выполняется проверка наличия типа контента и двух его полей.

Тестирование проекта

  1. Запустите Internet Explorer и перейдите на веб-сайт, указанный ранее.

  2. В левой верхней области экрана щелкните Действия сайта и Параметры сайта.

  3. В разделе Коллекции щелкните Столбцы сайта.

  4. В параметрах Показать группу щелкните Настраиваемые столбцы.

    Должно отобразиться новое поле Team Project.

    Рис. 1. Поле "Team Project"

    Поле "Командный проект"

  5. Щелкните Действия сайта и Параметры сайта.

  6. В разделе Коллекции щелкните Типы контента сайта.

  7. В параметрах Показать группу выберите Настраиваемые типы контента.

    Должен отобразиться новый тип контента New Announcements.

    Рис. 2. Тип контента "Новые объявления"

    Тип контента "Объявления"

Дальнейшие действия