首页 新闻 会员 周边

ajax的刷新问题

0
悬赏园豆:15 [已关闭问题]

个位大虾,帮我看看:

   为什么我用了 UpdatePanel 套住一个button ,

点击Button还总是页面刷新。

    关键代码是这样:

     <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                                            <ContentTemplate>
                                         <asp:Button ID="btnupdate" runat="server" CssClass="inputbutton"  Text="维护" onclick="btnupdate_Click" />
                                              </ContentTemplate>
                                            </asp:UpdatePanel>

还有我的是VS08,SCRIPTMANAGER已经放在页面上了

ITguigui的主页 ITguigui | 初学一级 | 园豆:105
提问于:2009-11-22 17:36
< >
分享
其他回答(2)
0

部分页面呈现

1、ASP.NET 页面支持部分页面呈现的能力受到以下因素的控制:

2、UpdatePanel控件的UpdateMode属性:Always-UpdatePanel页面上任何一处发生的回发操作都会产生页局部更新;Conditional-只在特定的情况下才产页面的回发,如执行UpdatePanel控件的update()方法或在指定的触发器的操作下。

刷新 UpdatePanel 内容

启用部分页呈现后,控件可执行一个回发来更新整个页,也可执行异步回发来更新一个或多个 UpdatePanel 控件的内容。控件是否导致异步回发并更新 UpdatePanel 控件视以下情况而定:

  • 如果将 UpdatePanel 控件的 UpdateMode 属性设置为 Always,则每次从页执行回发时都会更新 UpdatePanel 控件的内容。回发包括来自其他 UpdatePanel 控件所包含的控件的异步回发,也包括来自 UpdatePanel 控件未包含的控件的回发。

  • 如果将 UpdateMode 属性设置为 Conditional,则会在以下情况下更新 UpdatePanel 控件的内容:

    • 显式调用 UpdatePanel 控件的 Update 方法时。

    • UpdatePanel 控件嵌套在另一个 UpdatePanel 控件中并且更新父面板时。

    • 通过使用 UpdatePanel 控件的 Triggers 属性定义为触发器的控件导致回发时。在这种情况下,该控件显式触发面板内容的更新。该控件可以位于与触发器关联的 UpdatePanel 控件的内部或外部。

    • ChildrenAsTriggers 属性设置为 true 并且 UpdatePanel 控件的子控件导致回发时。嵌套的 UpdatePanel 控件的子控件不会导致更新外部 UpdatePanel 控件,除非将它们显式定义为触发器。

不允许同时将 ChildrenAsTriggers 属性设置为 false 并且将属性 UpdateMode 设置为 Always,这会引发异常。

UpdatePanel 控件执行异步发布时,它会添加自定义 HTTP 头。一些代理会移除此自定义 HTTP 头。如果发生此情况,则服务器会将请求作为常规回发进行处理,这会引发客户端错误。若要解决此问题,请在执行异步发布时插入自定义窗体字段。然后检查服务 器代码中的头或自定义窗体字段。

UpdatePanel 用法

可以使用多个 UpdatePanel 控件来单独更新不同的页区域。第一次呈现包含一个或多个 UpdatePanel 控件的页后,会呈现所有 UpdatePanel 控件的所有内容,并会将这些内容发送到浏览器。在随后执行异步回发时,根据面板设置以及各面板的客户端或服务器逻辑的不同,可能不会更新所有 UpdatePanel 控件的内容。

此外,还可以在以下情况下使用 UpdatePanel 控件:

  • 在用户控件中。

  • 在母版页和内容页上。

  • 嵌套在其他 UpdatePanel 控件中。

  • 在模板化控件(如 GridViewRepeater 控件)内部。

可以以声明方式或编程方式添加 UpdatePanel 控件。

可以以编程方式添加 UpdatePanel 控件,但不能以编程方式添加触发器。若要创建类似触发器的行为,可以将页上的控件注册为异步回发控件。可以通过调用 ScriptManager 控件的 RegisterAsyncPostBackControl 方法来执行此操作。然后,可以创建一个为响应异步回发而运行的事件处理程序,并在该处理程序中调用 UpdatePanel 控件的 Update 方法。


http://msdn.microsoft.com/zh-cn/library/system.web.ui.updatepanel.aspx

http://msdn.microsoft.com/zh-cn/library/system.web.ui.scriptmanager.aspx
邀月 | 园豆:25475 (高人七级) | 2009-11-22 21:23
0


首先,ScriptManager 控件的 EnablePartialRendering 属性必须为 true

由于UpdatePanel默认的UpdateMode是Always,如果页面上有一个局部更新被触发,则所有的UpdatePanel都将更新,你要想实现局部刷新需要把UpdateMode设置为Conditional。

persialee | 园豆:3217 (老鸟四级) | 2009-11-23 00:08
0

MagicAjax在项目里可以运用,比较简单

花椒大料 | 园豆:205 (菜鸟二级) | 2009-11-23 00:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册