Пошаговое руководство. Создание веб-части для SharePoint с помощью конструктора
При создании веб-частей для сайта SharePoint пользователи могут напрямую изменять содержимое, внешний вид и поведение страниц на этом сайте с помощью браузера. В этом пошаговом руководстве показано, как визуально создать веб-часть с помощью шаблона проекта Visual Web Part SharePoint в Visual Studio.
Веб-часть, которую вы создадите, отображает ежемесячное представление календаря и поле проверка для каждого списка календарей на сайте. Пользователи могут указать, какие списки календарей следует включить в ежемесячное представление календаря, выбрав поля проверка.
В этом пошаговом руководстве рассматриваются следующие задачи:
Создание веб-части с помощью шаблона проекта визуальной веб-части .
Проектирование веб-части с помощью конструктора Visual Web Developer в Visual Studio.
Добавление кода для обработки событий элементов управления в веб-части.
Тестирование веб-части в SharePoint.
Примечание.
Компьютер может отображать различные имена или расположения для некоторых элементов пользовательского интерфейса для Visual Studio в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. См. статью Персонализация интегрированной среды разработки Visual Studio.
Необходимые компоненты
Для выполнения этого пошагового руководства требуются следующие компоненты:
- Поддерживаемые выпуски Windows и SharePoint.
Создание проекта веб-части
Сначала создайте проект веб-части с помощью шаблона проекта Visual Web Part .
Запустите Visual Studio с помощью параметра Запуска от имени Администратор istrator.
В строке меню выберите Файл >Создать >Проект.
В диалоговом окне "Создание проекта" выберите sharePoint Empty Project* для определенной версии SharePoint, которую вы установили. Например, если у вас установлена установка SharePoint 2019, выберите шаблон SharePoint 2019 — пустой шаблон проекта .
Примечание.
Вы также можете искать шаблоны, введя SharePoint в текстовое поле поиска в верхней части диалогового окна "Создание проекта ". Вы также можете отфильтровать список шаблонов, чтобы отобразить только шаблоны для Office и SharePoint, выбрав "Office" в раскрывающемся списке "Тип проекта". Дополнительные сведения см. в статье Создание проекта в Visual Studio.
В поле "Имя" введите TestProject1 и нажмите кнопку "Создать".
В разделе " Что такое уровень доверия для этого решения SharePoint?" , нажмите кнопку "Развернуть как решение фермы".
Нажмите кнопку "Готово", чтобы принять локальный сайт SharePoint по умолчанию.
Проектирование веб-части
Создайте веб-часть, добавив элементы управления из панели элементов на поверхность конструктора visual Web Developer.
В конструкторе Visual Web Developer выберите вкладку "Конструктор ", чтобы перейти в режим конструктора.
В строке меню выберите Вид>Панель элементов.
На узле "Стандартный" панели элементов выберите элемент управления CheckBoxList и выполните одно из следующих действий:
Откройте контекстное меню элемента управления CheckBoxList , выберите "Копировать", откройте контекстное меню для первой строки конструктора и нажмите кнопку "Вставить".
Перетащите элемент управления CheckBoxList из панели элементов и подключите элемент управления к первой строке в конструкторе.
Повторите предыдущий шаг, но переместите кнопку на следующую строку конструктора.
В конструкторе нажмите кнопку Button1 .
В строке меню выберите окно "Просмотр>свойств".
Откроется окно Свойства.
В свойстве Text кнопки введите Update.
Обработка событий элементов управления в веб-части
Добавьте код, позволяющий пользователю добавлять календари в представление главного календаря.
Выполните одно из следующих действий.
В конструкторе дважды нажмите кнопку "Обновить ".
В окне "Свойства" кнопки "Обновить" нажмите кнопку "События". В свойстве Click введите Button1_Click и нажмите клавишу ВВОД.
Откроется файл кода пользовательского элемента управления в редакторе
Button1_Click
кода и появится обработчик событий. Позже вы добавите код в этот обработчик событий.
Добавьте следующие инструкции в начало файла кода пользовательского элемента управления.
Добавьте в класс следующую строку кода
VisualWebPart1
. Этот код объявляет элемент управления представлением ежемесячного календаря.Замените
Page_Load
методVisualWebPart1
класса следующим кодом. Этот код выполняет следующие задачи:Добавляет ежемесячное представление календаря в элемент управления пользователем.
Добавляет поле проверка для каждого списка календарей на сайте.
Задает шаблон для каждого типа элемента, который отображается в представлении календаря.
protected void Page_Load(object sender, EventArgs e) { MonthlyCalendarView1 = new MonthlyCalendarView(); this.Controls.Add(MonthlyCalendarView1); SPCalendarItemCollection items = new SPCalendarItemCollection(); SPWeb thisWeb = SPControl.GetContextWeb(Context); if (CheckBoxList1.Items.Count == 0) { foreach (SPList listItem in thisWeb.Lists) { if (listItem.BaseTemplate == SPListTemplateType.Events) { CheckBoxList1.Items.Add(new ListItem(listItem.Title)); } } } MonthlyCalendarView1.ItemTemplateName = "CalendarViewMonthItemTemplate"; MonthlyCalendarView1.ItemAllDayTemplateName = "CalendarViewMonthItemAllDayTemplate"; MonthlyCalendarView1.ItemMultiDayTemplateName = "CalendarViewMonthItemMultiDayTemplate"; }
Замените
Button1_Click
методVisualWebPart1
класса следующим кодом. Этот код добавляет элементы из каждого выбранного календаря в представление главного календаря.protected void Button1_Click(object sender, EventArgs e) { SPCalendarItemCollection items = new SPCalendarItemCollection(); SPWeb thisWeb = SPControl.GetContextWeb(Context); foreach (ListItem item in CheckBoxList1.Items) { if (item.Selected == true) { SPList calendarList = thisWeb.Lists[item.Text]; DateTime dtStart = DateTime.Now.AddDays(-7); DateTime dtEnd = dtStart.AddMonths(1).AddDays(7); SPQuery query = new SPQuery(); query.Query = String.Format( "<Query>" + "<Where><And>" + "<Geq><FieldRef Name=\"{0}\" />" + "<Value Type=\"DateTime\">{1}</Value></Geq>" + "<Leq><FieldRef Name=\"{0}\" />" + "<Value Type=\"DateTime\">{2}</Value></Leq>" + "</And></Where><OrderBy><FieldRef Name=\"{0}\" /></OrderBy>" + "</Query>", "Start Time", dtStart.ToShortDateString(), dtEnd.ToShortDateString()); foreach (SPListItem listItem in calendarList.GetItems(query)) { SPCalendarItem calItem = new SPCalendarItem(); calItem.ItemID = listItem["ID"].ToString(); calItem.Title = listItem["Title"].ToString(); calItem.CalendarType = Convert.ToInt32(SPCalendarType.Gregorian); calItem.StartDate = (DateTime)listItem["Start Time"]; calItem.ItemID = listItem.ID.ToString(); calItem.WorkSpaceLink = String.Format( "/Lists/{0}/DispForm.aspx", calendarList.Title); calItem.DisplayFormUrl = String.Format( "/Lists/{0}/DispForm.aspx", calendarList.Title); calItem.EndDate = (DateTime)listItem["End Time"]; calItem.Description = listItem["Description"].ToString(); if (listItem["Location"] != null) { calItem.Location = listItem["Location"].ToString(); } items.Add(calItem); } MonthlyCalendarView1.DataSource = items; } } }
Тестирование веб-части
При запуске проекта откроется сайт SharePoint. Веб-часть автоматически добавляется в коллекцию веб-частей в SharePoint. Чтобы протестировать этот проект, выполните следующие задачи:
- Добавьте событие в каждый из двух отдельных списков календарей.
- Добавьте веб-часть на страницу веб-части.
- Укажите списки для включения в представление ежемесячного календаря.
Добавление событий в списки календарей на сайте
В Visual Studio выберите клавишу F5 .
Откроется сайт SharePoint, а на странице появится панель быстрого запуска Microsoft SharePoint Foundation.
На панели быстрого запуска в разделе "Списки" выберите ссылку "Календарь ".
Открывается страница Календарь.
Если на панели быстрого запуска нет ссылки "Календарь", выберите ссылку "Содержимое сайта". Если страница "Содержимое сайта" не отображает элемент календаря , создайте его.
На странице "Календарь" выберите день и выберите ссылку "Добавить " в выбранный день, чтобы добавить событие.
В поле "Заголовок" введите событие в календаре по умолчанию и нажмите кнопку "Сохранить".
Выберите ссылку "Содержимое сайта" и выберите плитку "Добавить приложение".
На странице "Создать" выберите тип календаря, назовите календарь и нажмите кнопку "Создать".
Добавьте событие в новый календарь, назовите событие в пользовательском календаре и нажмите кнопку "Сохранить ".
Добавление веб-части на страницу веб-части
На странице "Содержимое сайта" откройте папку Site Pages .
На ленте откройте вкладку "Файлы" , откройте меню "Создать документ " и выберите команду "Страница веб-части".
На странице "Новая веб-часть" назовите страницу SampleWebPartPage.aspx и нажмите кнопку "Создать".
Откроется страница веб-части.
В верхней зоне страницы веб-части выберите вкладку "Вставка " и нажмите кнопку "Веб-часть ".
Выберите пользовательскую папку, выберите веб-часть VisualWebPart1 и нажмите кнопку "Добавить".
Веб-часть появится на странице. В веб-части отображаются следующие элементы управления:
Ежемесячное представление календаря.
Кнопка "Обновить".
Поле "Календарь " проверка.
Поле "Настраиваемый календарь" проверка.
Указание списков для включения в представление ежемесячного календаря
В веб-части укажите календари, которые необходимо включить в ежемесячное представление календаря, а затем нажмите кнопку "Обновить ".
События из всех указанных календарей отображаются в представлении ежемесячного календаря.
См. также
Создание веб-частей для SharePoint How to: Create a SharePointWeb part Walkthrough: Create a web partfor SharePoint