Wskazówki: tworzenie składnika Web part dla SharePoint za pomocą Projektanta
Jeśli tworzysz składniki web Part witryny programu SharePoint, użytkownicy mogą bezpośrednio modyfikować zawartość, wygląd i zachowanie stron w tej witrynie za pomocą przeglądarki.Ten poradnik pokazuje jak utworzyć część sieci wizualnie przy użyciu SharePoint Visual Web Part szablonu projektu w Visual Studio.
Część sieciowa, którą utworzysz wyświetla miesięczny widok kalendarza i okno zaznaczenia dla każdej listy kalendarza na stronie.Użytkownicy mogą określić, które listy kalendarza zawrzeć w miesięcznym widoku kalendarza, wybierając okno zaznaczenia.
W przewodniku przedstawiono następujące zagadnienia:
Tworzenie składnika WebPart za pomocą szablon projektu Visual Web Part.
Projektowanie składnika web part przy użyciu funkcji Projektant Visual Web Developer w Visual Studio.
Dodawanie kodu do obsługi zdarzeń formantów w części sieci.
Testowanie części sieci w programie SharePoint.
[!UWAGA]
Nazwy lub lokalizacje dla niektórych elementów interfejsu użytkownika dla programu Visual Studio mogą być wyświetlane na Twoim komputerze inaczej niż to przedstawiono w poniższych instrukcjach.Te elementy są determinowane przez numer edycji Twojego programu Visual Studio oraz Twoje ustawienia.Zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.
Wymagania wstępne
Następujące składniki są wymagane do przeprowadzenia tego instruktażu:
Obsługiwane edycje systemu Windows i programu SharePoint.Zobacz Wymagania związane z opracowywaniem rozwiązań SharePoint.
Visual Studio Professional lub większa.
Tworzenie projektu części sieci
Najpierw utwórz projekt składnika WebPart za pomocą szablon projektu Visual Web Part.
Aby utworzyć wizualny projekt składnika sieci
Uruchom Visual Studio używając opcji Uruchom jako Administrator.
W pasku menu wybierz Plik, Nowy, Projekt.
Pojawi się okno dialogowe Nowy projekt.
W oknie dialogowym Nowy projekt w obszarze Visual C# lub Visual Basic rozwiń Office/SharePoint, a następnie wybierz kategorię Rozwiązania SharePoint.
Na liście szablonów, wybierz opcję SharePoint 2013 — Visual Web Part, a następnie wybierz przycisk OK.
Wyświetla sięKreator ustawień niestandardowych SharePoint .Uzywając tego kreatora, możesz określić stronę której będziesz używał do debugowania projektu i poziomu zaufania rozwiązania.
W sekcji Jaki jest poziom zaufania dla tego rozwiązania programu SharePoint? wybierz przycisk opcji Wdróż jako rozwiązanie farmy.
Wybierz przycisk Zakończ , aby zaakceptować domyślną lokalną witrynę programu SharePoint.
Projektowanie części sieci
Projektowanie składnika web part przez dodanie formantów z Przybornika do powierzchni Projektanta Visual Web Developer.
Aby zaprojektować układ części sieci
W projektancie Visual Web Developer, wybierz zakładkę Projekt, aby przełączyć do widoku projektu.
Na pasku menu wybierz Widok, Przybornik.
W węźle StandardowyPrzybornika wybierz formant CheckBoxList, a następnie wykonaj jedną z następujących czynności:
Otwórz menu skrótów dla formantu CheckBoxList, wybierz opcję Kopiuj, otwórz menu skrótów dla pierwszego wiersza w projektancie, a następnie wybierz Wklej.
Przeciągnij formant CheckBoxList z Przybornika i połącz formant do pierwszego wiersza w projektancie.
Powtórz poprzedni krok, ale przenieść przycisk do następnego wiersza projektanta.
W projektancie, wybierz przycisk Button1.
Na pasku menu wybierz Widok, Okno właściwości.
Otworzy się okno Właściwości.
We własność przycisku Tekst wprowadź Aktualizacja.
Obsługa zdarzeń formantów na części strony
Dodaj kod, który umożliwia użytkownikowi dodanie kalendarze w widoku kalendarza głównego.
Do obsługi zdarzeń formantów w części sieci
Wykonaj jeden z następujących zestawów czynności:
W projektancie, kliknij dwukrotnie przycisk Aktualizacja.
W oknie Właściwości dla przycisku Aktualizuj wybierz przycisk Zdarzenia.We właściwości Kliknij wprowadź Button1_Click, a następnie wybierz klawisz Enter.
Kod kontroli użytkownika otwiera edytor kodów i wyświetla się Button1_Click obsługa zdarzeń.Później dodasz kod do tego programu obsługi zdarzeń.
Dodaj następujące instrukcje na górze pliku kodu formanu użytkownika.
Imports Microsoft.SharePoint Imports Microsoft.SharePoint.WebControls Imports System.Web.UI.WebControls
using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; using System.Web.UI.WebControls;
Dodaj następujący wiersz do VisualWebPart1 klasy.Ten kod deklaruje kontrolę widoku kalendarza miesięcznego.
Private MonthlyCalendarView1 As MonthlyCalendarView
private MonthlyCalendarView MonthlyCalendarView1;
Zastąp istniejący kod w metodzie Page_Load poniższym kodem, aby obliczyć VisualWebPart1:Ten kod wykonuje poniższe zadania:
Dodaje widok kalendarza miesięcznego do kontrolki użytkownika.
Dodaje pole wyboru dla każdej listy kalendarza w witrynie.
Określa szablon dla każdego typu elementu, który pojawia się w widoku kalendarza.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load MonthlyCalendarView1 = New MonthlyCalendarView() Me.Controls.Add(MonthlyCalendarView1) Dim items As New SPCalendarItemCollection() Dim thisWeb As SPWeb = SPControl.GetContextWeb(Context) If CheckBoxList1.Items.Count = 0 Then Dim listItem As SPList For Each listItem In thisWeb.Lists If listItem.BaseTemplate = SPListTemplateType.Events Then CheckBoxList1.Items.Add(New ListItem(listItem.Title)) End If Next listItem End If MonthlyCalendarView1.ItemTemplateName = "CalendarViewMonthItemTemplate" MonthlyCalendarView1.ItemAllDayTemplateName = "CalendarViewMonthItemAllDayTemplate" MonthlyCalendarView1.ItemMultiDayTemplateName = "CalendarViewMonthItemMultiDayTemplate" End Sub
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"; }
Zastąp istniejący kod w metodzie Button1_Click poniższym kodem, aby obliczyć VisualWebPart1:Ten kod dodaje elementy z każdego wybranego kalendarza do nadrzędnego widoku kalendarza.
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Dim items As New SPCalendarItemCollection() Dim thisWeb As SPWeb = SPControl.GetContextWeb(Context) Dim item As ListItem For Each item In CheckBoxList1.Items If item.Selected = True Then Dim calendarList As SPList = thisWeb.Lists(item.Text) Dim dtStart As DateTime = DateTime.Now.AddDays(-7) Dim dtEnd As DateTime = dtStart.AddMonths(1).AddDays(7) Dim query As 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()) Dim listItem As SPListItem For Each listItem In calendarList.GetItems(query) Dim calItem As New SPCalendarItem() With calItem .ItemID = listItem("ID").ToString() .Title = listItem("Title").ToString() .CalendarType = Convert.ToInt32(SPCalendarType.Gregorian) .StartDate = CType(listItem("Start Time"), DateTime) .ItemID = listItem.ID.ToString() .WorkSpaceLink = [String].Format("/Lists/{0}/DispForm.aspx", calendarList.Title) .DisplayFormUrl = [String].Format("/Lists/{0}/DispForm.aspx", calendarList.Title) .EndDate = CType(listItem("End Time"), DateTime) .Description = listItem("Description").ToString() End With If Not (listItem("Location") Is Nothing) Then calItem.Location = listItem("Location").ToString() End If items.Add(calItem) Next listItem MonthlyCalendarView1.DataSource = items End If Next item End Sub
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; } } }
Testowanie części sieci
Kiedy uruchamiasz projekt, otwiera się witryna SharePoint.Część sieciowa jest automatycznie dodawana do galerii Web Part w SharePoint.Aby przetestować ten projekt, wykonasz następujące zadania:
Dodać wydarzenie do każdego z dwóch osobnych list kalendarza.
Dodawanie składnika web part do strony składników web part.
Określ listy do dołączenia w widoku kalendarza miesięcznego.
Aby dodać zdarzenia do list kalendarza na stronie
W programie Visual Studio wybierz klawisz F5.
Witryna programu SharePoint otwiera się i pasek szybkiego uruchomienia Microsoft SharePoint Foundation 2010 wyświetla się na stronie.
Na pasku Szybkie uruchamianie w obszarze Listy, wybierz łącze Kalendarz.
Zostanie wyświetlona strona Kalendarz.
Jeśli na pasku Szybkie uruchamianie nie pojawi się łącze Kalendarza, wybierz łącze Zawartość witryny.Jeśli strona zawartości strony nie pokazuje elementu Kalendarz, należy go utworzyć.
Na stronie kalendarza wybierz dzień, a następnie wybierz łącze Dodaj w wybranym dniu, aby dodać wydarzenie.
W polu Tytuł wprowadź zdarzenia kalendarza domyślnego, a następnie wybierz przycisk Zapisz.
Wybierz łącze Zawartość witryny , a następnie wybierz płytkę Dodaj aplikację.
Na stronie Utwórz wybierz typ Kalendarz, nadaj nazwę kalendarzowi, a następnie wybierz przycisk Utwórz.
Dodaj wydarzenia do nowego kalendarza, nazwę wydarzenia Wydarzenia niestandardowego kalendarza, a następnie wybierz przycisk Zapisz.
Aby dodać część sieci do witryny części sieci
Na stronie Zawartość witryny otwórz folder Strony witryny.
Na wstążce wybierz zakładkę Pliki , otwórz menu Nowy dokument, a następnie wybierz polecenie Strona składników Web Part.
Na stronie Nowa strona składników Web Part nazwij stronę SampleWebPartPage.aspx, a następnie wybierz przycisk Utwórz.
Strona części sieciowej jest wyświetlana.
W strefie górnej strony składników web part, wybierz zakładkę Wstaw, a następnie wybierz przycisk Składnik Web Part.
Wybierz folder Niestandardowy , wybierz opcję VisualWebPart1 składnik web part, a następnie wybierz przycisk Dodaj.
Część sieciowa jest wyświetlana na stronie.W składniku sieci wyświetlane są następujące formanty:
Widok kalendarza miesięcznego.
Aktualizacja przycisk.
A Kalendarz pole wyboru.
Pole wyboru Kalendarz niestandardowy.
Aby określić listy zawarte w miesięcznym widoku kalendarza
W składniku web part, określ kalendarze, które mają zostać uwzględnione w widoku kalendarza miesięcznego, a następnie wybierz przycisk Aktualizacja.
Zdarzenia ze wszystkich kalendarzy określonych przez użytkownika są wyświetlane w widoku kalendarza miesięcznego.
Zobacz też
Zadania
Porady: tworzenie SharePoint Web Part
Porady: tworzenie części sieciowej SharePoint za pomocą narzędzia Projektant
Wskazówki: tworzenie części sieciowej dla SharePoint