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:
Ediciones compatibles de Windows y SharePoint.Para obtener más información, vea Requisitos para desarrollar soluciones de SharePoint.
Visual Studio 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.
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.
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.
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
En Explorador de soluciones, elija el proyecto MySharePointProject.
En la barra de menú, elija proyecto, agregar nuevo elemento.
En el cuadro de diálogo agregar nuevo elemento, elija la plantilla Página (solución de granja sólo.
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
En la barra de menú, elija Vista, Cuadro de herramientas.
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.
Repita el paso anterior para agregar un elemento DropDownList y un elemento TABLE al 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ú Vista, elija 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 Explorador de soluciones, abra el menú contextual para la página de aplicación y, a continuación Conjunto como elemento de inicio.
Elija la tecla F5.
Se abre el sitio de SharePoint.
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.
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