lunedì 6 luglio 2009

Translator English Italian

ASP.net: aggiungere un messaggio di conferma su ImageButton e LinkButton

I controlli Button di Asp.net hanno due proprietà OnClick e OnClientClick utilizzabili per gestire l'evento click rispettivamente lato server (postback) e lato client.
Capita spesso di dover chiedere la conferma dell'azione legata al bottone prima che venga compiuta. Ad esempio se abbiamo un bottone "DELETE" vogliamo essere sicuri che l'utente voglia cancellare l'elemento in questione e non abbia premuto per errore il bottone.
Per fare ciò, basta inserire una confirm nell'azione del OnClientClick come nell'esempio seguente:
<asp:LinkButton  Text="Click Me"  runat="server"
OnClick="server_method" OnClientClick="return confirm('Confermi la tua azione?');" />

In questo modo se l'utente risponde affermativamente alla confirm, essa ritorna un valore true e ASP inoltra il postback al server, altrimenti nessun postback verrà inoltrato.
Un errore che io stesso ho commesso, è stato quello di non prestare troppa attenzione a quella return prima del confirm. L'omissione di quella return comporta l'invio del postback al server sempre e comunque anche se l'utente risponde negativamente alla richiesta di conferma.
Ad esempio nel seguente codice:
<script type='text/javascript'>
function checkSomething() {
if a == b returntrue
elsereturnfalse
};
</script>

......

<asp:LinkButton  Text="Click Me"  runat="server"
OnClick="server_method" OnClientClick="return checkSomething();" />

l'omissione della return fà in modo che il check non abbia nessun effetto e il postback verrà sempre effettuato.


Nessun commento:

Posta un commento