Sdílet prostřednictvím


Názorný postup: Vytvoření stránky aplikace

Stránku aplikace je speciální forma stránky technologie ASP.NET.Stránky aplikace obsahovat obsah, který je sloučen se stránkou předlohy služby SharePoint.Další informace naleznete v tématu Vytváření stránek v aplikaci SharePoint.

Tento návod ukazuje, jak vytvořit stránku aplikace a potom ho ladit 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 ve všech serverů v serverové farmě.

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

  • Vytvoření projektu služby SharePoint.

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

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

  • Přidání ovládacích prvků technologie ASP.NET s kódem.

  • 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 Nastavení aplikace Visual Studio.

Požadavky

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

Vytváření projektu služby SharePoint

Nejprve vytvořte Prázdný projekt SharePoint.Později přidáte Aplikace na stránce zboží do tohoto projektu.

Chcete-li vytvořit projekt služby SharePoint

  1. Spusťte nástroj Visual Studio.

  2. Otevřít Nový projekt dialogové okno pole, rozbalte položku Office/SharePoint uzlu jazyk, který chcete použít a pak zvolte Řešení SharePoint uzlu.

  3. V Visual Studio nainstalované šablony podokně zvolte SharePoint 2010 – prázdný projekt šablony.Název projektu MySharePointProject a potom zvolte OK tlačítko.

    Průvodce vlastním nastavením aplikace SharePoint se zobrazí.Tento průvodce vám umožní vybrat web, který budete používat k ladění projektu a úroveň důvěryhodnosti roztoku.

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

Vytvoření stránky aplikace

Chcete-li vytvořit stránku aplikace, přidejte Aplikace na stránce položky k projektu.

Chcete-li vytvořit stránku aplikace

  1. V Průzkumníku, zvolte MySharePointProject projektu.

  2. V řádku nabídek zvolte projektu, Přidat novou položku.

  3. V Přidat novou položku dialogové okno pole, zvolte stránku aplikace (pouze řešení farmy šablony.

  4. Zadejte název stránky SearchItems a pak zvolte Přidat tlačítko.

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

Položky stránky aplikace umožňuje používat návrháře pro přidání ovládacích prvků technologie ASP.NET stránku aplikace.Tento designer je stejný Návrhář použít v aplikaci Visual Web Developer.Přidat popisek, seznam přepínačů a tabulku a zdroje zobrazení návrháře a potom nastavte vlastnosti, stejně jako při návrhu libovolné standardní stránky technologie ASP.NET.

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

Chcete-li navrhnout rozložení stránky aplikace

  1. V řádku nabídek zvolte zobrazení, nástrojů.

  2. V uzlu standardní nástrojů, proveďte jeden z následujících kroků:

    • Otevřete místní nabídku pro Popisek zboží, zvolte kopie, otevřete místní nabídku pro řádek v seznamu PlaceHolderMain obsah ovládacího prvku v návrháři a pak zvolte Vložit.

    • Přetáhněte štítek bod z nástrojů do těla PlaceHolderMain ovládací prvek obsahu.

  3. Opakujte předchozí krok pro přidání DropDownList zboží a tabulky položku PlaceHolderMain obsah ovládacího prvku.

  4. V návrháři, změňte hodnotu Text atributu na ovládací prvek label, chcete-li zobrazit všechny položky.

  5. V návrháři, nahradit <asp:DropDownList> element s 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 jakoukoli stránku technologie ASP.NET.V tomto postupu bude zpracovávat SelectedIndexChanged události z rozevíracího seznamu.

Obslužných rutin událostí ovládacích prvků na stránce

  1. Na zobrazení nabídce zvolte kód.

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

  2. Přidejte následující metodu, chcete-li SearchItems třídy.Tento kód zpracovává SelectedIndexChanged události DropDownList voláním metody, 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. Přidejte následující příkazy na začátek souboru kódu stránky aplikace.

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

    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 následující metodu, chcete-li SearchItems třídy.Tento způsob zobrazení položek vytvořeny nebo upraveny 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 webu služby SharePoint otevře a zobrazí se stránka aplikace.

Testování stránky pro aplikace

  1. V Průzkumníku, otevřete místní nabídku pro stránky aplikace a pak zvolte nastavit jako spouštěcí položka.

  2. Zvolte klávesu F5.

    Otevření webu služby SharePoint.

  3. Na stránce aplikace zvolte Změněno mnou možnost.

    Aplikace na stránce aktualizuje a zobrazí všechny položky, které byly upraveny ve všech serverů v serverové farmě.

  4. Na stránce aplikace zvolte Vytvořeno mnou v seznamu.

    Aplikace na stránce aktualizuje a zobrazí všechny položky, které jste vytvořili ve všech serverů v serverové farmě.

Další kroky

Další informace o stránkách aplikace SharePoint, viz Vytváření stránek v aplikaci SharePoint.

Můžete další informace o navrhování obsahu stránky služby SharePoint pomocí vizuálního návrháře webu z těchto témat:

Viz také

Úkoly

Jak: Vytvořte stránku aplikace

Další zdroje

_Layouts aplikace typu stránky