Demonstra Passo a passo: Criando uma página de aplicativo

Um página de aplicativo é uma forma especializada de uma página ASP.NET page. As páginas de aplicativo contêm conteúdo que será mesclado com uma página mestra do SharePoint. Para obter mais informações, consulte A criação de páginas de aplicativo para o SharePoint.

Esta explicação passo a passo mostra como criar uma página de aplicativo e, então, depurar a página usando um site local do SharePoint. Esta página de aplicativo permite que o usuário atual exibir todos os itens que eles criados ou modificados em todos os sites no server farm.

Essa explicação passo a passo ilustra as seguintes tarefas:

  • Criando um projeto do SharePoint.

  • Adicionando uma página de aplicativo para o projeto do SharePoint.

  • Adicionando controles ASP.NET para a página do aplicativo.

  • Adicionando o code-behind do ASP.NET personalizados.

  • Testando a página do aplicativo.

ObservaçãoObservação

Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Trabalhando com configurações.

Pré-requisitos

Para completar este passo a passo, são necessários os seguintes componentes:

Criando um projeto do SharePoint

Primeiro, crie um Projeto vazio do SharePoint. Posteriormente, você adicionará um Página de aplicativo item a este projeto.

Para criar um projeto do SharePoint

  1. Inicie o Visual Studio 2010

  2. Abrir o Novo projeto caixa de diálogo caixa, expanda o SharePoint nó sob o idioma que você deseja usar e clique em 2010.

  3. No Visual Studio Installed Templates painel, selecione Projeto vazio do SharePoint. Nomeie o projeto MySharePointProject e clique em OK.

    O O Assistente para personalização do SharePoint aparece. Este assistente permite que você selecione o site que você usará para depurar o projeto e o nível de confiança da solução.

  4. Selecione Deploy como uma solução do farme em seguida, clique em Concluir para aceitar o site do SharePoint padrão local.

Criando uma página de aplicativo

Para criar uma página de aplicativo, adicione um Página de aplicativo item ao projeto.

Para criar uma página de aplicativo

  1. Em Solution Explorer, selecione o MySharePointProject project.

  2. No menu Project, clique em Add New Item.

  3. No Add New Item caixa de diálogo, selecione Página de aplicativo.

  4. Nomeie a página SearchItems e clique em Add.

    O designer Visual Web Developer exibe a página de aplicativo em fonte onde você pode ver os elementos da página HTML de modo de exibição. O designer exibirá a marcação para vários Content controles. Cada controle mapeia para um ContentPlaceHolder controle que é definido no padrão aplicativos mestre página.

Criar o Layout da página do aplicativo

O item de página de aplicativo permite que você usar um designer para adicionar o ASP.NET para a página do aplicativo. Este designer é o designer mesmo usado no Visual Web Developer. Arraste um rótulo, uma lista de botões de rádio e uma tabela para o fonte o modo de exibição do designer e definir propriedades apenas como faria com qualquer padrão do ASP.NET page.

Para obter mais informações sobre como usar o designer no Visual Web Developer, consulte Mapa de conteúdo do Visual Web Developer.

Para criar o layout da página do aplicativo

  1. No menu Exibir, clique em Caixa de Ferramentas.

  2. No Toolbox, da padrão agrupar, arraste um rótulo, um DropDownListe um tabela no corpo da PlaceHolderMain controle de conteúdo.

  3. No designer, alterar o valor de Text atributo do controle label para mostrar todos os itens.

  4. No designer, substitua o <asp:DropDownList> elemento com o XML a seguir.

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

Manipulando os eventos de controles na página

Lidar com controles em uma página de aplicativo, como faria com qualquer aplicativo ASP.NET page. Neste procedimento, você irá lidar com o SelectedIndexChanged o evento da lista drop-down.

Para manipular os eventos dos controles na página

  1. Sobre o Exibir menu, clique em código.

    O arquivo de código de página de aplicativo abre no Editor de código.

  2. Adicione o seguinte método para o SearchItems classe. Esse código manipula o SelectedIndexChanged o evento da DropDownList , chamando um método que você criará posteriormente nesta explicação passo a passo.

     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. Adicione as seguintes instruções para a parte superior do arquivo de código de página do aplicativo.

    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. Adicione o seguinte método para o SearchItems classe. Esse método percorre todos os sites no server farm e procura por itens criados ou modificados pelo usuário atual.

    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. Adicione o seguinte método para o SearchItems classe. Esse método exibe os itens criados ou modificados pelo usuário atual na tabela.

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

Testando a página de aplicativo

Quando você executar o projeto, o site do SharePoint é aberto e a página de aplicativo é exibida.

Para testar a página de aplicativo

  1. Em Solution Explorer, clique com o botão direito na página do aplicativo e, em seguida, clique em definido como Item de inicialização.

  2. Pressione F5.

    O site do SharePoint é aberta. A página de aplicativo aparece.

  3. Na página, clique na modificado por mim opção.

    A página de aplicativo atualiza e exibe todos os itens que você modificou em todos os sites no server farm.

  4. Na página, clique na criado por mim opção.

    A página de aplicativo atualiza e exibe todos os itens que você criou em todos os sites no server farm.

Próximas etapas

Para obter mais informações sobre páginas de aplicativo do SharePoint, consulte A criação de páginas de aplicativo para o SharePoint.

Você pode aprender mais sobre como criar conteúdo de página do SharePoint usando o Visual Web Designer com estes tópicos:

Consulte também

Tarefas

Como: Criar uma página de aplicativo

Outros recursos

Tipo de página de layouts de aplicativo