220 likes | 651 Views
第 12 章 使用 ASP.NET AJAX. 本章内容: Ajax 和 ASP.NET AJAX ,使用 ASP.NET AJAX 基本控件(包括 ScriptManager 、 UpdatePanel 、 UpdateProgress 和 Timer 控件), ASP.NET AJAX 控件工具包( ASP.NET AJAX Control Toolkit )。 本章重点: Ajax 和 ASP.NET AJAX , ASP.NET AJAX 基本控件的常用属性和方法, ASP.NET AJAX 控件工具包中常用的扩展控件及使用方法。.
E N D
第12章 使用ASP.NET AJAX 本章内容:Ajax和ASP.NET AJAX,使用ASP.NET AJAX基本控件(包括ScriptManager、UpdatePanel、UpdateProgress和Timer控件),ASP.NET AJAX控件工具包(ASP.NET AJAX Control Toolkit)。 本章重点:Ajax和ASP.NET AJAX,ASP.NET AJAX基本控件的常用属性和方法,ASP.NET AJAX控件工具包中常用的扩展控件及使用方法。
12.1 Ajax和ASP.NET AJAX • 12.1.1 Ajax概述 • 1.Ajax的主要内容 • Ajax主要包括以下内容。 • ① 使用XHTML + CSS来表示信息。 • ② 使用JavaScript操作DOM(Document Object Model,文档对象模型)。 • ③ 使用XML和XSLT(EXtensible Stylesheet Language Transformations,扩展样式表转换)进行数据交换及相关操作。 • ④ 使用XmlHttpRequest对象与Web服务器进行异步数据交换。 • ⑤ 使用JavaScript将各部分内容绑定在一起。 • 2.Ajax的实现原理 • 3.Ajax的主要优点
12.2 ScriptManager控件 • 12.2.1 ScriptManager的主要属性和方法
12.2.2 注册客户端脚本 • 1.使用RegisterClientScriptBlock方法 • RegisterClientScriptBlock方法是一个静态方法,用于动态地向网页中添加客户端脚本块。该方法的重载形式有以下两种: • public static void ScriptManager. RegisterClientScriptBlock(Control control, Type type, • string key, string script, bool addScriptTags) • 或者 • public static void ScriptManager. RegisterClientScriptBlock(Page page, Type type, • string key, string script, bool addScriptTags)
2.使用RegisterStartupScript方法 • RegisterStartupScript方法用于在UpdatePanel控件中注册启动时立即执行的JavaScript脚本块,是一种AutoRun类型的自启动脚本,类似于常用的<body onload="f()">中的f()函数。该方法的重载方式有如下两种: • public static void ScriptManager. RegisterStartupScript(Control control, Type type, • string key, string script, bool addScriptTags) • 或者 • public static void ScriptManager. RegisterStartupScript(Page page, Type type, • string key, string script, bool addScriptTags)
12.3 UpdatePanel控件 • 12.3.1 UpdatePanel控件的常用属性 • UpdatePanel控件常用的属性主要有以下4个。 • 1.Triggers属性 • 2.ChildrenAsTrigger属性 • 3.UpdateMode属性 • 4.ContentTemplate属性
例如,下列在“源”视图中书写的代码,可将一个按钮控件Button1和一个标签控件Label1放置在UpdatePanel1控件中:例如,下列在“源”视图中书写的代码,可将一个按钮控件Button1和一个标签控件Label1放置在UpdatePanel1控件中: • … • <aps:UpdatePanel ID="UpdatePanel1" runat="server"> • <ContentTemplate> • <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="确 定" /> • <asp:Label ID="Label1" runat="server Text="Label" /> • </ContentTemplate> • …
12.3.2 实现页面局部更新 • 1.局部更新 • 【例12-1】设计一个实现页面局部更新的简单程序。要求使用两个标签控件表示网页中的不同区域,执行更新时,只有指定的标签内容发生变化,在更新区域外的标签内容不变(没有进行更新)。
① 设计Web页面 • 新建一个ASP.NET网站,向页面中添加一个ScriptManager控件ScriptManager1,一个UpdatePanel控件UpdatePanel1,向UpdatePanel1控件中添加一个按钮控件Button1和一个标签控件Label1。在UpdatePanel控件的外面再添加一个标签控件Label2。 • 注意,Label1控件一定要添加到UpdatePanel1中,Button1放在任何位置都可以。在页面的源视图中应当看到如下所示的代码结构,标签Label1的声明语句必须包含在UpdatePanel控件的<ContentTemplate>和</ContentTemplate>标记对中。 • <asp:UpdatePanel ID="UpdatePanel1" runat="server"> • <ContentTemplate> • <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> • <asp:Button ID="Button1" runat="server" Text="Button" /> • </ContentTemplate> • </asp:UpdatePanel> • <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
② 编写事件代码 • 页面装入时执行的事件代码如下: • protected void Page_Load(object sender, EventArgs e) • { • this.Title = "使用AJAX技术局部更新页面"; • Button1.Text = "开始更新"; • Label1.Text = "页面加载时间:" + DateTime.Now; • Label2.Text = "页面加载时间:" + DateTime.Now; • } • Button1被单击时执行的事件代码如下: • protected void Button1_Click(object sender, EventArgs e) • { • Label1.Text = "更新时间:" + DateTime.Now; • Label2.Text = "更新时间:" + DateTime.Now; • }
2.有条件更新 • 【例12-2】UpdatePanel控件的Trigger属性使用示例。 • 3.使用多个UpdatePanel控件 • 【例12-3】在多个UpdatePanel控件中实现局部更新。本例中将页面划分为两个不同的UpdatePanel更新区域,减少了每次需要更新的数据量。
12.4 UpdateProgress控件 • 12.4.1 UpdateProgress控件的常用属性 • 1.AssociatedUpdatePanel属性 • 2.DisplayAfter属性 • 3.DynamicLayout属性 • 4.ProgressTemplate属性
12.4.2 使用UpdateProgress控件 • 【例12-4】使用UpdateProgress控件在页面更新时显示提示信息。程序运行时,首先显示如图12-9所示的页面。当用户单击“更换图片”按钮时,屏幕上将显示如图12-10所示的提示信息。比较一下图片,可以看到,提示信息并没有固定的页面位置,而是采用了动态显示的方法。
(3)编写事件代码 • 在所有事件过程之外声明静态整型变量: • static int i; • 页面装入时执行的事件代码如下: • protected void Page_Load(object sender, EventArgs e) • { • if (!IsPostBack) • { • Explain.Text = "UpdateProgress控件使用示例"; • Replace.Text = "更换图片"; • i = 1; • } • } • “更换图片”按钮被单击时执行的事件代码如下: • protected void Replace_Click(object sender, EventArgs e) • { • if (i == 1) • { • i = 2; • } • else • { • i = 1; • } • System.Threading.Thread.Sleep(2000); //为了清楚地看到提示信息,使运行暂停2秒 • ImageButton1.ImageUrl = "images/" + i.ToString() + ".jpg"; //轮换显示1.jpg和2.jpg • }
12.5 Timer控件 • 12.5.1 Timer控件的常用属性和事件 • 1.Interval属性 • 2.Enable属性 • 3.Tick事件
12.5.2 使用Timer控件 • 【例12-5】使用Timer控件实现图片自动播放。页面打开后,在图片框中每2秒自动切换显示的图片,程序运行效果如图12-11和图12-12所示。 • 程序设置步骤如下。
12.6 ASP.NET AJAX控件工具包 • 12.6.1 安装ASP.NET AJAX 控件工具包 • 12.6.2 使用ConfirmButtonExtender控件弹出确认对话框 • 1.ConfirmButtonExtender控件的常用属性 • 2.ConfirmButtonExtender控件使用示例
12.6.4 使用SlideShowExtender制作图片播放器 • 1.SlideShowExtender控件的常用属性
2.使用SlideShowExtender控件 • 【例12-8】使用SlideShowExtender控件制作一个具有自动播放、手动播放功能的图片播放器。
12.7 实训 • 实训目的 • 1)掌握ASP.NET AJAX基本控件的属性设置及使用方法,进一步理解页面局部更新的重要性,了解ASP.NET AJAX扩展控件的使用方法。 • 2)掌握Timer控件的主要属性、方法和事件,能设计出具有定时功能的应用程序。 • 实训内容