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 que está combinado con una página maestra de SharePoint. Para obtener más información, vea Crear páginas de aplicación para SharePoint.
En este tutorial se muestra cómo crear una página de aplicación y cómo depurarla utilizando un sitio de SharePoint local. Esta página de aplicación le permite al usuario ver todos los elementos que se han 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é utilizando determinan estos elementos. Para obtener más información, vea Trabajar con valores de configuración.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
Ediciones compatibles de Microsoft Windows y SharePoint. Para obtener más información, vea Requisitos para desarrollar soluciones de SharePoint.
Visual Studio 2010 Professional o una edición de Visual Studio Application Lifecycle Management (ALM).
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
Inicie Visual Studio 2010.
Abra el cuadro de diálogo Nuevo proyecto, expanda el nodo SharePoint bajo el lenguaje que desea usar y seleccione 2010.
En el recuadro Plantillas instaladas de Visual Studio, seleccione Proyecto de SharePoint vacío. Asigne al proyecto el nombre MySharePointProject y haga clic en 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.
Seleccione Implementar como solución de granja de servidores y haga clic en 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
Seleccione el proyecto MySharePointProject en el Explorador de soluciones.
En el menú Proyecto, haga clic en Agregar nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, seleccione la categoría Página de aplicación.
Asigne a la página el nombre SearchItems y haga clic en Agregar.
El diseñador de Visual Web Developer muestra la página de aplicación en la vista Código fuente, 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. Arrastre una etiqueta, una lista de botones de radio y una tabla a la vista Código fuente del diseñador y establezca las propiedades como lo haría en una página ASP.NET estándar.
Para obtener más información sobre el uso del diseñador en Visual Web Developer, vea Mapa de contenido de Visual Web Developer.
Para diseñar el diseño de la página de aplicación
En el menú Ver, haga clic en Cuadro de herramientas.
En el Cuadro de herramientas, en el grupo Estándar, arrastre un control Label, DropDownList y Table al cuerpo del control de contenido PlaceHolderMain.
En el diseñador, cambie el valor del atributo Text del control de etiqueta por Mostrar todos los elementos.
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
En el menú Ver, haga clic en Código.
El archivo de código de la página de aplicación se abre en el editor de código.
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); }
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;
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); }
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
En el Explorador de soluciones, haga clic con el botón secundario en la página de aplicación y después haga clic en Establecer como proyecto de inicio.
Presione F5.
Se abre el sitio de SharePoint. Aparece la página de aplicación.
En la página, haga clic en 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.
En la página, haga clic en la opción Creado por mí.
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