Comment executer le code avant le postbackURL [Résolu]

dialvb 20 Messages postés jeudi 1 juillet 2010Date d'inscription 3 avril 2011 Dernière intervention - 23 août 2010 à 18:25 - Dernière réponse : dialvb 20 Messages postés jeudi 1 juillet 2010Date d'inscription 3 avril 2011 Dernière intervention
- 24 août 2010 à 19:42
bonjour,
Je bosse sous visual web dellopper 2008 express edition.
on peut mettre du code derrière un bouton mais quand celui-ci a un PostBackURL de rempli; au click bouton il va à la nouvelle page désignée mais n'execute pas le code.
Hors je veux qu'il execute le code PUIS qu'il aille à l'URL.

1/Soit ya une proprièté que je ne sais pas modifier
2/Soit je dois faire deux clicks (je veux pas de cette solution)

3/Soit je met pas de posbackURL dans les propriétés et je simule un deuxième click aprés mon code:
Protected Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click

Lignes de code à executer
button1.PostBackUrl = "~/logout.aspx"
button1_click()
End Sub
Comme ca il execute le code, initialise l'URL et au 2eme click simulé il va à l'URL.

Seulement button1_click() ne fonctionne pas il me réclame un objet et un EventArgs.

button1_click(sender as objet,e as system.EventArgs)

J'ai cherché partout à m'en filer des migraines, pas moyen de savoir quoi mettre dans les parenthèses, pas d'exemples trouvé qui fonctionne.
quelqu'un peut me dire quoi y mettre? Merci
Afficher la suite 

Votre réponse

3 réponses

Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 23 août 2010 à 23:48
+3
Utile
Pourquoi ne pas faire simplement :

Private Sub Button1_Click (sender As object, e As System.EventArgs) Handles Button1.Click
    'Le code ici     
    Response.Redirect("L'URL en question", True)  
End Sub


Autre chose, quand j'ai vu le titre j'étais mort de rire, mais c'est rien de méchant. Le PostBack c'est l'action de renvoyer la page au serveur pour que le code y soit exécuter, donc si tu exécute un code (VB/C# coté serveur, pas un code script coté client), il se produira toujours un PostBack avant, le code n'est jamais exécuté coté client, logique car il faudrait avoir le Framework pour ouvrir un site asp.Net ce qui ne serait pas très portable.

La propriété Postbackurl du bouton redirige peut être coté client, mais c'est un contrôle serveur donc il faut regarder le code HTML généré par celui-ci pour le savoir(la tout de suite j'ai un peu la flemme...)

@+

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Mayzz
cs_Galain 1270 Messages postés mardi 11 novembre 2003Date d'inscription 24 juillet 2013 Dernière intervention - 23 août 2010 à 22:04
0
Utile
Salut dialvb

A tester mais sans certitude

Sender est l'objet qui demande l'évènement ( ici button1) et e est l'événement lui-même ( exactement EventArgs est la classe
de base des classes gérant les données des événements)

Protected Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click

Lignes de code à executer
button1.PostBackUrl = "~/logout.aspx"
button1_click(button1,e)
End Sub

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
dialvb 20 Messages postés jeudi 1 juillet 2010Date d'inscription 3 avril 2011 Dernière intervention - 24 août 2010 à 19:42
0
Utile
MErci pour vos explications et réponse.

Pour ce qui est du: button1_click(button1,e)
test1:

Protected Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click

Lignes de code à executer
button1.PostBackUrl = "~/logout.aspx"
button1_click(button1,e)
End Sub

Ya encore un truc qui gadouille.
Ca me fait une boucle infinie sur les lignes à executer. (ligne qui ne font pas de rebouclage seules).
test2:

Protected Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click

Lignes de code à executer
button2.PostBackUrl = "~/logout.aspx"
button2_click(button2,e)
End Sub

alors là, les lignes de code s'executent bien mais le click simulé ne se fait pas (il ne change pas de page sauf si moi je clique sur le bouton 2)
Trop bizare, surtout le rebouclage dans mon code

En revanche pour le : Response.Redirect("L'URL en question", True)

Private Sub Button1_Click (sender As object, e As System.EventArgs) Handles Button1.Click
'Le code ici
Response.Redirect("~/logout.aspx",True)
End Sub

Là, le code s'execute et il change de page tout seul dès le premier clic.

dernière solution: acceptée.
Commenter la réponse de dialvb

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.