Compartilhar via


Passo a passo: Criando uma página de aplicativo

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

Essa explicação passo a passo mostra como criar uma página do aplicativo e em seguida depurar-la usando um site local do SharePoint.Esta página mostra a todos os itens que cada usuário tenha criado ou modificado em todos os sites no farm de servidores.

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

  • Criando um projeto do SharePoint.

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

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

  • Adicionando código por trás de controles ASP.NET.

  • Testando a página de aplicativo.

ObservaçãoObservação

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

Pré-requisitos

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

Criando O SharePoint

Primeiro, crie O SharePoint empty Project.Posteriormente, você adicionará um item da Página de aplicativo ao projeto.

Para criar O SharePoint

  1. Inicie o Visual Studio

  2. Abra a caixa de diálogo de Novo Projeto , expanda o nó de Office/SharePoint no idioma que você deseja usar, e então escolha o nó de Soluções do SharePoint .

  3. No painel de Modelos instalados do Visual Studio , escolha o modelo de SharePoint 2010 – Projeto Vazio .Nomeie o projeto MySharePointProject, e então escolha o botão de OK .

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

  4. Escolha o botão de opção de Implantar como uma solução de farm , e então escolha o botão de Concluir para aceitar o site da web do SharePoint local padrão.

Criando uma página de aplicativo

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

Para criar uma página de aplicativo

  1. Em Gerenciador de Soluções, escolha o projeto de MySharePointProject .

  2. Na barra de menus, escolha Projeto, Adicionar novo item.

  3. Na caixa de diálogo de Adicionar novo item , escolha o modelo de Página (aplicativo de solução de farm apenas .

  4. Nomeie a página SearchItems, e então escolha o botão de Adicionar .

    O designer do Visual Web Developer exibe a página de aplicativo no modo de Origem onde você pode ver os elementos HTML da página.O designer exibe a marcação para vários controles de Content .Mapas de cada controle a ContentPlaceHolder controle que é definido na página mestra padrão do aplicativo.

Criando o layout da página de aplicativo

O item da página de aplicativo permitem a você usar um designer para adicionar controles ASP.NET para a página de aplicativo.Este criador é o mesmo designer usado no Visual Web Developer.Adicione um rótulo, uma lista de botão de opção, e uma tabela para modo de exibição de Origem de designer, e propriedades definidas em exatamente como você quando você cria qualquer página ASP.NET padrão.

Para obter mais informações sobre como usar o designer do Visual Web Developer, consulte Visual Studio Beta de 11 para o mapa de conteúdo da Web.

Para criar o layout da página de aplicativo

  1. Na barra de menu, escolha Modo de Visualização, Caixa de Ferramentas.

  2. No nó padrão de Caixa de Ferramentas, execute uma das seguintes etapas:

    • Abra o menu de atalho para o item de Rótulo , escolha Copiar, abra o menu de atalho para a linha sob o controle de conteúdo de PlaceHolderMain no designer, e então escolha Colar.

    • Arraste o item de Rótulo de Caixa de Ferramentas o corpo do controle do conteúdo de PlaceHolderMain .

  3. Repita a etapa anterior para adicionar um item de DropDownList e um item de Tabela ao controle de conteúdo de PlaceHolderMain .

  4. No designer, altere o valor do atributo de Text de controle do rótulo para mostrar todos os itens.

  5. No designer, substitua o elemento de <asp:DropDownList> com o seguinte 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>
    

Manipulando eventos dos controles na página

Manipular controles em uma página de aplicativo exatamente como você faria com qualquer página ASP.NET.Nesse procedimento, você irá manipular o evento de SelectedIndexChanged da lista suspensa.

Para manipular eventos dos controles na página

  1. No menu de Modo de Visualização , escolha Código.

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

  2. Adicione o seguinte método à classe de SearchItems .Esse código manipula o evento de SelectedIndexChanged de DropDownList chamando um método que você criará posteriormente neste 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 instruções a seguir à 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 à classe de SearchItems .Este método itera com todos os sites no farm de servidores e procura os 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 à classe de SearchItems .Este 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 da web do SharePoint e abre a página de aplicativo aparece.

Para testar a página de aplicativo

  1. Em Gerenciador de Soluções, abra o menu de atalho para a página do aplicativo, e então escolha Conjunto como o item de inicialização.

  2. Escolha a tecla F5.

    O site da web do SharePoint aparece.

  3. Na página de aplicativo, escolha a opção de Modificado por mim .

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

  4. Na página de aplicativo, escolha Criados por mim na lista.

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

Próximas etapas

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

Você pode aprender mais sobre como criar conteúdo da página do SharePoint usando o visual Web designer desses tópicos:

Consulte também

Tarefas

Como: criar uma página de aplicativo

Outros recursos

Tipo da página de _layouts do aplicativo