71 messaggi dal 26 aprile 2004
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
10 messaggi dal 13 ottobre 2010
Ciao
non riesci ad evitare la postback?
altrimenti forse ti e' utile http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.aspx

:D
Modificato da matteo.buferli il 13 gennaio 2011 15.32 -
71 messaggi dal 26 aprile 2004
Grazie, per la risposta purtroppo non posso evitare il post back per come è configurata la pagina.

Ho visto che quello che mi hai consigliato è presente per Framework 4 e 3.5, io utilizzo il 2.0.
13 messaggi dal 01 giugno 2006
considera che per il framework 2.0
puoi tranquillamente installare
AJAX Extensions ed
AJAX toolkit, dove nel primo trovi UPDATEPANEL.

Il problema è il postback.

In teoria, per non modificare il codice js che hai già scritto, potresti fare una chiamata Ajax, dove il server ti ricorda il valore ultimo del countdown prima del postback, in modo da non ripartire sempre dallo stesso numero ad ogni postback.

Se invece sei disposto ad effettuare modifiche al codice....
mmm.... fammi pensare un po....

Potresti provare con il TIMER.
http://www.aspitalia.com/articoli/asp.net2/ajax-server-extensions.aspx?page=3
71 messaggi dal 26 aprile 2004
Ciao grazie, della risposta.

Sono dispostissimo a cambiare il codice java, non posso però rinunciare al postback.

Mi chiedevo: non esiste la possibilità in java di salvare il valore in una variabile di sessione e poi riprenderlo dopo il postback

ad esempio:

if (variabile =null)
dateFuture = new Date;
dateFuture.setMinutes(dateFuture.getMinutes() + 2);
variabile=dateFuture
else
dateFuture = new Date(variabile);
end if

....

Che ne dite?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.