2010-12-08 38 views
0

i ont une minuterie sur ma page ASPX commeasp: minuterie avec filetage

<asp:Timer ID="timUpdate" runat="server" Enabled="false" Interval="5000" OnTick="timUpdate_Tick"/> 

et j'exécuter différents threads sur la page pour compter le nombre de mots dans un document. chaque fil pour une page individuelle.

Au chargement de la page, je démarre ma minuterie. Il fonctionne très bien pour la première tique et déclenche l'événement

protected void timUpdate_Tick(object sender, EventArgs e) 
{ 
    if(db.value()==true) 
     Response.Redirect("abc.aspx"); 
    } 

j'ai vérifié que pendant le débogage, il fonctionne très bien, mais après que ma minuterie est activée, l'intervalle est la même, mais il ne se déclenche pas le event.what peut être problème possible

Répondre

0

Vous définissez Enable = false dans l'aspx, donc je suppose que vous l'activez dans le code. C'est possible si vous avez désactivé viewstate qu'après la publication, la propriété n'a pas persisté.

Vous pouvez vérifier cela en réactivant la propriété Enabled dans votre méthode:

protected void timUpdate_Tick(object sender, EventArgs e) 
{ 
    timUpdate.Enabled= true; 
    if (db.value()==true) 
     Response.Redirect("abc.aspx"); 
} 

Ce n'est pas une bonne solution, mais il pourrait fonctionner. Vous devriez probablement autoriser la persistance de l'état des contrôles, ou activer le minuteur sur chaque demande de page (si la condition requise est remplie).