关于UpdatePanel和页面刷新的问题

今天做了一个ajax.net的东西,虽然实现了功能,但是无意间发现了一个小问题,原本以为做有什么问题了,后来发现这个问题很有意思,放出来看看!

这是个两级下来框的例子:

Code
asp:UpdatePanel ID="UpdatePanel1" runat="server">
        
<ContentTemplate>
        
<asp:DropDownList ID="dpdCateslst" runat="server" AutoPostBack=true 
            onselectedindexchanged
="dpdCateslst_SelectedIndexChanged"></asp:DropDownList>     
        
<asp:DropDownList ID="dpdchilds" runat="server"></asp:DropDownList>
        
</ContentTemplate>
        
<Triggers>
        
<asp:AsyncPostBackTrigger ControlID="dpdCateslst" />
        
</Triggers>        
        
</asp:UpdatePanel>

 

以上是页面的代码,后台的代码我想 不写也知道了。

现在我的问题出现了:

当我第一次加载页面的时候,可以像我认为的那样来实现无刷新的效果,这个很好。
但是问题是,当我选择了一级下拉框的时候,选择一次,然后我点击页面右键:刷新,然后我再来选择一次一级框,最后再点击一次右键刷新,问题出来了,我发现又出现了“重试”的按钮,试验了n次后,还是找不到问题的原因所在,后来我在发现第二次选择下拉框的时候叶面积的确是刷新了一次,那么“重试”的按钮是必然会出现的。

原先觉得是页面加载的问题,在无刷新的状态下,点击刷新页面,会造成页面重新加载。但是后来一想ms的控件都是基于viewstate的,那么说明UpdatePanel的信息也写在viewstate中,只是由ScriptManager来处理这些页面信息,然后读出来,整个过程是js来处理的,所以是无刷新的,但是“重试”以后,页面是怎样的一个状态我就搞不懂了。。。

 

posted @ 2009-03-12 17:59  Longkin  阅读(996)  评论(0编辑  收藏  举报