8 votes

Le recaptcha disparaît pendant le PostBack

J'ai vu quelques autres messages ici concernant l'utilisation de Recaptcha avec ASP.net UpdatePanels, mais je n'ai pas encore trouvé de réponse à mon problème.

Voici mon code ASPX :

<asp:UpdatePanel ID="updRecaptcha" runat="server" UpdateMode="Always">
 <ContentTemplate>
  <recaptcha:RecaptchaControl ID="btnrecaptcha" runat="server" Theme="clean" PrivateKey"<%$ Resources: General, CaptchaPrivateKey %>" PublicKey="<%$ Resources: General, CaptchaPublicKey %>" />        
  <asp:Label ID="recaptchaerror" runat="server" style="color: Red;"/>
 </ContentTemplate>
</asp:UpdatePanel>

Le contrôle Recaptcha se trouve donc dans un contrôle utilisateur qui utilise plusieurs contrôles de validation .Net (par exemple, RequiredFieldValidator). Je dois valider le Recaptcha et les contrôles ASP.net avant de permettre au processus de se poursuivre.

Si l'une des validations échoue (Recaptcha ou .Net), le contrôle Recaptcha disparaît. En regardant la source HTML, le contrôle ne se charge pas du tout après le postback, même si je demande à l'UpdatePanel de se mettre à jour.

Je ne peux pas recharger complètement la page car tout cela apparaît comme une superposition en haut de la page et il y a d'autres champs de formulaire sur la page derrière.

Aidez-moi !

Editar:

En C#, lorsque le Recaptcha échoue, j'appelle ce code :

ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "InvalidRecaptcha", "alert('Recaptcha Failed');Recaptcha.reload();alert('Recaptcha Reloaded');", true);

Les deux alertes se déclenchent mais le Recaptcha ne se charge toujours pas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X