Procédure pas à pas : Créer une page d’application SharePointWalkthrough: Create a SharePoint application page

Une page d’application est une forme spécialisée d’une page ASP.NET.An application page is a specialized form of an ASP.NET page. Pages d’application présentent du contenu qui est fusionné avec une page maître SharePoint.Application pages contain content that's merged with a SharePoint master page. Pour plus d’informations, consultez créer des pages d’application pour SharePoint.For more information, see Create application pages for SharePoint.

Cette procédure pas à pas vous montre comment créer une page d’application et effectuer un débogage à l’aide d’un site SharePoint local.This walkthrough shows you how to create an application page and then debug it by using a local SharePoint site. Cette page affiche tous les éléments de chaque utilisateur a créés ou modifiés dans tous les sites de la batterie de serveurs.This page shows all items that each user has created or modified in all sites on the server farm.

Cette procédure pas à pas décrit les tâches suivantes :This walkthrough illustrates the following tasks:

  • Création d’un projet SharePoint.Creating a SharePoint project.
  • Ajout d’une page d’application au projet SharePoint.Adding an application page to the SharePoint project.
  • Ajout de contrôles ASP.NET à la page d’application.Adding ASP.NET controls to the application page.
  • Ajout de code-behind des contrôles ASP.NET.Adding code behind the ASP.NET controls.
  • Test de la page d’application.Testing the application page.

Note

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.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. L’édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments.The Visual Studio edition that you have and the settings that you use determine these elements. Pour plus d’informations, consultez Personnaliser l’IDE Visual Studio.For more information, see Personalize the Visual Studio IDE.

PrérequisPrerequisites

  • Éditions prises en charge de Windows et SharePoint.Supported editions of Windows and SharePoint.

Créer un projet SharePointCreate a SharePoint project

Commencez par créer un projet SharePoint vide.First, create an Empty SharePoint Project. Une version ultérieure, vous ajouterez un Page Application élément à ce projet.Later, you will add an Application Page item to this project.

  1. Démarrez Visual StudioVisual Studio.Start Visual StudioVisual Studio.

  2. Ouvrez le nouveau projet boîte de dialogue, développez le Office/SharePoint nœud sous le langage que vous souhaitez utiliser, puis choisissez le Solutions SharePoint nœud.Open the New Project dialog box, expand the Office/SharePoint node under the language that you want to use, and then choose the SharePoint Solutions node.

  3. Dans le modèles Visual Studio installés volet, choisissez le SharePoint 2010 - projet vide modèle.In the Visual Studio Installed Templates pane, choose the SharePoint 2010 - Empty Project template. Nommez le projet MySharePointProject, puis choisissez le OK bouton.Name the project MySharePointProject, and then choose the OK button.

    Le Assistant Personnalisation de SharePoint s’affiche.The SharePoint Customization Wizard appears. Cet Assistant vous permet de sélectionner le site que vous allez utiliser pour déboguer le projet et le niveau de confiance de la solution.This wizard enables you to select the site that you will use to debug the project and the trust level of the solution.

  4. Choisissez le déployer en tant que solution de batterie case d’option, puis choisissez le Terminer bouton pour accepter le site SharePoint local par défaut.Choose the Deploy as a farm solution option button, and then choose the Finish button to accept the default local SharePoint site.

Créer une page d’applicationCreate an application page

Pour créer une page d’application, ajoutez un Page Application élément au projet.To create an application page, add an Application Page item to the project.

  1. Dans l’Explorateur de solutions, choisissez le MySharePointProject projet.In Solution Explorer, choose the MySharePointProject project.

  2. Dans la barre de menus, choisissez Projet > Ajouter un nouvel élément.On the menu bar, choose Project > Add New Item.

  3. Dans le ajouter un nouvel élément boîte de dialogue, sélectionnez le Page Application (Solution de batterie uniquement modèle.In the Add New Item dialog box, choose the Application Page (Farm Solution Only template.

  4. Nommez la page SearchItems, puis choisissez le ajouter bouton.Name the page SearchItems, and then choose the Add button.

    Le concepteur Visual Web Developer affiche la page d’application dans Source où vous pouvez voir les éléments HTML de la page de vue.The Visual Web Developer designer displays the application page in Source view where you can see the page's HTML elements. Le concepteur affiche le balisage pour plusieurs Content contrôles.The designer displays the markup for several Content controls. Chaque contrôle est mappé à un ContentPlaceHolder contrôle défini dans la page maître d’application par défaut.Each control maps to a ContentPlaceHolder control that is defined in the default application master page.

Concevoir la disposition de la page d’applicationDesign the layout of the application page

L’élément Page Application vous permet d’utiliser un concepteur pour ajouter des contrôles ASP.NET à la page d’application.The Application Page item enables you to use a designer to add ASP.NET controls to the application page. Ce concepteur est le même concepteur que celui utilisé dans Visual Web Developer.This designer is the same designer used in Visual Web Developer. Ajouter une étiquette, une liste de case d’option et une table à la Source afficher du concepteur, puis définissez les propriétés comme vous le feriez lors de la conception d’une page ASP.NET standard.Add a label, a radio button list, and a table to the Source view of the designer, and then set properties just as you would when you design any standard ASP.NET page.

  1. Dans la barre de menus, choisissez vue > boîte à outils.On the menu bar, choose View > Toolbox.

  2. Dans le nœud Standard de la boîte à outils, effectuez l’une des étapes suivantes :In the Standard node of the Toolbox, perform one of the following steps:

    • Ouvrez le menu contextuel pour le étiquette d’élément, choisissez copie, ouvrez le menu contextuel de la ligne dans le PlaceHolderMain contrôle dans le concepteur, de contenu, puis Choisissez coller.Open the shortcut menu for the Label item, choose Copy, open the shortcut menu for the line under the PlaceHolderMain content control in the designer, and then choose Paste.

    • Faites glisser le étiquette d’élément à partir de la boîte à outils dans le corps du PlaceHolderMain contrôle de contenu.Drag the Label item from the Toolbox onto the body of the PlaceHolderMain content control.

  3. Répétez l’étape précédente pour ajouter un DropDownList élément et un Table d’élément à la PlaceHolderMain contrôle de contenu.Repeat the previous step to add a DropDownList item and a Table item to the PlaceHolderMain content control.

  4. Dans le concepteur, modifiez la valeur de la Text attribut du contrôle label pour afficher tous les éléments.On the designer, change the value of the Text attribute of the label control to Show All Items.

  5. Dans le concepteur, remplacez le <asp:DropDownList> élément avec le code XML suivant.On the designer, replace the <asp:DropDownList> element with the following XML.

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

Gérer les événements de contrôles sur la pageHandle the events of controls on the page

Gérer les contrôles dans une page d’application comme vous le feriez pour n’importe quelle page ASP.NET.Handle controls in an application page just as you would any ASP.NET page. Dans cette procédure, vous gérerez les SelectedIndexChanged événements de la liste déroulante.In this procedure, you will handle the SelectedIndexChanged event of the drop-down list.

  1. Sur le vue menu, choisissez Code.On the View menu, choose Code.

    Le fichier de code de page application s’ouvre dans l’éditeur de Code.The application page code file opens in the Code Editor.

  2. Ajoutez la méthode suivante à la classe SearchItems.Add the following method to the SearchItems class. Ce code gère le SelectedIndexChanged événements de la DropDownList en appelant une méthode que vous créerez plus loin dans cette procédure pas à pas.This code handles the SelectedIndexChanged event of the DropDownList by calling a method that you will create later in this walkthrough.

     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. Ajoutez les instructions suivantes au début du fichier de code de page application.Add the following statements to the top of the application page code file.

    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. Ajoutez la méthode suivante à la classe SearchItems.Add the following method to the SearchItems class. Cette méthode effectue une itération dans tous les sites de la batterie de serveurs et recherche les éléments créés ou modifiés par l’utilisateur actuel.This method iterates through all sites on the server farm and searches for items created or modified by the current user.

    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. Ajoutez la méthode suivante à la classe SearchItems.Add the following method to the SearchItems class. Cette méthode affiche les éléments créés ou modifiés par l’utilisateur actuel dans la table.This method displays items created or modified by the current user in the 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.NavigateUrl = 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.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);
        }
    }
    

Tester la page d’applicationTest the application page

Lorsque vous exécutez le projet, le site SharePoint s’ouvre et la page d’application s’affiche.When you run the project, the SharePoint site opens and the application page appears.

  1. Dans l’Explorateur de solutions, ouvrez le menu contextuel de la page d’application, puis choisissez définir comme élément de démarrage.In Solution Explorer, open the shortcut menu for the application page, and then choose Set as Startup Item.

  2. Choisissez la touche F5.Choose the F5 key.

    Le site SharePoint s’ouvre.The SharePoint site opens.

  3. Dans la page application, choisissez le modifiés par moi option.On the application page, choose the Modified by me option.

    La page d’application s’actualise et affiche tous les éléments que vous avez modifié dans tous les sites de la batterie de serveurs.The application page refreshes and displays all items that you've modified in all sites on the server farm.

  4. Dans la page application, choisissez créés par moi dans la liste.On the application page, choose Created by me in the list.

    La page d’application s’actualise et affiche tous les éléments que vous avez créé dans tous les sites de la batterie de serveurs.The application page refreshes and displays all items that you have created in all sites on the server farm.

Étapes suivantesNext steps

Pour plus d’informations sur les pages d’application SharePoint, consultez créer des pages d’application pour SharePoint.For more information about SharePoint application pages, see Create application pages for SharePoint.

Vous pouvez en savoir plus sur la conception de contenu de la page SharePoint à l’aide de Visual Web Designer à partir de ces rubriques :You can learn more about how to design SharePoint page content by using the Visual Web Designer from these topics:

Voir aussiSee also

Comment : créer une page d’applicationHow to: Create an application page
Type de Page de dispositions d’applicationApplication _layouts Page Type