2009-11-30 6 views
0

J'ai un bouton appelé btnSubmit où je définis l'attribut d'action de formulaire à une URL comme ça.Attribut d'action de formulaire ne fonctionne pas - devez cliquer deux fois sur le bouton de soumission

Protected Sub btnSubmit_Click(ByVa.... 

    Form.Attributes.Add("action", "http://now.eloqua.com/e/f2.aspx") 

End Sub 

Cela fonctionne mais pour une raison quelconque cela ne fonctionne qu'après avoir cliqué sur le bouton la deuxième fois. Pourquoi est-ce et comment puis-je résoudre ce problème?

J'utilise ASP.NET 3.5 avec VB.NET (code C# est aussi très bien)

Ce que je veux vraiment faire faire un peu de code sur la soumettre, puis comme Soons que tout est terminé, réglez l'attribut d'action de formulaire où il doit envoyer les données de formulaire à un autre emplacement à cette URL.

Merci d'avance!

Répondre

2

Fabian a raison.

Votre code s'exécute côté serveur, après le premier envoi. Pour faire ce que vous voulez, vous devez émettre du javascript en utilisant le scriptmanager, qui s'exécute dans le client, car tout cela doit se produire avant que l'envoi ne se produise en premier lieu.

Utilisez Page.ClientScript.RegisterClientScriptBlock() pour émettre un bloc de script avec une fonction appropriée qui effectue vos tâches, puis définit l'attribut d'action du formulaire. Appelez cette fonction à partir du bouton à l'aide de l'attribut OnClientClick.

1

Cela ne fonctionne pas la première fois car le formulaire sur lequel les attributs sont ajoutés est déjà rendu.

0

La première fois que vous cliquez sur le bouton, il définit l'attribut forme, la deuxième fois que vous cliquez dessus, il est de soumettre le formulaire que vous avez modifié la première fois autour de ...

Vous pouvez définir la forme attribut à un autre point dans le cycle de vie de la page.

Questions connexes