Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Countdown e Postback
lunedì 17 gennaio 2011 - 09.02
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 2.0
|
Visual Studio 2005
|
Javascript
mattekr
Profilo
| Newbie
16
messaggi | Data Invio:
lun 17 gen 2011 - 09:02
Ciao a tutti, ho questa pagina che si occupa di fare un conto alla rovescia per tener conto di un timeout
<div id="countbox"></div>
<asp:Button ID="Button1" runat="server" Text="Button" />
<asp:RadioButton ID="RadioButton1" runat="server" />
<asp:RadioButton ID="RadioButton2" runat="server" />
<asp:RadioButton ID="RadioButton3" runat="server" />
<asp:TextBox ID="txtFlag" runat="server"></asp:TextBox>
<script type="text/javascript">
dateFuture = new Date;
dateFuture.setMinutes(dateFuture.getMinutes() + 2);
function GetCount(){
dateNow = new Date();
amount = dateFuture.getTime() - dateNow.getTime();
delete dateNow;
if(amount < 0){
//document.getElementById('countbox').innerHTML="Now!";
window.location="Timeout.aspx";
}
else{
days=0;hours=0;mins=0;secs=0;out="";
amount = Math.floor(amount/1000);
days=Math.floor(amount/86400);
amount=amount%86400;
hours=Math.floor(amount/3600);
amount=amount%3600;
mins=Math.floor(amount/60);
amount=amount%60;
secs=Math.floor(amount);
//if(days != 0){out += days +" day"+((days!=1)?"s":"")+", ";}
//if(days != 0 || hours != 0){out += hours +" hour"+((hours!=1)?"s":"")+", ";}
if(days != 0 || hours != 0 || mins != 0){out += mins +((mins!=1)?" minuti":" minuto")+", ";}
out += secs +" secondi";
document.getElementById('countbox').innerHTML=out;
setTimeout("GetCount()", 1000);
}
}
window.onload=GetCount;
</script>
Il problema è che premendo il pulsante (postback) il conto alla rovescia riparte da capo. Avete qualche idea di come poter fare per impedirlo?
Grazie, ciao
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 17 gen 2011 - 10:08
>Ciao a tutti, ho questa pagina che si occupa di fare un conto
>alla rovescia per tener conto di un timeout
Ciao
>Il problema è che premendo il pulsante (postback) il conto alla
>rovescia riparte da capo. Avete qualche idea di come poter fare
>per impedirlo?
Questo perchè sei sul client, e quindi ogni volta che aggiorni la pagina, alla onload, viene ripristinato lo stato iniziale.
Se vuoi persistere lo stato a cui sei arrivato, devi salvare a server ogni tick (ad esempio in session, o nel viewstate) e ad ogni ricaricamento vai a leggere il valore da server.
>Grazie, ciao
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
mattekr
Profilo
| Newbie
16
messaggi | Data Invio:
lun 17 gen 2011 - 11:32
Ciao, grazie mille della risposta.
Intendi qualcosa del tipo
if (variabile =null)
dateFuture = new Date;
dateFuture.setMinutes(dateFuture.getMinutes() + 2);
variabile=dateFuture
else
dateFuture = new Date(variabile);
end if
dove variabile è il viewstate o il session?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 17 gen 2011 - 11:34
>Ciao, grazie mille della risposta.
>Intendi qualcosa del tipo
>if (variabile =null)
>dateFuture = new Date;
>dateFuture.setMinutes(dateFuture.getMinutes() + 2);
>variabile=dateFuture
>else
>dateFuture = new Date(variabile);
>end if
>dove variabile è il viewstate o il session?
Sì, qualcosa di simile. Puoi anche fare un cookie, scegli tu, se ti serve il time su server, devi andare a server, se ti serve un timer client con il salvataggio solamente, puoi usare un cookie.
attenzione alla condizione, l'uguaglianza è ==
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !