ScriptManager 和 UpdatePanel 控
件联合使用可以实现页面异步局
部更新的效果。其中的 UpdatePanel 就是设置页面中异步局部更新区域,它必须
依赖于 ScriptManager 存在,因为 ScriptManger 控件提供了客户端脚本生成与管
理 UpdatePanel 的功能。
几个重要的属性:
ScriptManager 控件的 EnablePartialRendering 属性:true-实现页面的异步局
部更新;false-实现全页面的刷新。
UpdatePanel 控件的 RenderMode 属性:InLine-UpdatePanel 控件被解析成
HTML 的<span>标记;Block-UpdatePanel 控件被解析成 HTML 控件的<DIV>。
UpdatePanel 控件的 UpdateMode 属性:Always-UpdatePanel 页面上任何一
处发生的回发操作都会产生页局部更新;Conditional-只在特定的情况下才产页面
的回发,如执行 UpdatePanel 控件的 update()方法或在指定的触发器的操作下。
UpdatePanel 控件的 ChildAsTrigger 属性:指示 UpdatePanel 内部控件引起的
回发是否产生当前 UpdatePanel 控件的局部更新。如果 UpdateMode 设为 Always
的话,那 ChildAsTrigger 局性必须设为 True,否则运行出错。
一、UpdatePanel 内部的控件引起的回发,来更新当前 UpdatePanel 内部的
控件内容:
1. 向 页 面 中 加 入 ScriptManager 、 UpdatePanel 控 件 和 一 个 Label 控 件
(Label2)。
2.在 UpdatePanel 中加入一个 Button、一个 Label(Label1)。
3. 双 击 Button 在 事 件 处 理 程 序 中 写 入 下 列 代 码 : Label1.Text =
DateTime.Now.ToString();
4. 在 Page_Load 事 件 中 写 入 下 列 代 码 : Label2.Text =
DateTime.Now.ToString();
5.运行页面,发现每次点击按钮都会产生异步局步刷新,只有 Label1 的内
容发生更改,页面上的 Label2 时间没有发生更改。
代码如下:
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server"
ChildrenAsTriggers="True">
<ContentTemplate>
<asp:Label ID="Label1" runat="server"></asp:Label>
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"
Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
protected void Button1_Click(object sender, EventArgs e)