2010-07-05 7 views
1

C'est très difficile à expliquer et donner un code basé dessus. Donc, je vous remercie maintenant si vous essayez même d'aiderPerdre la majeure partie du contenu de la page lors de la deuxième publication

J'ai un formulaire avec un panneau de mise à jour. Cela enregistre le formulaire et le valide. Renvoyer une chaîne errorMessage de tout champ invalide tel que "Le champ xyz est un champ obligatoire, le champ abc doit être une quantité"

Lorsque j'entre une date incorrecte, il affiche bien et affiche le texte dans un div au bas de la page que le panneau de mise à jour vise à mettre à jour. (et seulement cela il devrait changer)

Cela fonctionne mais la deuxième fois que je frappe dit (dis je saisis des données invalides deux fois) le formulaire complet disparaîtra en me laissant avec juste la bannière du site et le message d'erreur qui est revenu.

Ive a essayé commentant l'ensemble du code postal arrière de sorte que le bouton ne fait quoi que ce soit, mais il a toujours le même problème (bien sûr cette fois-ci wouldnt ont un message d'erreur créé)

donc Je ne peux que penser que c'est quelque chose à voir avec le panneau de mise à jour lui-même et comment cela fonctionne, mais j'ai regardé cela depuis des siècles et n'ai plus d'idées!

Répondre

0

Je trouve la question (après environ 5 heures), mais ne comprennent pas. Le UpdatePanel qui a été disppearing avait l'UpdatePanel j'utilisais en dehors de celui-ci

</ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnTabs" /> 
    </Triggers> 
</asp:UpdatePanel> 
<asp:PlaceHolder runat="server" ID="phldActionButtons" /> 

L'espace réservé a l'intérieur de la commande avec mon panneau de mise à jour que j'utilisais. Le panneau de mise à jour de fermeture que vous pouvez voir était le contenu du formulaire

En déplaçant simplement l'espace réservé à l'intérieur du contenttemplate, il semble avoir résolu le problème. (Je ne sais pas pourquoi il cacherait/enlève un panneau de mise à jour entier qui seul la relation était que c'était la forme qu'il validait sur le postback!

1

Très difficile de répondre à cette question sans un exemple de code. Jetez un oeil à ce que votre codebehind fait à votre page et sachez que dans votre panneau de mise à jour, votre publication est en fait un rappel AJAX. Votre page est à nouveau exécutée, mais seuls les contenus du panneau de mise à jour sont rendus et seuls les mêmes contenus sont supposés être mis à jour côté client.

Souvent, lorsque j'ai des problèmes sur le second postback ou post-scriptum, c'est que le code d'initialisation est en cours d'exécution quand je ne le souhaite pas.

Mon conseil est de regarder où vous vérifiez if (Page.IsPostback) et if (Page.IsCallback) et de jouer avec ceux-ci. Peut-être votre besoin de protéger votre code Serverside qui gère le formulaire dans le bloc suivant:

if (Page.IsCallback) 
{ 

} 
0

J'ai juste lutté avec un problème semblable Au bout d'environ 5 heures, j'ai décidé de essayez ceci:

UpdateMode="Conditional" 

pour mes UpdatePanel et il a cessé de provoquer une seconde postback !!!

Questions connexes