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
Em Visual Studio, selecione ferramentas externas o menu Ferramentas .
O External Tools diálogo, clique em Adicionar e digite obter chave pública conjunto de módulos (assembly) a título .
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
.Em caixa de texto o argumentos, o seguinte tipo (com diferenciação de maiúsculas e minúsculas) -TP "$ (TargetPath)" .
Ative a caixa de seleção Use Output janela.
Clique em OK . O comando novo é adicionado para o menu Ferramentas .
Para configurar o personalizado campo projeto:
Em Visual Studio, selecione Novo Projeto sobre o menu do arquivo.
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 .
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 .
Clique com o botão direito do mouse no nome do projeto em Gerenciador de Soluções e selecione propriedades .
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.
Abra a guia a assinatura e em seguida, selecione entrar o assembly .
Choose <New...> from the Choose a strong name key file drop-down list box.
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
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.)
Clique em qualquer outro habilitado controle na guia para que Visual Studio detecta suas alterações e um asterisco aparece em rotular o guia.
Clique no salvar todos os arquivos botão sobre a barra de ferramentas.
Em Gerenciador de Soluções , renomear o arquivo
Class1.cs
aItemTitleField.cs
.
Para criar o controle processamento:
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;
Alterar o espaço para nome para mycompany
.SharePoint.MobileControls
.Substituir a declaração Class1 toda o seguinte codificar:
public class ItemTitleField : SPMobileBaseTextField { }// end ItemTitleField class
Observe que a nova classe herda de SPMobileBaseTextField.
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.
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; }
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; }
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
Em Gerenciador de Soluções , clique com o botão direito do mouse Nome do projeto, ItemTitleField e selecione adicionar e Novo Item .
Selecione Visual C# projeto itens na janela Categorias e, em seguida, arquivo de texto na janela modelos.
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.)
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>
mycompany substitua seu nome da empresa nos dois lugares.
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".
Salvar e fechar o arquivo.
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
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
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
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