Udostępnij za pośrednictwem


Przewodnik: tworzenie strony aplikacji programu SharePoint

Strona aplikacji to wyspecjalizowana forma strony ASP.NET. Strony aplikacji zawierają zawartość scaloną ze stroną wzorcową programu SharePoint. Aby uzyskać więcej informacji, zobacz Tworzenie stron aplikacji dla programu SharePoint.

W tym przewodniku pokazano, jak utworzyć stronę aplikacji, a następnie debugować ją przy użyciu lokalnej witryny programu SharePoint. Na tej stronie przedstawiono wszystkie elementy, które każdy użytkownik utworzył lub zmodyfikował we wszystkich lokacjach w farmie serwerów.

W instruktażu przedstawiono następujące zagadnienia:

  • Tworzenie projektu programu SharePoint.
  • Dodawanie strony aplikacji do projektu programu SharePoint.
  • Dodawanie kontrolek ASP.NET do strony aplikacji.
  • Dodawanie kodu za kontrolkami ASP.NET.
  • Testowanie strony aplikacji.

Uwaga

Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE programu Visual Studio.

Wymagania wstępne

  • Obsługiwane wersje systemów Windows i SharePoint.

Tworzenie projektu programu SharePoint

Najpierw utwórz pusty projekt programu SharePoint. Później dodasz element Strona aplikacji do tego projektu.

  1. Uruchom program Visual Studio.

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

  3. W okienku Zainstalowane szablony programu Visual Studio wybierz szablon SharePoint 2010 — pusty projekt . Nadaj projektowi nazwę MySharePointProject, a następnie wybierz przycisk OK .

    Zostanie wyświetlony Kreator dostosowywania programu SharePoint. Ten kreator umożliwia wybranie witryny, która będzie używana do debugowania projektu i poziomu zaufania rozwiązania.

  4. Wybierz przycisk Wdróż jako rozwiązanie farmy, a następnie wybierz przycisk Zakończ, aby zaakceptować domyślną lokalną witrynę programu SharePoint.

Tworzenie strony aplikacji

Aby utworzyć stronę aplikacji, dodaj element Strona aplikacji do projektu.

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

  2. Na pasku menu wybierz pozycję Projekt>Dodaj nowy element.

  3. W oknie dialogowym Dodawanie nowego elementu wybierz szablon Strona aplikacji (tylko rozwiązanie farmy).

  4. Nadaj stronie nazwę SearchItems, a następnie wybierz przycisk Dodaj .

    Projektant visual Web Developer wyświetla stronę aplikacji w widoku źródłowym , w którym można wyświetlić elementy HTML strony. Projektant wyświetla znaczniki dla kilku Content kontrolek. Każda kontrolka mapuje na kontrolkę zdefiniowaną ContentPlaceHolder na domyślnej stronie wzorcowej aplikacji.

Projektowanie układu strony aplikacji

Element Strona aplikacji umożliwia dodawanie kontrolek ASP.NET do strony aplikacji za pomocą projektanta. Ten projektant jest tym samym projektantem używanym w programie 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 samo jak podczas projektowania dowolnej standardowej strony ASP.NET.

  1. Na pasku menu wybierz pozycję Wyświetl>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 pozycję Kopiuj, otwórz menu skrótów dla wiersza w kontrolce zawartości Symbol zastępczyMain w projektancie, a następnie wybierz polecenie Wklej.

    • Przeciągnij element Etykieta z przybornika na treść kontrolki zawartości PlaceHolderMain.

  3. Powtórz poprzedni krok, aby dodać element DropDownList i element tabeli do kontrolki zawartości PlaceHolderMain .

  4. W projektancie zmień wartość Text atrybutu kontrolki etykiety na Pokaż wszystkie elementy.

  5. W projektancie zastąp <asp:DropDownList> element następującym kodem 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ń kontrolek na stronie

Obsługa kontrolek na stronie aplikacji tak samo jak każda strona ASP.NET. W tej procedurze obsłużysz SelectedIndexChanged zdarzenie listy rozwijanej.

  1. W menu Widok wybierz pozycję Kod.

    Plik kodu strony aplikacji zostanie otwarty w Edytorze kodu.

  2. Dodaj następującą metodę do SearchItems klasy . Ten kod obsługuje SelectedIndexChanged zdarzenie DropDownList przez wywołanie metody, którą utworzysz w dalszej części tego przewodnika.

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SPSecurity.RunWithElevatedPrivileges(GetItems);
       
    }
    
  3. Dodaj następujące instrukcje w górnej części pliku kodu strony aplikacji.

    using System.Web.UI.WebControls;
    using Microsoft.SharePoint.Administration;
    using System.Collections;
    
  4. Dodaj następującą metodę do SearchItems klasy . Ta metoda iteruje wszystkie witryny w farmie serwerów i wyszukuje elementy utworzone lub zmodyfikowane przez bieżącego użytkownika.

    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świetla elementy utworzone lub zmodyfikowane przez bieżącego użytkownika w tabeli.

    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.NavigateUrl = 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

Po uruchomieniu projektu zostanie otwarta witryna programu SharePoint i zostanie wyświetlona strona aplikacji.

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

  2. Wybierz klawisz F5.

    Zostanie otwarta witryna programu SharePoint.

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

    Strona aplikacji odświeża i wyświetla wszystkie elementy zmodyfikowane we wszystkich lokacjach w farmie serwerów.

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

    Strona aplikacji odświeża i wyświetla wszystkie elementy utworzone we wszystkich lokacjach w farmie serwerów.

Następne kroki

Aby uzyskać więcej informacji na temat stron aplikacji programu SharePoint, zobacz Tworzenie stron aplikacji dla programu SharePoint.

Więcej informacji na temat projektowania zawartości strony programu SharePoint można znaleźć w następujących tematach w witrynie Visual Web Projektant: