Procédure pas à pas : création d'une page d'application
Une page d'application désigne une forme spécifique de page ASP.NET. Les pages d'application comportent du contenu fusionné avec une page maître SharePoint. Pour plus d'informations, consultez Création de pages d'application pour SharePoint.
Cette procédure pas à pas vous indique comment créer une page d'application et la déboguer à l'aide d'un site SharePoint local. Cette page d'application permet à l'utilisateur actuel de consulter tous les éléments qu'ils ont créés ou modifiés dans l'ensemble des sites de la batterie de serveurs.
Cette procédure pas à pas décrit les tâches suivantes :
Création d'un projet SharePoint
Ajout d'une page d'application au projet SharePoint
Ajout de contrôles ASP.NET à la page d'application
Ajout de code-behind aux contrôles ASP.NET
Test de la page d'application
Notes
Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. Ces éléments dépendent de l'édition de Visual Studio dont vous disposez et des paramètres que vous utilisez. Pour plus d'informations, consultez Utilisation des paramètres.
Composants requis
Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :
Éditions de Microsoft Windows et SharePoint prises en charge. Pour plus d'informations, consultez Configuration requise pour développer des solutions SharePoint.
Visual Studio 2010 Professional ou une édition de Visual Studio Application Lifecycle Management (ALM).
Création d'un projet SharePoint
Commencez par créer un Projet SharePoint vide. Vous ajouterez ensuite un élément Page Application à ce projet.
Pour créer un projet SharePoint
Démarrez Visual Studio 2010.
Ouvrez la boîte de dialogue Nouveau projet, développez le nœud SharePoint sous le langage que vous souhaitez utiliser, puis cliquez sur 2010.
Dans le volet Modèles Visual Studio installés, sélectionnez Projet SharePoint vide. Nommez le projet MySharePointProject, puis cliquez sur OK.
L'Assistant Personnalisation de SharePoint s'affiche. Cet Assistant vous permet de sélectionner le site à utiliser pour déboguer le projet et le niveau de confiance de la solution.
Sélectionnez Déployer en tant que solution de batterie, puis cliquez sur Terminer pour accepter le site SharePoint local par défaut.
Création d'une page d'application
Pour créer une page d'application, ajoutez un élément Page Application au projet.
Pour créer une page d'application
Dans l'Explorateur de solutions, sélectionnez le projet MySharePointProject.
Dans le menu Projet, cliquez sur Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Page Application.
Nommez la page SearchItems, puis cliquez sur Ajouter.
Le concepteur Visual Web Developer affiche la page d'application en mode Source ; vous pouvez ainsi consulter les éléments HTML de la page. Le concepteur affiche le balisage de plusieurs contrôles Content. Chaque contrôle est mappé à un contrôle ContentPlaceHolder qui est défini dans la page d'application maître par défaut.
Conception de la disposition de la page d'application
L'élément Page Application vous permet d'utiliser un concepteur pour ajouter des contrôles ASP.NET à la page d'application. Ce concepteur est le même que celui utilisé dans Visual Web Developer. Faites glisser une étiquette, une liste Case d'option et une table sur le concepteur en mode Source et définissez les propriétés comme si vous conceviez une page ASP.NET standard.
Pour plus d'informations sur l'utilisation du concepteur dans Visual Web Developer, consultez Organigramme des informations relatives à Visual Web Developer.
Pour concevoir la disposition de la page d'application
Dans le menu Affichage, cliquez sur Boîte à outils.
Dans la Boîte à outils, à partir du groupe Standard, faites glisser un Label, un DropDownList et un Table sur le corps du contrôle de contenu PlaceHolderMain.
Dans le concepteur, affectez la valeur Afficher tous les éléments à l'attribut Text du contrôle d'étiquette.
Dans le concepteur, remplacez l'élément <asp:DropDownList> par le code XML suivant.
<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>
Gestion des événements de contrôles dans la page
Vous pouvez gérer les contrôles dans une page d'application de la même manière que vous le feriez dans une page ASP.NET. Dans cette procédure, vous allez générer l'événement SelectedIndexChanged dans la liste déroulante.
Pour gérer les événements de contrôles dans la page
Dans le menu Affichage, cliquez sur Code.
Le fichier de code de la page d'application s'ouvre dans l'éditeur de code.
Ajoutez la méthode suivante à la classe SearchItems. Ce code gère l'événement SelectedIndexChanged du DropDownList en appelant une méthode que vous créerez plus loin dans cette procédure.
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); }
Ajoutez les instructions suivantes au début du fichier de code de la page d'application.
Imports System.Web.UI.WebControls Imports Microsoft.SharePoint.Administration Imports System.Collections
using System.Web.UI.WebControls; using Microsoft.SharePoint.Administration; using System.Collections;
Ajoutez la méthode suivante à la classe SearchItems. Cette méthode itère au sein de l'ensemble des sites de la batterie de serveurs et recherche les éléments créés ou modifiés par l'utilisateur actuel.
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); }
Ajoutez la méthode suivante à la classe SearchItems. Cette méthode affiche les éléments créés ou modifiés par l'utilisateur actuel dans la table.
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 de la page d'application
Lorsque vous exécutez le projet, le site SharePoint s'ouvre et la page d'application s'affiche.
Pour tester la page d'application
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur la page d'application, puis cliquez sur Définir comme élément de démarrage.
Appuyez sur F5.
Le site SharePoint s'ouvre. La page d'application s'affiche.
Dans la page, cliquez sur l'option Modifiés par moi.
La page d'application s'actualise et affiche tous les éléments que vous avez modifiés dans l'ensemble des sites de la batterie de serveurs.
Dans la page, cliquez sur l'option Que j'ai créés.
La page d'application s'actualise et affiche tous les éléments que vous avez créés dans l'ensemble des sites de la batterie de serveurs.
Étapes suivantes
Pour plus d'informations sur les pages d'application SharePoint, consultez Création de pages d'application pour SharePoint.
Pour savoir comment concevoir le contenu d'une page SharePoint à l'aide de Visual Web Designer, consultez les rubriques suivantes :
Voir aussi
Tâches
Comment : créer une page d'application