Compartir a través de


Tutorial: Crear una página de aplicación

Una página de aplicación es un formulario especializado de una página ASP.NET.Las páginas de aplicación incluyen contenido combinado con una página maestra de SharePoint.Para obtener más información, vea Crear páginas de aplicación para SharePoint.

Este tutorial muestra cómo crear una página de aplicación y después depurarlo utilizando un sitio de SharePoint local.Esta página muestra todos los elementos que cada usuario ha creado o modificado en todos los sitios de la granja de servidores.

En este tutorial se muestran las tareas siguientes:

  • Crear un proyecto de SharePoint.

  • Agregar una página de aplicación al proyecto de SharePoint.

  • Agregar controles ASP.NET a la página de aplicación.

  • Agregar código subyacente a los controles ASP.NET.

  • Probar la página de aplicación.

[!NOTA]

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones.La edición de Visual Studio que tenga y la configuración que esté usando determinan estos elementos.Para obtener más información, vea Valores de configuración de Visual Studio.

Requisitos previos

Necesita los componentes siguientes para completar este tutorial:

Crear un proyecto de SharePoint

Primero, cree un Proyecto de SharePoint vacío.Después, agregará un elemento Página de aplicación a este proyecto.

Para crear un proyecto de SharePoint

  1. Inicie Visual Studio.

  2. Abra el cuadro de diálogo nuevo proyecto, expanda el nodo Office/SharePoint bajo el lenguaje que desea usar y, a continuación el nodo Soluciones de SharePoint.

  3. En el panel Plantillas instaladas de Visual Studio, elija la plantilla SharePoint 2010 – proyecto vacío.Denomine el proyecto MySharePointProject, y elija el botón Aceptar.

    Aparece el Asistente para la personalización de SharePoint.Este asistente permite seleccionar el sitio que se va a usar para depurar el proyecto, así como el nivel de confianza de la solución.

  4. Elija el botón de opción implementar como solución de granja de servidores, y elija el botón finalizar para aceptar el sitio local predeterminado de SharePoint.

Crear una página de aplicación

Para crear una página de aplicación, agregue un elemento Página de aplicación al proyecto.

Para crear una página de aplicación

  1. En Explorador de soluciones, elija el proyecto MySharePointProject.

  2. En la barra de menú, elija proyecto, agregar nuevo elemento.

  3. En el cuadro de diálogo agregar nuevo elemento, elija la plantilla Página (solución de granja sólo.

  4. Llame a la página SearchItems, y elija el botón Add.

    El diseñador de Visual Web developer muestra la página de aplicación en la vista Origen donde puede ver los elementos HTML de la página.El diseñador muestra el marcado de varios controles Content.Cada control se asigna a un control ContentPlaceHolder que se define en la página maestra de la aplicación predeterminada.

Diseñar el diseño de la página de aplicación

El elemento Página de aplicación le permite utilizar un diseñador para agregar controles ASP.NET a la página de aplicación.Este diseñador es el mismo que se utiliza en Visual Web Developer.Agregue una etiqueta, una lista de botones de radio, y una tabla a la vista Origen del diseñador, y propiedades a establecidas exactamente igual que cuando diseñe cualquier página ASP.NET estándar.

Para obtener más información sobre el uso del diseñador en Visual Web Developer, vea Visual Studio 11 Beta para el mapa de contenido web.

Para diseñar el diseño de la página de aplicación

  1. En la barra de menú, elija Vista, Cuadro de herramientas.

  2. En el nodo estándar Cuadro de herramientas, realice uno de los pasos siguientes:

    • Abrir el menú contextual para el elemento label, elija copiar, abra el menú contextual para la línea bajo control de contenido PlaceHolderMain en el diseñador y, a continuación Pegar.

    • Arrastre el elemento labelCuadro de herramientas al cuerpo del control de contenido PlaceHolderMain.

  3. Repita el paso anterior para agregar un elemento DropDownList y un elemento TABLE al control de contenido PlaceHolderMain.

  4. En el diseñador, cambie el valor del atributo Text del control de etiqueta por Mostrar todos los elementos.

  5. En el diseñador, reemplace el elemento <asp:DropDownList> por el XML siguiente.

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

Controlar los eventos de los controles en la página

Controle los controles de una página de aplicación como lo haría en una página ASP.NET.En este procedimiento controlará el evento SelectedIndexChanged de la lista desplegable.

Para controlar los eventos de los controles en la página

  1. En el menú Vista, elija código.

    El archivo de código de la página de aplicación se abre en el editor de código.

  2. Agregue el método siguiente a la clase SearchItems.Este código controla el evento SelectedIndexChanged de DropDownList llamando a un método que creará posteriormente en este tutorial.

     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. Agregue las siguientes instrucciones a la parte superior del archivo de código de la página de aplicación.

    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. Agregue el método siguiente a la clase SearchItems.Este método recorre en iteración todos los sitios de la granja de servidores y busca los elementos creados o modificados por el usuario actual.

    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. Agregue el método siguiente a la clase SearchItems.Este método muestra elementos creados o modificados por el usuario actual en la tabla.

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

Probar la página de aplicación

Al ejecutar el proyecto, se abre el sitio de SharePoint y aparece la página de aplicación.

Para probar la página de aplicación

  1. En Explorador de soluciones, abra el menú contextual para la página de aplicación y, a continuación Conjunto como elemento de inicio.

  2. Elija la tecla F5.

    Se abre el sitio de SharePoint.

  3. En la página de aplicación, elija la opción Modificado por mí.

    La página de aplicación se actualiza y muestra todos los elementos que ha modificado en todos los sitios de la granja de servidores.

  4. En la página de aplicación, elija Creados por mí en la lista.

    La página de aplicación se actualiza y muestra todos los elementos que ha creado en todos los sitios de la granja de servidores.

Pasos siguientes

Para obtener más información sobre las páginas de aplicación de SharePoint, vea Crear páginas de aplicación para SharePoint.

En los temas siguientes puede obtener más información sobre cómo diseñar el contenido de páginas de SharePoint con Visual Web Designer:

Vea también

Tareas

Cómo: Crear una página de aplicación

Otros recursos

Tipo de página de los _layouts de la aplicación