Procedura dettagliata: creazione di una pagina applicazione
Una pagina applicazione è un formato specifico di una pagina ASP.NET. Nelle 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 ed eseguire quindi il debug di tale pagina tramite un sito di SharePoint locale. Questa pagina applicazione consente all'utente corrente di visualizzare tutti gli elementi creati o modificati in tutti i siti della server farm.
In questa procedura dettagliata vengono illustrate le seguenti attività:
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. L'edizione di Visual Studio in uso e le impostazioni utilizzate determinano questi elementi. Per ulteriori informazioni, vedere Gestione delle impostazioni.
Prerequisiti
Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:
Edizioni supportate di Microsoft Windows e SharePoint. Per ulteriori informazioni, vedere Requisiti per lo sviluppo di soluzioni SharePoint.
Visual Studio 2010 Professional o un'edizione di Visual Studio Application Lifecycle Management (ALM).
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
Avviare Visual Studio 2010.
Aprire la finestra di dialogo Nuovo progetto, espandere il nodo SharePoint sotto il linguaggio che si desidera utilizzare, quindi fare clic su 2010.
Nel riquadro Modelli Visual Studio installati selezionare Progetto SharePoint vuoto. Denominare il progetto MySharePointProject, quindi scegliere 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.
Selezionare Distribuisci come soluzione farm, quindi fare clic su 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
In Esplora soluzioni selezionare il progetto MySharePointProject.
Scegliere Aggiungi nuovo elemento dal menu Progetto.
Nella finestra di dialogo Aggiungi nuovo elemento selezionare Pagina applicazione.
Assegnare alla pagina il nome SearchItems, quindi fare clic su Aggiungi.
Nella finestra di progettazione di Visual Web Developer verrà riprodotta la pagina applicazione nella visualizzazione Origine, 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. Trascinare un'etichetta, un elenco di pulsanti di opzione e una tabella nella visualizzazione Origine della finestra di progettazione e impostare le proprietà come per la progettazione di qualsiasi pagina ASP.NET standard.
Per ulteriori informazioni sull'utilizzo della finestra di progettazione in Visual Web Developer, vedere Mappa del contenuto per Visual Web Developer.
Per progettare il layout della pagina applicazione
Scegliere Casella degli strumenti dal menu Visualizza.
Nella Casella degli strumenti trascinare un controllo Label, un controllo DropDownList e un controllo Table dal gruppo Standard nel corpo del controllo contenuto PlaceHolderMain.
Nella finestra di progettazione modificare il valore dell'attributo Text del controllo Label in Mostra tutti gli elementi.
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
Scegliere Codice dal menu Visualizza.
Il file di codice della pagina applicazione verrà aperto nell'editor di codice.
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); }
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;
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); }
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 applicazione
In Esplora soluzioni fare clic con il pulsante destro del mouse sulla pagina applicazione, quindi scegliere Imposta come progetto di avvio.
Premere F5.
Verrà aperto il sito di SharePoint. Verrà visualizzata la pagina applicazione.
Nella pagina fare clic sull'opzione Modified by me.
La pagina applicazione verrà aggiornata e saranno visualizzati tutti gli elementi modificati dall'utente in tutti i siti della server farm.
Nella pagina fare clic sull'opzione Created by me.
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 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