Sdílet prostřednictvím


Návod: Vytvoření stránky aplikace služby SharePoint

Stránka aplikace je specializovaná forma stránky technologie ASP.NET.Stránky aplikace obsahují obsah, který je sloučen s hlavní stránkou služby SharePoint.Další informace naleznete v tématu Vytváření stránek aplikací pro službu SharePoint.

Tento návod ukazuje, jak vytvořit stránku aplikace a ladění pomocí místního webu služby SharePoint.Tato stránka zobrazuje všechny položky, které každý uživatel vytvořil nebo změnil na všech serverech ve farmě.

Tento návod ilustruje následující úkoly:

  • Vytvořte projekt SharePoint.

  • Přidání stránky aplikace do projektu služby SharePoint.

  • Přidání ovládacích prvků ASP.NET na stránku aplikace.

  • Přidávání kódu za ovládacími prvky technologie ASP.NET.

  • Testování stránky aplikace.

[!POZNÁMKA]

Váš počítač může zobrazit jiné názvy nebo umístění pro některé prvky uživatelského rozhraní sady Visual Studio v následujících pokynech.Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením.Další informace naleznete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Požadavky

Chcete-li dokončit tento návod, potřebujete následující komponenty:

Vytvoření projektu SharePoint

Nejprve vytvořte Prázdný projekt SharePoint.Později přidáte položku Stránka aplikace do tohoto projektu.

Vytvoření projektu SharePoint

  1. Spusťte Visual Studio.

  2. Otevřete dialogové okno Nový projekt, rozbalte uzel Office/SharePoint pro jazyk, který chcete použít a vyberte uzel Řešení SharePoint.

  3. V podokně Nainstalované šablony Visual Studio vyberte šablonu SharePoint 2010 – prázdný projekt.Pojmenujte projekt MySharePointProject a stiskněte tlačítko OK.

    Zobrazí se Průvodce přizpůsobením SharePoint.Tento průvodce vám umožní vybrat web, který budete používat k ladění projektu a úroveň důvěryhodnosti řešení.

  4. Zvolte možnost Nasadit jako řešení farmy a potom zvolte tlačítko Dokončit a přijměte tak výchozí místní web služby SharePoint.

Vytvoření stránky aplikace

Chcete-li vytvořit stránku aplikace, přidejte položku Stránka aplikace k projektu.

Vytvoření stránky aplikace

  1. V Průzkumníku řešení zvolte projektu MySharePointProject.

  2. V panelu nabídky vyberte možnosti Projekt, Přidat novou položku.

  3. V dialogovém okně Přidat novou položku zvolte šablonu Stránka aplikace (pouze řešení farmy).

  4. Pojmenujte stránku SearchItems a stiskněte tlačítko Přidat.

    Návrhář Visual Web Developer zobrazí stránku aplikace v zobrazení zdroje, kde můžete vidět prvky jazyka HTML na stránce.Návrhář zobrazí značky pro několik ovládacích prvků Content.Každý ovládací prvek mapuje na ovládací prvek ContentPlaceHolder, který je definován na výchozí stránce předlohy aplikace.

Návrh rozložení stránky aplikace

Položka Stránka aplikace umožňuje na stránce aplikace pomocí návrháře přidat ovládací prvky ASP.NET.Tento návrhář je stejný jako ten, který byl použit v aplikaci Visual Web Developer.Přidejte popisek, seznam přepínačů a tabulku do zobrazení Zdroj návrháře a potom nastavte vlastnosti stejně, jako při návrhu jakékoli standardní stránky technologie ASP.NET.

Další informace o použití návrháře v aplikaci Visual Web Developer naleznete v tématu Visual Studio 11 Beta obsahu mapy webu.

Návrh rozložení stránky aplikace

  1. Na panelu nabídek zvolte možnost Zobrazení > Souprava nástrojů.

  2. V uzlu Standardní na Panelu nástrojů proveďte jeden z následujících kroků:

    • Otevřete místní nabídku položky Popisek, klikněte na tlačítko Kopírovat, v návrháři otevřete místní nabídku pro řádek u ovládacího prvku PlaceHolderMain a klikněte na tlačítko Vložit.

    • Přetáhněte položku Popisek ze Sady nástrojů do těla ovládacího prvku obsahu PlaceHolderMain.

  3. Opakujte předchozí krok a přidejte tak položky DropDownList a Tabulka do ovládacího prvku obsahu PlaceHolderMain.

  4. V návrháři změňte hodnotu atributu Text ovládacího prvku popisku na Zobrazit všechny položky.

  5. V návrháři nahraďte prvek <asp:DropDownList> následujícím 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>
    

Zpracování událostí ovládacích prvků na stránce

Zpracování ovládacích prvků na stránce aplikace, stejně jako u jakékoli stránky technologie ASP.NET.V tomto postupu zpracujete událost SelectedIndexChanged z rozevíracího seznamu.

Zpracování událostí ovládacích prvků na stránce

  1. V nabídce Zobrazit zvolte Kód.

    Soubor kódu stránky aplikace se otevře v editoru kódu.

  2. Přidejte do třídy SearchItems následující metodu.Tento kód zpracovává událost SelectedIndexChanged voláním metody DropDownList, kterou vytvoříte později v tomto návodu.

    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. Na začátek souboru kódu stránky aplikace přidejte následující příkazy.

    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. Přidejte do třídy SearchItems následující metodu.Tato metoda projde všechny servery v serverové farmě a vyhledá položky vytvořené nebo změněné aktuálním uživatelem.

    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. Přidejte do třídy SearchItems následující metodu.Tato metoda zobrazí položky vytvořené nebo změněné aktuálním uživatelem v tabulce.

    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);
        }
    }
    

Testování stránky aplikace

Při spuštění projektu se otevře web SharePoint a zobrazí se stránka aplikace.

Otestování stránky aplikace

  1. Průzkumníku řešení otevřete místní nabídku stránky aplikace a vyberte položku Nastavit jako položku po spuštění.

  2. Zvolte klávesu F5.

    Otevře se web služby SharePoint.

  3. Na stránce aplikace vyberte možnost Mnou upravené.

    Stránka aplikace se aktualizuje a zobrazí všechny položky, které jste upravili ve všech serverech ve farmě.

  4. Na stránce aplikace vyberte ze seznamu možnost Mnou vytvořené.

    Stránka aplikace se aktualizuje a zobrazí všechny položky, které jste vytvořili ve všech serverech ve farmě.

Další kroky

Další informace o použití stránek služby SharePoint naleznete v tématu Vytváření stránek aplikací pro službu SharePoint.

Můžete získat další informace o navrhování obsahu stránky služby SharePoint pomocí aplikace Visual Web Designer z těchto témat:

Viz také

Úkoly

Postupy: Vytvoření stránky aplikace

Další zdroje

Typ stránky _layouts aplikace