Udostępnij za pośrednictwem


Wskazówki: tworzenie strony aplikacji SharePoint

Na stronie aplikacji jest formą specjalistyczne strony ASP.NET.Strony aplikacji zawierają treści, która jest połączone ze stroną wzorcową programu SharePoint.Aby uzyskać więcej informacji, zobacz Tworzenie stron aplikacji dla SharePoint.

Ten poradnik pokazuje jak utworzyć witrynę aplikacji i następnie ją debugować używając lokalnej witryny SharePoint.Ta strona pokazuje wszystkie elementy utworzone lub zmodyfikowane przez wszystkich użytkowników na wszystkich witrynach farmy serwerów.

W przewodniku przedstawiono następujące zagadnienia:

  • Tworzenie projektu programu SharePoint.

  • Dodawanie strony aplikacji do projektu programu SharePoint.

  • Dodawanie formantów ASP.NET na stronie aplikacji.

  • Dodając kodu związanego z formantami ASP.NET.

  • Testowanie strony aplikacji.

[!UWAGA]

Komputer może polazać inne nazwy lub lokalizacje dla niektórych elementów interfejsu użytkownika Visual Studio w dalszych instrukcjach.Te elementy są determinowane przez numer edycji Twojego programu Visual Studio oraz Twoje ustawienia.Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Wymagania wstępne

Następujące składniki są wymagane do przeprowadzenia tego instruktażu:

Tworzenie projektu programu SharePoint

Najpierw utwórz pusty projekt programu SharePoint.Później, należy dodać element Strona aplikacji do tego projektu.

Aby utworzyć projekt programu SharePoint

  1. Rozpocznij Visual Studio.

  2. Otwórz okno dialogowe Nowy projekt, rozwiń węzeł Office/SharePoint poniżej języka, którego chcesz użyć, a następnie wybierz węzeł Rozwiązania SharePoint.

  3. W okienku Zainstalowane szablony programu Visual Studio wybierz szablon SharePoint 2010 — pusty projekt.Nazwij projekt MyShareProject a następnie kliknij przycisk OK.

    Wyświetla sięKreator ustawień niestandardowych SharePoint .Ten kreator umożliwia wybór strony, której będziesz używał do debugowania projektu i poziomu zaufania rozwiązania.

  4. Wybierz przycisk wyboru Wdrażanie jako rozwiązanie gospodarstwa i następnie wybierz przycisk Zakończ , aby zaakceptować domyślną lokalną witrynynę programu SharePoint.

Tworzenie strony aplikacji

Aby utworzyć witrynę aplikacji, dodaj element Witryna aplikacji do projektu.

Aby utworzyć stronę aplikacji

  1. W oknie Eksplorator rozwiązań wybierz projekt MySharePointProject.

  2. Na pasku menu, kliknij Projekt, Dodaj nowy element.

  3. W oknie dialogowym Dodaj nowy element wybierz szablon Strona aplikacji (tylko rozwiązanie farmy).

  4. Nazwij stronę SearchItems, a następnie wybierz przycisk Dodaj.

    Projektant Visual Web Developer wyświetla witrynę aplikacji w widoku Źródła, gdzie można zobaczyć elementy HTML strony.Projektant wyświetla znaczniki dla kilku formantów Content.Każdy formant mapy do ContentPlaceHolder kontroli, która jest zdefiniowana w domyślnej stronie wzorcowej aplikacji.

Projektowanie układu strony aplikacji

Element Strona aplikacji umożliwia użycie projektanta do dodawania formantów ASP.NET na stronie aplikacji.Projektant jest ten sam, jak ten użyty w Visual Web Developer.Dodaj etykietę, listę przycisków radiowych i tabelę, do widoku źródło projektanta, a następnie ustaw właściwości, tak jak podczas projektowania dowolnej standardowej strony ASP.NET.

Aby uzyskać więcej informacji dotyczących używania projektanta w Visual Web Developer, zobacz W Visual Studio 11 wersji Beta dla mapy zawartości sieci Web.

Aby zaprojektować układ strony aplikacji

  1. Na pasku menu wybierz Widok, Przybornik.

  2. W węźle Standardowy Przybornika, wykonaj jedną z następujących czynności:

    • Otwórz menu skrótów dla elementu Etykieta, wybierz Kopiuj, otwórz menu skrótów dla linii poniżej formantu zawartości PlaceHolderMain w projektancie, a następnie wybierz Wklej.

    • Przeciągnij element Etykiety z Przybornika do treści PlaceHolderMain zawartości formantu.

  3. Powtórz poprzedni krok, aby dodać element Lista rozwijana oraz element Tabela do formantu zawartości PlaceHolderMain.

  4. W projektancie, zmień wartość atrybutu Text formantu etykiety, aby pokazać wszystkie elementy.

  5. W oknie Projektant zastępuje <asp:DropDownList> element z następujących XML.

    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"
     OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
        <asp:ListItem Text="Created by me" Value="Author"></asp:ListItem>
        <asp:ListItem Text="Modified by me" Value="Editor"></asp:ListItem>
    </asp:DropDownList>
    

Obsługa zdarzeń formantów na stronie

Obsługuje formanty na stronie aplikacji, tak jak na każdej stronie ASP.NET.W tej procedurze, będziesz obsługiwać zdarzenie SelectedIndexChanged z listy rozwijanej.

Do obsługi zdarzeń formantów na stronie

  1. W menu Widok, wybierz Kod.

    Plik kodu strony aplikacji zostanie otwarty w edytorze kodu.

  2. Dodaj następującą metodę do SearchItems klasy.Ten kod obsługuje wydarzenie SelectedIndexChanged z DropDownList poprzez wywołanie metody, którą utworzysz później w tym samouczku.

    Protected Sub DropDownList1_SelectedIndexChanged _
    (ByVal sender As Object, ByVal e As EventArgs) _
    Handles DropDownList1.SelectedIndexChanged
         SPSecurity.RunWithElevatedPrivileges(AddressOf GetItems)
     End Sub
    
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SPSecurity.RunWithElevatedPrivileges(GetItems);
    
    }
    
  3. Dodaj następujące instrukcje na górze pliku kodu strony aplikacji.

    Imports System.Web.UI.WebControls
    Imports Microsoft.SharePoint.Administration
    Imports System.Collections
    
    using System.Web.UI.WebControls;
    using Microsoft.SharePoint.Administration;
    using System.Collections;
    
  4. Dodaj następującą metodę do SearchItems klasy.Ta metoda iteruje na wszystkich witrynach na farmie serwerów i wyszukuje elementów utworzonych lub zmodyfikowanych przez bieżącego użytkownika.

    Private Sub GetItems()
        Dim CurrentUser As New SPFieldUserValue _
            (Me.Web, Me.Web.CurrentUser.ID, Me.Web.CurrentUser.Name)
    
        Dim ResultsList As New ArrayList()
    
        Dim ThisFarm As SPFarm = SPFarm.Local
        Dim Service As SPWebService = _
            ThisFarm.Services.GetValue(Of SPWebService)("")
    
        Dim WebApp As SPWebApplication
        For Each WebApp In Service.WebApplications
            Dim SiteCollection As SPSite
            For Each SiteCollection In WebApp.Sites
                Dim Web As SPWeb
                For Each Web In SiteCollection.AllWebs
                    Dim Lists As SPListCollection = Web.Lists
                    Dim List As SPList
                    For Each List In Lists
                        Dim Item As SPListItem
                        Try 
                            For Each Item In List.Items
                                If Item(DropDownList1.SelectedValue).ToString() = _
                                    CurrentUser.ToString() Then
                                    ResultsList.Add(Item)
                                End If 
                            Next Item
                        Catch exception As Exception
                            'Error in list. Move on to the next list. 
                        End Try 
                    Next List
                Next Web
            Next SiteCollection
        Next WebApp
        CreateResultsTable(ResultsList)
    End Sub
    
    private void GetItems()
    {
         SPFieldUserValue currentUser = new SPFieldUserValue
         (this.Web, this.Web.CurrentUser.ID, this.Web.CurrentUser.Name);
    
        ArrayList resultsList = new ArrayList();
    
        SPFarm thisFarm = SPFarm.Local;
        SPWebService service = thisFarm.Services.GetValue<SPWebService>("");
    
        foreach (SPWebApplication webApp in service.WebApplications)
        {
            foreach (SPSite siteCollection in webApp.Sites)
            {
                foreach (SPWeb web in siteCollection.AllWebs)
                {
                    SPListCollection lists = web.Lists;
                    foreach (SPList list in lists)
                    {
                        try
                        {
                            foreach (SPListItem item in list.Items)
                            {
                                if (item[DropDownList1.SelectedValue].ToString() ==
                                    currentUser.ToString())
                                {
                                    resultsList.Add(item);
                                }
                            }
                        }
                        catch (Exception)
                        {
                            // An error with the list. Move onto the next list.
                        }
                    }
                }
            }
        }
        CreateResultsTable(resultsList);
    
    }
    
  5. Dodaj następującą metodę do SearchItems klasy.Ta metoda wy‪‪wyświetla elementy utworzone lub zmodyfikowane przez bieżącego użytkownika w tabeli.

    Private Sub CreateResultsTable(ByVal ResultsList As ArrayList)
        Dim CurrentList As String = "" 
        Dim CurrentSite As String = ""
        Table1.Rows.Clear()
    
        Dim Item As SPListItem
        For Each Item In ResultsList
            If Item.ParentList.ParentWeb.Title <> CurrentSite Then
                CurrentSite = Item.ParentList.ParentWeb.Title
    
                Dim NewSiteCell As New TableCell()
                NewSiteCell.Text = CurrentSite
    
                Dim NewSiteRow As New TableRow()
                With NewSiteRow
                    .Cells.Add(NewSiteCell)
                    .Font.Bold = True
                    .Font.Size = FontUnit.Larger
                    .Font.Underline = True 
                End With
                Table1.Rows.Add(NewSiteRow)
    
            End If 
    
            If Item.ParentList.Title <> CurrentList Then
                CurrentList = Item.ParentList.Title
                Dim NewListCell As New TableCell()
                NewListCell.Text = CurrentList
    
                Dim NewListRow As New TableRow()
                With NewListRow
                    .Cells.Add(NewListCell)
                    .Font.Bold = True 
                End With
                Table1.Rows.Add(NewListRow)
    
                Dim ItemHeading As New TableCell()
                With ItemHeading
                    .Text = "Item"
                    .Font.Italic = True 
                End With 
    
                Dim CreatedHeading As New TableCell()
                With CreatedHeading
                    .Text = "Created"
                    .Font.Italic = True 
                End With 
    
    
                Dim ModifiedHeading As New TableCell()
                With ModifiedHeading
                    .Text = "Last Modified"
                    .Font.Italic = True 
                End With 
    
                Dim HeadingRow As New TableRow()
                HeadingRow.Cells.Add(ItemHeading)
                HeadingRow.Cells.Add(CreatedHeading)
                HeadingRow.Cells.Add(ModifiedHeading)
    
                Table1.Rows.Add(HeadingRow)
            End If 
    
            Dim ItemName As New TableCell()
            Dim ItemLink As New HyperLink()
            Try
                ItemLink.href = Item.ParentList.ParentWeb.Url & _
                    "/" & Item.ParentList.Forms(PAGETYPE.PAGE_DISPLAYFORM).Url & _
                    "?ID=" & Item.ID
            Catch exception As Exception
                ' Some items might not have a form page. Ignore the exception. 
            End Try
            ItemLink.Text = Item.DisplayName
            ItemName.Controls.Add(ItemLink)
    
            Dim Created As New TableCell()
            Created.Text = Item("Created").ToString()
    
            Dim Modified As New TableCell()
            Modified.Text = Item("Modified").ToString()
    
            Dim DataRow As New TableRow()
            DataRow.Cells.Add(ItemName)
            DataRow.Cells.Add(Created)
            DataRow.Cells.Add(Modified)
    
            Table1.Rows.Add(DataRow)
        Next Item
    End Sub
    
    private void CreateResultsTable(ArrayList resultsList)
    {
        string currentList = "";
        string currentSite = "";
        Table1.Rows.Clear();
    
        foreach (SPListItem item in resultsList)
        {
            if (item.ParentList.ParentWeb.Title != currentSite)
            {
                currentSite = item.ParentList.ParentWeb.Title;
    
                TableCell newSiteCell = new TableCell();
                newSiteCell.Text = currentSite;
    
                TableRow newSiteRow = new TableRow();
                newSiteRow.Cells.Add(newSiteCell);
                newSiteRow.Font.Bold = true;
                newSiteRow.Font.Size = FontUnit.Larger;
                newSiteRow.Font.Underline = true;
    
                Table1.Rows.Add(newSiteRow);
            }
            if (item.ParentList.Title != currentList)
            {
                currentList = item.ParentList.Title;
                TableCell newListCell = new TableCell();
                newListCell.Text = currentList;
    
                TableRow newListRow = new TableRow();
                newListRow.Cells.Add(newListCell);
                newListRow.Font.Bold = true;
    
                Table1.Rows.Add(newListRow);
    
                TableCell itemHeading = new TableCell();
                itemHeading.Text = "Item";
                itemHeading.Font.Italic = true;
    
                TableCell createdHeading = new TableCell();
                createdHeading.Text = "Created";
                createdHeading.Font.Italic = true;
    
                TableCell modifiedHeading = new TableCell();
                modifiedHeading.Text = "Last Modified";
                modifiedHeading.Font.Italic = true;
    
                TableRow headingRow = new TableRow();
                headingRow.Cells.Add(itemHeading);
                headingRow.Cells.Add(createdHeading);
                headingRow.Cells.Add(modifiedHeading);
    
                Table1.Rows.Add(headingRow);
            }
    
            TableCell itemName = new TableCell();
            HyperLink itemLink = new HyperLink();
            try
            {
                itemLink.href = item.ParentList.ParentWeb.Url + "/" +
                    item.ParentList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url +
                    "?ID=" + item.ID;
            }
            catch (Exception)
            {
                // Some items might not have a form page. Ignore the exception.
            }
            itemLink.Text = item.DisplayName;
            itemName.Controls.Add(itemLink);
    
            TableCell created = new TableCell();
            created.Text = item["Created"].ToString();
    
            TableCell modified = new TableCell();
            modified.Text = item["Modified"].ToString();
    
            TableRow dataRow = new TableRow();
            dataRow.Cells.Add(itemName);
            dataRow.Cells.Add(created);
            dataRow.Cells.Add(modified);
    
            Table1.Rows.Add(dataRow);
        }
    }
    

Testowanie strony aplikacji

Kiedy uruchamiasz projekt, otwiera się witryna SharePoint i wyświetla się strona aplikacji.

Aby przetestować stronę aplikacji

  1. W Eksploratorze rozwiązań otwórz menu skrótów dla strony aplikacji, a następnie wybierz polecenie Ustaw jako element startowy.

  2. Wybierz klawisz F5.

    Witryna SharePoint otwiera się.

  3. Na stronie aplikacji, wybierz na opcję Zmodyfikowane przeze mnie.

    Strona aplikacji odświeża i wyświetla wszystkie elementy, które zostały zmodyfikowane we wszystkich witrynach w farmie serwerów.

  4. Na stronie aplikacji, wybierz na liście Utworzone przeze mnie.

    Strona aplikacji odświeża i wyświetla wszystkie elementy, które zostały utworzone we wszystkich witrynach w farmie serwerów.

Następne kroki

Aby uzyskać więcej informacji dotyczących stron aplikacji programu SharePoint, zobacz Tworzenie stron aplikacji dla SharePoint.

Możesz dowiedzieć się więcej o projektowaniu zawartości strony SharePoint z wykorzystaniem Visual Web Designer w tych tematach:

Zobacz też

Zadania

Porady: tworzenie strony aplikacji

Inne zasoby

Typ strony układu aplikacji