IntroduçãoMuitas
vezes é útil exibir mensagens de "aguarde" ou imagens GIF animadas durante o processo de envio de formulário de um aplicativo da web, especialmente quando o processo de envio leva muito tempo. Recentemente, desenvolvi um programa de envio de pesquisas onde usuários internos carregam planilhas do Excel por meio de uma página da web. O programa insere os dados da planilha carregada no banco de dados. Esse processo leva apenas alguns segundos, mas mesmo que leve alguns segundos, é um processo de espera muito óbvio do ponto de vista da página da web. Durante o teste do programa, alguns usuários clicaram repetidamente no botão de upload. Portanto, é útil fornecer uma mensagem visual para informar às pessoas que o upload está em andamento. E oculte o botão de upload ao mesmo tempo para evitar cliques múltiplos. O controle apresentado aqui é uma subclasse do controle Button, que demonstra como encapsular o código JavaScript do lado do cliente em um controle de servidor ASP.NET para fornecer funções convenientes.
Embora existam muitos exemplos de javascript para fazer isso, encontrei alguns problemas quando tentei encapsular essas funções em controles ASP.NET. Primeiro tentei invalidar o botão por meio do manipulador javascript onclick e substituí-lo por outro texto. Mas achei muito complicado, pois isso iria atrapalhar o funcionamento do evento click no lado do servidor asp.net. O que finalmente funcionou e teve um bom suporte para diferentes navegadores foi renderizar o botão em uma tag div. O div pode estar oculto e fora do caminho do evento de clique do asp.net.
Usando o controle
Como um derivado do controle de botão normal, as funções de PleaseWaitButton são basicamente as mesmas. Ele usa três propriedades adicionais para gerenciar a exibição de mensagens ou imagens "Aguarde" quando o botão é clicado.
Por favor, aguardeTexto
Esta é a mensagem de texto do lado do cliente exibida e, se presente, substituirá o botão quando ele for clicado.
Por favor, aguardeImagem
Este é o arquivo de imagem (como uma imagem gif animada) que é exibido e, se presente, substituirá o botão quando ele for clicado. Este atributo se tornará o atributo src na tag .
Por favorAguardeTipo
Um dos valores de enumeração PleaseWaitTypeEnum: TextOnly, ImageOnly, TextThenImage ou ImageThenText. Ele controla o layout de mensagens e imagens.
Abaixo está um exemplo de arquivo .aspx que demonstra um PleastWaitButton com PleaseWaitText e PleaseWaitImage definidos.
<%@ Idioma da página="C#" %>
<%@ Registrar TagPrefix="cc1" Namespace="JavaScriptControls"
Assembly="Por favorWaitButton" %>