2009-06-16 21 views
1

我遇到了FireFox和ASP.NET UpdatePanel的问题。 我在窗体中有一个复选框和一个UpdatePanel。当我检查复选框时,进入UpdatePanel的asp:面板应该可见。Firefox和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> 

一切正常,但我没有刷新页面,而复选框被选中后。如果发生这种情况,复选框休息复选框页面不会使更多回发到服务器。萤火虫显示该网页得到回应,当我验证其内容时,我有错误500,表示该网页的信息已损坏。所有这一切只发生在Firefox中。在IE8和谷歌浏览器中一切正常。

有没有人有一个想法我该如何避免这种情况?这是Firefox的错误? 所有的怪异的comportment继续,直到我进入URL文本框。即使我让F5没有任何反应。 F5和输入网址有什么区别?他们不应该有相同的结果?

非常感谢。

回答

0

您是否尝试过在UpdatePanel中放置复选框“cbMoreOptions”?

放置在UpdatePanel ContentTemplate部分中,并为CheckBox设置一个AsyncPostBackTrigger。

0

我们很久以前就遇到了这个问题,它是firefox使用内存中缓存来存储页面状态的方式,这种方式混乱了ASP.NET处理VIEWSTATE隐藏字段的方式。检查缓存是否打开了您的aspx页面并将其禁用。

编辑:这是一个link,详细解释它。

0

F5和输入到URL有什么区别?他们 不应该有相同的结果?

如果您在地址栏中输入回车,它会执行GET请求,即您输入的网页生命周期为!IsPostBack。 当你点击F5时,我发现Firefox会重复上一个请求,所以如果最后一个请求是POST,它会重复。这就是为什么你的页面停留在一个错误的状态。如果第一次回发导致错误(复选框'checkedChanged),则击中F5将会重复该错误。因此,没有,结果不一样。

我没有任何文件来备份此声明,但这是我观察到的。如果任何人都可以指出来源,我会很高兴看到它。