Condividi tramite


Procedura dettagliata: Creare una pagina dell'applicazione SharePoint

Una pagina dell'applicazione è una forma specializzata di una pagina ASP.NET. Le pagine dell'applicazione contengono contenuto unito a una pagina master di SharePoint. Per altre informazioni, vedere Creare pagine dell'applicazione per SharePoint.

Questa procedura dettagliata illustra come creare una pagina dell'applicazione e quindi eseguirne il debug usando un sito di SharePoint locale. Questa pagina mostra tutti gli elementi creati o modificati da ogni utente in tutti i siti della server farm.

In questa procedura dettagliata sono illustrati i task seguenti:

  • Creazione di un progetto SharePoint.
  • Aggiunta di una pagina dell'applicazione al progetto SharePoint.
  • Aggiunta di controlli ASP.NET alla pagina dell'applicazione.
  • Aggiunta di codice dietro i controlli ASP.NET.
  • Test della pagina dell'applicazione.

Nota

I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzare l'IDE di Visual Studio.

Prerequisiti

  • Edizioni supportate di Windows e SharePoint.

Creare un progetto di SharePoint

Creare prima di tutto un progetto SharePoint vuoto. Successivamente, si aggiungerà un elemento pagina applicazione a questo progetto.

  1. Avviare Visual Studio.

  2. Aprire la finestra di dialogo Nuovo progetto , espandere il nodo Office/SharePoint sotto la lingua che si desidera usare e quindi scegliere il nodo Soluzioni SharePoint.

  3. Nel riquadro Modelli installati di Visual Studio scegliere il modello Di progetto vuoto di SharePoint 2010. Assegnare al progetto il nome MySharePointProject e quindi scegliere il pulsante OK .

    Verrà visualizzata la Personalizzazione guidata SharePoint. Questa procedura guidata consente di selezionare il sito che verrà usato 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.

Creare una pagina dell'applicazione

Per creare una pagina dell'applicazione, aggiungere un elemento pagina applicazione al progetto.

  1. In Esplora soluzioni scegliere il progetto MySharePointProject.

  2. Nella barra dei menu scegliere Progetto>Aggiungi nuovo elemento.

  3. Nella finestra di dialogo Aggiungi nuovo elemento scegliere la pagina applicazione (modello Solo soluzione farm).

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

    La finestra di progettazione Visual Web Developer visualizza la pagina dell'applicazione nella visualizzazione Origine in cui è possibile visualizzare gli elementi HTML della pagina. La finestra di progettazione visualizza il markup per diversi Content controlli. Ogni controllo esegue il mapping a un ContentPlaceHolder controllo definito nella pagina master dell'applicazione predefinita.

Progettare il layout della pagina dell'applicazione

L'elemento Pagina applicazione consente di usare una finestra di progettazione per aggiungere ASP.NET controlli alla pagina dell'applicazione. Questa finestra di progettazione è la stessa finestra di progettazione usata in Visual Web Developer. Aggiungere un'etichetta, un elenco di pulsanti di opzione e una tabella alla visualizzazione Origine della finestra di progettazione, quindi impostare le proprietà come si farebbe quando si progetta una pagina di ASP.NET standard.

  1. Scegliere Visualizza>Casella degli strumenti sulla barra dei menu.

  2. Nel nodo Standard della casella degli strumenti eseguire uno dei passaggi seguenti:

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

    • Trascinare l'elemento Label dalla casella degli strumenti nel corpo del controllo contenuto PlaceHolderMain.

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

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

  5. Nella finestra di progettazione sostituire l'elemento <asp:DropDownList> con il codice XML seguente.

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

Gestire gli eventi dei controlli nella pagina

Gestire i controlli in una pagina dell'applicazione esattamente come qualsiasi pagina ASP.NET. In questa procedura si gestirà l'evento SelectedIndexChanged dell'elenco a discesa.

  1. Scegliere Codice dal menu Visualizza.

    Il file di codice della pagina dell'applicazione viene 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 void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SPSecurity.RunWithElevatedPrivileges(GetItems);
       
    }
    
  3. Aggiungere le istruzioni seguenti all'inizio del file di codice della pagina dell'applicazione.

    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 della server farm e cerca gli elementi creati o modificati dall'utente corrente.

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

Testare la pagina dell'applicazione

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

  1. In Esplora soluzioni aprire il menu di scelta rapida per la pagina dell'applicazione e quindi scegliere Imposta come elemento di avvio.

  2. Premere F5.

    Verrà aperto il sito di SharePoint.

  3. Nella pagina dell'applicazione scegliere l'opzione Modificato da me .

    La pagina dell'applicazione viene aggiornata e visualizza tutti gli elementi modificati in tutti i siti della server farm.

  4. Nella pagina dell'applicazione scegliere Creato da me nell'elenco.

    La pagina dell'applicazione viene aggiornata e visualizza tutti gli elementi creati in tutti i siti della server farm.

Passaggi successivi

Per altre informazioni sulle pagine dell'applicazione SharePoint, vedere Creare pagine dell'applicazione per SharePoint.

Per altre informazioni su come progettare il contenuto della pagina di SharePoint, vedere Visual Web Designer da questi argomenti: