Troubleshooting: Customizando o controle “SaveButton” no SharePoint Designer.

Olá SharePointer’s,

Overview:

Esses dias tentando provar pra um dos gerentes de um projeto que estou alocado que o SharePoint pode ser bem produtivo em N cenários (não só como GED ou ferramenta de workflows), ele me solicitou criar um formulário que simplesmente cadastrasse usuários em eventos baseado no e-mail e evento informado pelo usuário anônimo.

Uma solução simples que precisava ser desenvolvida com boa produtividade, de cara sugeri um site novo com acesso anônimo e uma lista customizada para armazenar esses cadastros. Ele só argumentou que precisava customizar a tela de cadastro e que ao clicar em cadastrar a página redirecionasse o usuário para uma outra página de confirmação, fora do padrão Sharepoint out-of-the-box.

Cenário:

Temos alguns portais em MOSS 2007, utilizei uma aplicação existente para hospedar meu site de cadastro de participantes.

Com o novo site e a lista customizada criados, era só adicionar uma nova página ASPX via SharePoint designer que serviria de User Interface com a lista, a parte de customizar uma página de novos itens de lista já sabia que era tranqüilo, só faltava resolver o problema do “redirect”, que eu resolveria customizando o controle SaveButton, criado automicamente quando adicionarmos um "Custom List Form", esse controle é responsável por salvar os dados digitados na nossa página com o "Custom List Form", rapidamente pesquisei na documentação do controle SaveButton, membro de Microsoft.SharePoint.WebControls eee… Bingo! Existe uma propriedade pública RedirectUrl  que na teoria deveria fazer o que preciso, veja mais detalhes em SaveButton Members.

Legal, criei um site novo em um dos meus portais, depois criei uma página do zero via SharePoint Designer, inclui (Insert/SharePoint controls/Custom List Form) um Custom List Form em uma tabela HTML criada na minha nova página,  veja mais em Create a custom list form.

Até ai tudo ok, customizei um pouco o layout, perfeito!

Por último inclui no controle “<SharePoint:SaveButton>” a propriedade RedirectUrl (ex: <SharePoint:SaveButton runat="server" id=”savebutton2” ControlMode="New" RedirectUrl=”http://meuendereco” >), porém mesmo com a propriedade devidamente configurada e aplicada a página não era redirecionada.

 

ERRO:

Não apresentava erro, eu chamaria o que ocorreu com comportamente inesperado… O item era cadastrado normalmente, porém o “Redirect” não funcionava para a URL que eu configurei.

 

SOLUÇÃO:

Encontrei em alguns fóruns “de fora” que você devia criar uma espécie de botão de salvar customizado com JavaScript para reverter o "comportamento inesperado", vejam o exemplo que utilizei abaixo:

<input type="button" value="Enviar" name="btnEnviar" onclick="javascript: {ddwrt:GenFireServerEvent(‘__commit;__redirect={http://meuendereco}&#8217;)}" />

 

DICA: o valor do Redirect pode ser relativo ou absoluto

 

Assim funcionou! E mais uma vez consegui provar que o SharePoint é sem dúvida uma ferramenta de alta produtividade, onde podemos construir ferramentas poderosas ou simples formulários com alta performance e pouco investimento de esforço!  J

Detalhe, toda essa pesquisa não demorou mais do que 15 minutos e a construção da solução não mais que 10 minutos, ou seja, mesmo com obstáculos, nossa solução estava OK em menos de 30 minutos.

Abraços!

 

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s


%d blogueiros gostam disto: