Condividi tramite


Procedura dettagliata: creazione di una pagina applicazione

Una pagina applicazione è un formato specifico di una pagina ASP.NET.Le pagine Applicazione è presente contenuto unito con una pagina master di SharePoint.Per ulteriori informazioni, vedere Creazione di pagine applicazione per SharePoint.

In questa procedura dettagliata viene illustrato come creare una pagina applicazione e quindi eseguire il debug tramite un sito di SharePoint locale.Questa pagina vengono indicati tutti gli elementi che ogni utente ha creato o modificato in tutti i siti della server farm.

In questa procedura dettagliata vengono illustrate le attività seguenti:

  • Creazione di un progetto SharePoint.

  • Aggiunta di una pagina applicazione al progetto SharePoint.

  • Aggiunta di controlli ASP.NET alla pagina applicazione.

  • Aggiunta di code-behind ai controlli ASP.NET.

  • Test della pagina applicazione.

[!NOTA]

Il computer potrebbe mostrare nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti.Questi elementi sono determinati dall'edizione di Visual Studio in uso e dalle impostazioni utilizzate.Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:

Creazione di un progetto SharePoint

Creare innanzitutto un Progetto SharePoint vuoto.In un secondo momento, si aggiungerà un elemento Pagina applicazione a questo progetto.

Per creare un progetto SharePoint

  1. Avviare Visual Studio.

  2. Aprire la finestra di dialogo Nuovo progetto, espandere il nodo Office/SharePoint sotto il linguaggio che si desidera utilizzare quindi selezionare il nodo Soluzioni SharePoint.

  3. Nel riquadro Modelli Visual Studio installati, scegliere il modello SharePoint 2010 - Progetto vuoto.Denominare il progetto MySharePointProject quindi scegliere il pulsante OK.

    Verrà visualizzata la Personalizzazione guidata SharePoint.Questa procedura guidata consente di selezionare il sito che verrà utilizzato per eseguire il debug del progetto e il livello di attendibilità della soluzione.

  4. Scegliere il pulsante di opzione Distribuisci come soluzione farm e quindi scegliere il pulsante Fine per accettare il sito di SharePoint locale predefinito.

Creazione di una pagina applicazione

Per creare una pagina applicazione aggiungere un elemento Pagina applicazione al progetto.

Per creare una pagina applicazione

  1. In Esplora soluzioni, selezionare il progetto MySharePointProject.

  2. Sulla barra dei menu, scegliere Progetto, Aggiungi nuovo elemento.

  3. Nella finestra di dialogo Aggiungi nuovo elemento, scegliere il modello Pagina applicazione (solo soluzione farm.

  4. Assegnare alla pagina il nome SearchItems quindi scegliere il pulsante Aggiungi.

    La finestra di progettazione di Visual Web Developer viene visualizzata la pagina applicazione nella visualizzazione Alimentazione dove è possibile esaminarne gli elementi HMTL.Nella finestra di progettazione è possibile visualizzare il markup per diversi controlli Content.Ogni controllo è associato a un controllo ContentPlaceHolder definito nella pagina master dell'applicazione predefinita.

Progettazione del layout della pagina applicazione

L'elemento Pagina applicazione consente di utilizzare una finestra di progettazione per aggiungere controlli ASP.NET alla pagina applicazione.Questa finestra di progettazione è la stessa utilizzata in Visual Web Developer.Aggiungere un'etichetta, un elenco dei pulsanti di opzione e una tabella alla visualizzazione Alimentazione la finestra di progettazione delle proprietà e quindi impostate come quando si progetta una pagina ASP.NET standard.

Per ulteriori informazioni sull'utilizzo della finestra di progettazione in Visual Web Developer, vedere Visual Studio 11 beta per il mapping del contenuto Web.

Per progettare il layout della pagina applicazione

  1. Sulla barra dei menu, scegliere Visualizza, Casella degli strumenti.

  2. Nel nodo standard Casella degli strumenti, eseguire una delle operazioni seguenti:

    • Aprire il menu di scelta rapida per l'elemento Etichetta, scegliere Copia (CTRL + C), aprire il menu di scelta rapida per la riga sotto il controllo del contenuto PlaceHolderMain nella finestra di progettazione e quindi scegliere Incolla.

    • Trascinare l'elemento Etichetta da Casella degli strumenti nel corpo del controllo del contenuto PlaceHolderMain.

  3. Ripetere il passaggio precedente per aggiungere un elemento DropDownList e un elemento Tabella al controllo del contenuto PlaceHolderMain.

  4. Nella finestra di progettazione modificare il valore dell'attributo Text del controllo Label in Mostra tutti gli elementi.

  5. Nella finestra di progettazione sostituire l'elemento <asp:DropDownList> con l'XML riportato di seguito.

    <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>
    

Gestione degli eventi dei controlli nella pagina

Per gestire i controlli in una pagina applicazione, procedere come per una qualsiasi pagina ASP.NET.In questa procedura verrà gestito l'evento SelectedIndexChanged dell'elenco a discesa.

Per gestire gli eventi dei controlli nella pagina

  1. Scegliere dal menu Visualizza, scegliere Codice.

    Il file di codice della pagina applicazione verrà aperto nell'editor di codice.

  2. Aggiungere il seguente metodo alla classe SearchItems.Questo codice gestisce l'evento SelectedIndexChanged di DropDownList chiamando un metodo che verrà creato più avanti in questa procedura dettagliata.

     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. Aggiungere le seguenti istruzioni all'inizio del file di codice della pagina applicazione.

    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. Aggiungere il seguente metodo alla classe SearchItems.Questo metodo scorre tutti i siti nella server farm e ricerca gli elementi creati o modificati dall'utente corrente.

    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. Aggiungere il seguente metodo alla classe SearchItems.Questo metodo visualizza gli elementi creati o modificati dall'utente corrente nella tabella.

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

Test della pagina dell'applicazione

Quando si esegue il progetto viene aperto il sito di SharePoint e viene visualizzata la pagina applicazione.

Per testare la pagina dell'applicazione

  1. In Esplora soluzioni, scegliere dal menu di scelta rapida per la pagina applicazione e quindi scegliere Imposta elemento di avvio.

  2. Scegliere il tasto F5.

    Verrà aperto il sito di SharePoint.

  3. Nella pagina applicazione, scegliere l'opzione Modificati dall'utente dall'utente.

    La pagina applicazione verrà aggiornata e visualizzare tutti gli elementi modificati in tutti i siti della server farm.

  4. Nella pagina applicazione, scegliere Creati dall'utente dall'elenco.

    La pagina applicazione verrà aggiornata e verranno visualizzati tutti gli elementi creati dall'utente in tutti i siti della server farm.

Passaggi successivi

Per ulteriori informazioni sulle pagine dell'applicazione di SharePoint, vedere Creazione di pagine applicazione per SharePoint.

Per ulteriori informazioni su come progettare il contenuto delle pagine di SharePoint tramite Visual Web Designer, consultare gli argomenti seguenti:

Vedere anche

Attività

Procedura: creare una pagina applicazione

Altre risorse

Tipo di pagina _layouts di applicazione