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:
Edizioni supportate di Windows e SharePoint.Per ulteriori informazioni, vedere Requisiti per lo sviluppo di soluzioni SharePoint.
Visual Studio 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.
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.
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.
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
In Esplora soluzioni, selezionare il progetto MySharePointProject.
Sulla barra dei menu, scegliere Progetto, Aggiungi nuovo elemento.
Nella finestra di dialogo Aggiungi nuovo elemento, scegliere il modello Pagina applicazione (solo soluzione farm.
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
Sulla barra dei menu, scegliere Visualizza, Casella degli strumenti.
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.
Ripetere il passaggio precedente per aggiungere un elemento DropDownList e un elemento Tabella al controllo del 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 dal menu Visualizza, scegliere Codice.
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 dell'applicazione
In Esplora soluzioni, scegliere dal menu di scelta rapida per la pagina applicazione e quindi scegliere Imposta elemento di avvio.
Scegliere il tasto F5.
Verrà aperto il sito di SharePoint.
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.
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