Redirection automatique après écoulement d'un timer [Résolu]

Signaler
Messages postés
26
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
1 octobre 2009
-
vmasson
Messages postés
26
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
1 octobre 2009
-
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

15 réponses

Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
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
Messages postés
26
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
1 octobre 2009

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
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
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
Messages postés
50
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
2 mai 2007

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
Messages postés
26
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
1 octobre 2009

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
Messages postés
50
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
2 mai 2007

Sympa et rapide ! Grand merci
Bamphi
Messages postés
26
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
1 octobre 2009

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
Messages postés
50
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
2 mai 2007

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
Messages postés
26
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
1 octobre 2009

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
Messages postés
50
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
2 mai 2007

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>
Messages postés
26
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
1 octobre 2009

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
Messages postés
50
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
2 mai 2007

OK et encore merci ... en espérant pourvoir un jour te renvoyer la balle
en vb6 ou asp
Cordialement
Bamphi
Messages postés
12
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
9 octobre 2009

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
Messages postés
26
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
1 octobre 2009

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
Messages postés
26
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
1 octobre 2009

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