个位大虾,帮我看看:
为什么我用了 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已经放在页面上了
1、ASP.NET 页面支持部分页面呈现的能力受到以下因素的控制:
ScriptManager 控件的 EnablePartialRendering 属性必须为 true(默认值)。
页面上必须至少有一个 UpdatePanel 控件。
SupportsPartialRendering 属性必须是 true(默认值)。如果没有显式设置 SupportsPartialRendering 属性,则其值依浏览器功能而定。
启用部分页呈现后,控件可执行一个回发来更新整个页,也可执行异步回发来更新一个或多个 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 控件,但不能以编程方式添加触发器。若要创建类似触发器的行为,可以将页上的控件注册为异步回发控件。可以通过调用 ScriptManager 控件的 RegisterAsyncPostBackControl 方法来执行此操作。然后,可以创建一个为响应异步回发而运行的事件处理程序,并在该处理程序中调用 UpdatePanel 控件的 Update 方法。
首先,ScriptManager 控件的 EnablePartialRendering 属性必须为 true
由于UpdatePanel默认的UpdateMode是Always,如果页面上有一个局部更新被触发,则所有的UpdatePanel都将更新,你要想实现局部刷新需要把UpdateMode设置为Conditional。
MagicAjax在项目里可以运用,比较简单