Compartilhar via


Walkthrough: Criar um campo personalizado de processamento de controle para páginas do Mobile

Esta explicação passo a passo mostra como personalizar campo processamento em páginas móveis implementando um personalizado controle processamento campo em conjunto com um RenderingTemplate. O procedimento exemplo mostra como personalizar o campo de título de um item em uma lista Avisos sobre o celular Exibir item, novo item e editar item Páginas. A personalização é diferente para os três tipos de páginas:

  • Exibir forma ? adiciona um link pesquisa pelo qual os usuários podem navegar para a página de resultados pesquisa MSN News.

  • Editar forma ? adiciona texto usar como padrão quando o valor da coluna a de expiração é menor do que a atual data.

  • Nova forma ? adiciona texto usar como padrão para usuários apresentação um formato específico de valores.

Para um visão geral das etapas personalizando campos em páginas móveis, consulte Como a: Personalizar de processamento de campos em páginas móveis.

Pré-requisitos

Conclusão de Walkthrough: personalizando títulos item em um formulário Exibir móvel.

Preparar para desenvolvimento de controles de processamento do campo personalizado

  1. Em Visual Studio, selecione ferramentas externas o menu Ferramentas .

  2. O External Tools diálogo, clique em Adicionar e digite obter chave pública conjunto de módulos (assembly) a título .

  3. Preencha o caixa de texto comando navegando para Sn.exe. É normalmente em C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe.

  4. Em caixa de texto o argumentos, o seguinte tipo (com diferenciação de maiúsculas e minúsculas) -TP "$ (TargetPath)" .

  5. Ative a caixa de seleção Use Output janela.

  6. Clique em OK . O comando novo é adicionado para o menu Ferramentas .

Para configurar o personalizado campo projeto:

  1. Em Visual Studio, selecione Novo Projeto sobre o menu do arquivo.

  2. In the New Project dialog box, select Visual C# in the Project types box, select Class Library in the Templates box, and enter ItemTitleField Na caixa a Nome. Clique em OK .

  3. Clique com o botão direito do mouse o nó referências Gerenciador de Soluções , clique em Adicionar Referência e, Mantendo pressionada a chave CTRL , select System.Web, System.Web.Mobile, and Microsoft SharePoint Services on the .NET tab in the Add Reference dialog box. Clique em OK .

  4. Clique com o botão direito do mouse no nome do projeto em Gerenciador de Soluções e selecione propriedades .

  5. Na guia Aplicativo do diálogo Propriedades, digite mycompany .SharePoint.MobileControls.ItemTitleField Como a conjunto de módulos (assembly) Nome e mycompany .SharePoint.MobileControls Como a padrão namespace . Substitua mycompany pelo nome da sua empresa. Em todo este explicação passo a passo, substituir MyCompany com o nome da sua empresa.

  6. Abra a guia a assinatura e em seguida, selecione entrar o assembly .

  7. Choose <New...> from the Choose a strong name key file drop-down list box.

  8. No diálogo Create Strong Name Key, tipo ItemTitleField.snk No arquivo chave nome caixa e, em seguida, certifique-se de que o proteger... caixa de seleção é Não verificado. Clique em OK . Abra a guia Criar eventos e tipo o seguinte (abaixo) na caixa evento Post-Build linha de comando. Este codificar garante que cada tempo você reconstruir o projeto, as versões mais recentes do seu projeto arquivos são copiados para a localidade correta e que Windows SharePoint Services 3.0 for reiniciado para que ele irá carregar a versão mais recente do assembly.

                            cd "$(ProjectDir)"
    "%programfiles%\microsoft visual studio 8\sdk\v2.0\bin\gacutil" /i "$(TargetPath)" /nologo /f
    %systemroot%\system32\iisapp.vbs /a "SharePoint_App_Pool" /r
    xcopy *.ascx "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\" /y
    
  9. Substituir o real SharePoint_App_Pool Nome do pool de aplicativos de Internet Information Server (IIS) que é atribuído a seu Windows SharePoint Services aplicativo da Web. Isso geralmente é o mesmo nome como o site da Web IIS que contém o aplicativo; de exemplo, "SharePoint - 80". (As aspas poderá ser omitidas se não houver espaços no nome.)

  10. Clique em qualquer outro habilitado controle na guia para que Visual Studio detecta suas alterações e um asterisco aparece em rotular o guia.

  11. Clique no salvar todos os arquivos botão sobre a barra de ferramentas.

  12. Em Gerenciador de Soluções , renomear o arquivo Class1.cs a ItemTitleField.cs.

Para criar o controle processamento:

  1. Abra o arquivo ItemTitleField.cs ItemTitleField.cs do projeto se ele não já aberto e adicionar o seguinte using instruções using:

                            using System.Web.UI.MobileControls;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.MobileControls;
    
  2. Alterar o espaço para nome para mycompany .SharePoint.MobileControls.

  3. Substituir a declaração Class1 toda o seguinte codificar:

                            public class ItemTitleField : SPMobileBaseTextField
    {
    
    }// end ItemTitleField class
    

    Observe que a nova classe herda de SPMobileBaseTextField.

  4. Adicione o seguinte substituir do CreateControlForDisplay M:Microsoft.SharePoint.SPMobileBaseFieldControl.CreateControlForDisplay método:

                            protected override MobileControl CreateControlForDisplay()
    {
       string title = Convert.ToString(this.ItemFieldValue);
       if (!String.IsNullOrEmpty(title))
       {
          this.LabelControl.BreakAfter = false;
          this.LabelControl.Text = title + " ";
    
          this.LinkControl.BreakAfter = false;
          this.LinkControl.Text = "Search";
          this.LinkControl.NavigateUrl = "https://search.msn.com/results.aspx?q=" + title.Replace(' ', '+');
    
          Panel panel = new Panel();
          panel.BreakAfter = false;
          panel.Controls.Add(this.LabelControl);
          panel.Controls.Add(this.LinkControl);
    
          return panel;
       }
       return null;
    }
    

    Observe que esse método começa por obtendo o atual valor do campo Título do atual item da lista. Este atual valor é armazenado em ItemFieldValue.

  5. Adicione o seguinte substituir do CreateControlForNew M:Microsoft.SharePoint.SPMobileBaseTextField.CreateControlForNew método:

                            protected override MobileControl CreateControlForNew()
    {
       MobileControl myNewControl = null;
       if (this.Field != null)
       {
          string text = "Group: Project Name";
          if (!this.Page.IsPostBack)
          {
             this.TextBoxControl.Text = text;
          }
          myNewControl = this.TextBoxControl;
       }
       return myNewControl;
    }
    
  6. Adicione o seguinte substituir do CreateControlForEdit M:Microsoft.SharePoint.SPMobileBaseTextField.CreateControlForEdit método:

                            protected override MobileControl CreateControlForEdit()
    {
       MobileControl myEditControl = null;
       if (this.Item != null && this.Field != null)
       {
          if (this.NeedEllipsisRendering)
          {
             myEditControl = this.CreateControlForDisplay();
          }
          else
          {
             if (!this.Page.IsPostBack)
             {
                string strEdit = this.Field.GetFieldValueForEdit(this.ItemFieldValue);
                string overDue = "OVERDUE: ";
    
                SPListItem item = this.ListItem;
                if (item["Expires"] != null)
                {
                   System.DateTime date = (DateTime)item["Expires"];
                   if (date.CompareTo(System.DateTime.Today) < 0)
                   {
                      this.TextBoxControl.Text = overDue + strEdit;
                   }
                   else
                   {
                      this.TextBoxControl.Text = strEdit;
                   }
                }
             }
             myEditControl = this.TextBoxControl;
          }
       }
       return myEditControl;
    }
    
  7. Selecione construir sobre o menu construir. Não terminar ainda, mas você precisará compilação o assembly neste apontar para que você pode gerar uma public key token.

Para criar o modelo processamento

  1. Em Gerenciador de Soluções , clique com o botão direito do mouse Nome do projeto, ItemTitleField e selecione adicionar e Novo Item .

  2. Selecione Visual C# projeto itens na janela Categorias e, em seguida, arquivo de texto na janela modelos.

  3. Na caixa nome, tipo AnnouncementsItemTitleField.ascx e clique adicionar . Fazer Não pôr o arquivo em uma subpasta da pasta projeto ou os comandos Post-Build que você criou será não localizá-la.)

  4. No arquivo AnnouncementsItemTitleField.ascx AnnouncementsItemTitleField.ascx que é criado adicionar a seguinte marcação:

                            <%@ Control Language="C#" %>
    <%@ Assembly name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %> 
    <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="SPMobile" Namespace="Microsoft.SharePoint.MobileControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register TagPrefix="CustomMobile" Namespace="MyCompany.SharePoint.MobileControls" Assembly="MyCompany.SharePoint.MobileControls.ItemTitleField, Version=1.0.0.0, Culture=neutral, PublicKeyToken=Token" %> 
    <%@ Import Namespace="Microsoft.SharePoint" %>
    
    <SharePoint:RenderingTemplate RunAt="Server" ID="MobileCustomListField_Announcements_Text_Title" >
        <Template>
          <CustomMobile:ItemTitleField RunAt="Server" /> 
        </Template>
    </SharePoint:RenderingTemplate>
    
  5. mycompany substitua seu nome da empresa nos dois lugares.

  6. Substitua o real Public Key Token que você obter clicando Get Assembly Public Key sobre o menu Ferramentas token . A chave token aparecerá na última linha da janela de saída. Usar apenas a chave token , não a chave inteira.

    Observe que este arquivo é quase idêntico de um criado em Walkthrough: personalizando títulos item em um formulário Exibir móvel. As diferenças são:

    • A linha

      <mobile:Label Text="Title field in Announcements List" RunAt="Server" />

      Em Walkthrough: personalizando títulos item em um formulário Exibir móvel

      é substituído em codificar exemplo neste tópico por linha

      <CustomMobile:ItemTitleField RunAt="Server" />

      Para que o modelo processamento irá chamar o controle processamento campo que você criou anteriormente neste explicação passo a passo.

    • Uma nova diretiva registro tenha sido adicionada ao registrar o prefixo marca "CustomMobile".

  7. Salvar e fechar o arquivo.

  8. Selecione o menu construir recriar .

Teste o controle de processamento

Com o dispositivo móvel ou emulador, navegar para um site no seu aplicativo da Web que possui uma lista Avisos. Navegue para a lista Avisos. Clique no link New Item. Você deve ver algo assim:

Figura 1. Texto padrão especificado para campo de título na nova forma

Customized Mobile New Item Form

Criar um novo item e dê a ele um valor de expiração que está alguns passado Data. Clique em salvar. Isso levará você voltar para o exibição de lista. Clique no link exibir sob o novo item. Você deve ver algo assim. Observe o link de pesquisa que tenha sido adicionado ao final do título.

Figura 2. Pesquisa link adicionado à forma de exibição

Customized Mobile Display Item Form

Clique no link Editar . Você deve ver algo assim. Observe o "OVERDUE" que foi adicionada para a atual título.

Figura 3. Processamento condicional do texto no campo Título da forma editar

Customized Mobile Edit Item Form

Consulte também

Tarefas

Como a: Personalizar de processamento de campos em páginas móveis

Conceitos

Layout e Pagination do Mobile páginas
Página móvel de processamento do sistema