2009-06-16 6 views
1

J'ai un problème avec FireFox et ASP.NET UpdatePanel. J'ai dans un formulaire une case à cocher et un UpdatePanel. Lorsque je coche la case, un panneau asp: qui est dans le UpdatePanel devrait être visible.Firefox et Updatepanel

<asp:CheckBox ID="cbMoreOptions" runat="server" Text="plus d'options" AutoPostBack="True" OnCheckedChanged="cbOptions_CheckedChanged" /> 

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
    <asp:Panel ID="Panel1" runat="server" Visible="false"> 
     sssssssss 
    </asp:Panel> 
    </ContentTemplate> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID="cbMoreOptions" EventName="CheckedChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 

Tout fonctionne correctement, mais pas après avoir actualisé la page pendant que la case est cochée. Si cela se produit, la case à cocher reste vérifiée la page ne rend plus la publication au serveur. Le firebug montre que la page reçoit une réponse et quand je vérifie son contenu j'ai une erreur 500 qui dit que l'information de la page est corrompue. Tout cela ne se passe que dans Firefox. Dans IE8 et Google Chrome tout va bien.

Est-ce que quelqu'un a une idée comment puis-je éviter cela? C'est un bug de Firefox? Tout le comportement étrange continue jusqu'à ce que je fasse entrer dans la zone de texte URL. Même si je fais F5, rien ne se passe. Quelle est la différence entre F5 et entrer dans l'URL? Ils ne devraient pas avoir le même résultat?

Merci beaucoup.

Répondre

0

Avez-vous essayé de placer la case "cbMoreOptions" dans le UpdatePanel?

Placez-vous dans la section UpdatePanel ContentTemplate et définissez AsyncPostBackTrigger pour CheckBox.

0

Nous avons eu ce problème il y a longtemps et c'était la façon dont firefox utilise le cache en mémoire pour stocker l'état d'une page qui gâche la façon dont ASP.NET gère le champ caché VIEWSTATE. Vérifiez si la mise en cache est activée pour vos pages aspx et désactivez-la.

Editer: Voici un link qui l'explique en détail.

0

Quelle est la différence entre F5 et entrer dans l'URL? Ils ne devraient pas avoir le même résultat?

Si vous appuyez sur Entrée dans la barre d'adresse, il ne une requête GET, à savoir que vous entrez le cycle de vie de votre page avec !IsPostBack. Lorsque vous appuyez sur F5, j'ai observé que firefox répètera la dernière requête, donc si cette dernière requête était un POST, elle le répètera. C'est pourquoi votre page reste dans un état bogué. Si la première publication a provoqué une erreur (la case à cocher 'checkedChanged'), appuyer sur F5 répètera simplement cette erreur.

Ainsi, pas, ils n'ont pas le même résultat.

Je n'ai aucune documentation pour sauvegarder cette instruction, mais c'est ce que j'ai observé. Si quelqu'un peut pointer une source, je serai heureux de le voir.