Evitar dois cliques no controle
Aqui está uma tarefa rotineira, porém, não encontramos muita documentação sobre isso quando estamos começando com a programação em ASP.NET. Saber controlar os PostBacks é essencial para o desenvolvedor, então, como impedir que um postback ocorra?
Simples! Basta associar uma rotina javascript ao click do seu controle, que pode ser um botão, imagebutton ou o que quer que seja, e realizar o retorno do javascript com o valor de falso.
Primeiro, associamos uma função Javascript ao nosso controle, isso pode ser feito no Page_load ou em qualquer outra rotina de inicialização da página, assim:
protected void Page_Load(object sender, EventArgs e)
{
ImageButton1.Attributes.Add("onclick",
"javascript:EvitaCliqueDuploAprimorado();");
}
Depois na nossa rotina javascript, realizamos o tratamento desejado. Aqui, eu aproveitei e tratei para que o botão não seja clicado mais do que uma vez, evitando assim, uma chamada adicional ao servidor com o mesmo conteúdo enviado anteriormente.
<script type="text/javascript">
var controlaEnvio = false;
function EvitaCliqueDuploAprimorado() {
if (!controlaEnvio) {
controlaEnvio = true;
return controlaEnvio;
}
else {
alert('Você já clicou nesse botão, aguarde até que a sua' +
'requisição seja processada pelo nosso servidor!');
return false;
}
}
</script>
Bem, é isso, abraços… ah, tive que forçar a quebra de linha do código-fonte para que ficasse legível!!
Chilá!@!