segunda-feira, 28 de abril de 2008

ASP.NET - Implementando um UpdateProgress

Todos que programas para web sabemos que temos de lidar com uma coisa que foge do nosso controle: a impaciência do usuário. Vários cliques em um botão, visto que apenas um era necessário. Visando resolver este problema, a Microsoft criou no ASP.Net um controle chamado UpdateProgress. Porém este controle não funciona tão bem quanto o esperado.
Para resolver este problema, consegui bolar uma solução, com a ajuda de 2 amigos.
Primeiramente, deve-se saber que esta solução foi implementada em um projeto que possuia PageMaster. E toda a lógica funciona na PageMaster. Caso você não utilize uma PageMaster, terá de adptar o código.

Antes da tag form, deverá ser incluída 2 divs. No meu caso, elas ficaram exatamente após a tag body e antes da form.

A outra parte é um script feito em JavaScript.

E a última são 2 classes de css.

Com isto, toda vez que é iniciada uma requisição, o script deixa a tela mais escura, coloca uma imagem (que eu consegui um gif na internet que fica girando...), e desabilita o form. Com isso, o usuário não consegue clicar em nada.

OBS: Apesar de o Visual Studio 2005 não reconhecer as tags "filter", "opacity" e uma função que é colocada no height da primeira div, eles são reconhecidos normalemente pelo IE.

Nenhum comentário: