Redirection automatique après écoulement d'un timer

Résolu
vmasson Messages postés 26 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 1 octobre 2009 - 8 avril 2005 à 11:54
vmasson Messages postés 26 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 1 octobre 2009 - 1 oct. 2009 à 13:26
Bonjour tout le monde.
Alors voila je dois faire une redirection automatique depuis une page sur une autre.
Pour ce faire, j'utilise un Timer.

C'est à dire j'arrive sur ma page.
Au chargement de ma page je démarre le timer.
Dans l'évènement Fin_timer je fais ma redirection.
Mais ca marche pas je comprends pas pourquoi. J'ai l'impression que ça tourne en rond dans le code.

Voilà mon code.

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.Timer_valid_enr.Start()

End Sub



Private Sub Timer_valid_enr_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer_valid_enr.Elapsed

Me.Timer_valid_enr.Stop()
Me.Response.Redirect("Mapage")

End Sub

Merci d'avance

z.·Z¯`·- ViNZ -·Z¯`·.z
A voir également:

15 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
8 avril 2005 à 13:19
non ca tourne pas en rond, mais Asp.net tourne en mode deconnecté, une
fois que la requete est finit le serveur ne connait plus le client ...
donc l'event elapsed sera jamais atteint car le page_load sera finit
avant.



Le but du jeu est donc d'utiliser js pour faire ca.

<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
3
vmasson Messages postés 26 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 1 octobre 2009
8 avril 2005 à 14:08
Ben justement si il l'atteint. En tout cas quand je regarde en mode debug pas à pas, j'arrive dans l'évènement Elapsed.

Mais ça me fait comme si la page se rechargeait a cause d'un postback.
Du coup j'ai mis le filtre:


If
Not Page.IsPostBack
Then

Me.Timer_valid_enr.Start()

Me.Timer_valid_enr.AutoReset =
False

End
If

Après 5 secondes (durée de mon Timer) je rentre bien dans l'évènement Elapsed mais mon redirect ne se fait pas. Je ne comprends pas.

Sinon je v aussi regarder avec JavaScript, mais je suis sure qu'on peut le faire avec ASP.NET mais il y un truc qui m'échappe.

Si tu vois quoi dis le moi, et merci pour la réponse.

z.·Z¯`·- ViNZ -·Z¯`·.z
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
8 avril 2005 à 14:26
non, on peut pas le faire coté asp.net tu peux pas forcer le postback d'une page !!!



Si ton event est appellé c'est que ta fonction dure plus de 5 secondes.



pour le redirect rajoute l attribut false a la fin.



response.redirect("tapage.aspx", false) ca peut marcher, meme si je comprend pas ce que tu fais :p

<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
bamphi Messages postés 50 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 2 mai 2007
21 déc. 2005 à 18:29
Est-ce possible de réaliser une REDIRECTION AUTOMATIQUE (après qqs secondes)
en ASP3 ou y-a-t'il un script en JS équivalent. Merci pour le code
Bamphi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vmasson Messages postés 26 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 1 octobre 2009
22 déc. 2005 à 10:44
Alors finalement j'ai utilisé un code JavaScript que tu intègres dans la partie html de ton form. Je l'ai mis à la fin de ma page après la balise <Form/>



<Script language="JavaScript">
redirect(); //Appel de la fonction

//Code de la Fonction
function redirect(){
setTimeout("document.location = 'Mapage' ,3000); //3000 ms donc 3s
}

<Script/>

Voila bon code!!!!
z.·Z¯`·- ViNZ -·Z¯`·.z
0
bamphi Messages postés 50 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 2 mai 2007
22 déc. 2005 à 12:07
Sympa et rapide ! Grand merci
Bamphi
0
vmasson Messages postés 26 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 1 octobre 2009
22 déc. 2005 à 14:14
Oups je viens de me rendre compte que j'ai fais une petite erreur de syntaxe.
La sytaxe correcte est la suivante:

<Script language="JavaScript">
redirect(); //Appel de la fonction

//Code de la Fonction
function redirect(){
setTimeout("document.location = 'Mapage'" ,3000); //3000 ms donc 3s
}
<Script/>

Il manquait la deuxième guillemet pour le premier paramètre de setTimeout.
Voilà bon coding!!!

z.·Z¯`·- ViNZ -·Z¯`·.z
0
bamphi Messages postés 50 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 2 mai 2007
22 déc. 2005 à 17:54
J'ai mal présenter ma question !

Est-ce possible d'intégrer ton script dans une page html ou asp (mais pas .net)
je travaille en asp3.0 et non en aspx.

Je dois donc rediriger (après qqs secondes) vers la page : index.htm
Merci de tes lumières et conseils

Bamphi
0
vmasson Messages postés 26 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 1 octobre 2009
23 déc. 2005 à 09:08
Ce code marche dans une page html sure, quand à une page asp3.0 je peux pas te dire g directement commencé asp par .NET.et donc si tu veux aller sur la page index.htm il faut écrire ça:

<Script language="JavaScript">
redirect(); //Appel de la fonction

//Code de la Fonction
function redirect(){
setTimeout("document.location = 'index.htm'" ,3000); //3000 ms donc 3s
}
<Script/>

Rajoute ce code a la fin de ta page en html.

Bon coding.

z.·Z¯`·- ViNZ -·Z¯`·.z
0
bamphi Messages postés 50 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 2 mai 2007
23 déc. 2005 à 12:20
Ci-dessous, le code inséré dans la page et ... ça ne marche pas ! où est
l'erreur ? Merci de tes lumières.

------------------------------------------------------------------------

<html>
<head>
<Script language="JavaScript">
redirect(); //Appel de la fonction
//Code de la Fonction
function redirect(){
setTimeout("document.location = 'index.htm'" ,3000); //3000 ms donc 3s
}
<Script/>
</head>





</html>
0
vmasson Messages postés 26 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 1 octobre 2009
26 déc. 2005 à 14:24
Essaye de mette le code dans la balise BODY moi c'est la que je l'ai mis.
Ensuite dans ta fonction rajoute 2 alertes comme je l'ai mis dans le code.

<Script language="JavaScript">
redirect();
function redirect(){
alert('On rentre dans la focntion');
setTimeout("document.location = 'index.htm'" ,3000);
alert('Tout s est bien passé');
}
<Script/>

- Ces 2 alertes sont comme des message box en VB, elles te permettront de savoir si tu rentres bien dans ta fonction et si le code de ta fonction s'exécute correctement.

- En générale, on définit les variable en javascript dans la partie Head, ensuite on appelle les fonction un peu partout dans le code html. Et les fonctions sont souvent écrites a la fin du code mais dans la balise body (en tout cas d'après ce que j'ai pu voire sur le net car je suis pas un pro du javascript...)

- Ensuite vérifie aussi si ta page s'appelle bien index.htm et pas index.html par exemple.

- De mon côté je viens de tester ce code sur une page html et il marche. Il faut faire attention aussi que ta page qui contient ce code soit dans le même repertoire que la page index.htm, si elle est dans un autre dossier, il faut lui spécifier le chemin (ex : MonAutreDossier/index.htm).

Voila en espérant que mes explications te résulteront clair.
Bon coding

z.·Z¯`·- ViNZ -·Z¯`·.z
0
bamphi Messages postés 50 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 2 mai 2007
26 déc. 2005 à 18:51
OK et encore merci ... en espérant pourvoir un jour te renvoyer la balle
en vb6 ou asp
Cordialement
Bamphi
0
cs_lennynero58 Messages postés 12 Date d'inscription jeudi 22 février 2007 Statut Membre Dernière intervention 9 octobre 2009
1 oct. 2009 à 12:38
lennynero58
Bjr vmasson

Je suis novice et j'ai intégré ton code dans une page intitulée envoimail.php qui s'ouvre après envoi d'un formulaire sur mon adresse mail.
Dans ton code j'ai mis l'adresse de la page d'accueil index.php mais quand je teste en ligne pas de redirection?
j'ai mis ton code à la fin de ma page sur http://www.jlm-creaweb.fr/envoimail.php
meric à toi si tu peux m'aider.

cordialement lenny
0
vmasson Messages postés 26 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 1 octobre 2009
1 oct. 2009 à 13:22
Salut, quand je vais voir ta page http://www.jlm-creaweb.fr/envoimail.php je suis bien redirigé au bout de 5 secondes sur http://www.jlm-creaweb.fr/.

J'ai testé sous IE8 et Firefox...

Ou est le problème ??

z.·Z¯`·- ViNZ -·Z¯`·.z
0
vmasson Messages postés 26 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 1 octobre 2009
1 oct. 2009 à 13:26
Autant pour moi, je viens de voir que tu utilises la méthode Refresh(). C'est une autre alternative.

Ah ce compte là, il peut être sympa d'en faire profiter tout le monde, et de nous éviter de passer du temps sur des problèmes résolus.

@+

z.·Z¯`·- ViNZ -·Z¯`·.z
0
Rejoignez-nous