文章教程

10.3ASP.NETAJAX服务器端控件扩展

8/31/2020 9:37:14 PM 人评论 次浏览

10.3 ASP.NET AJAX服务器端控件扩展

ASP.NET AJAX扩展程序控件增强了标准ASP.NET Web服务器控件的客户端功能。通过使用扩展程序控件,可以扩展标准的Web服务器控件(比如TextBox控件、Button控件),从而给用户提供更丰富的体验。

ASP.NET AJAX扩展程序控件也可以添加到Visual Studio 2010中,使用方法同标准服务器控件。

通过将扩展程序控件的TargetControlID属性设置为要扩展的Web服务器控件的ID,可将扩展程序控件附加到该服务器控件。

可以使用下面的方法将扩展程序控件添加到“设计”视图中的Web服务器控件:

(1)将扩展程序控件拖到Web服务器控件上。只能将扩展程序控件放到支持扩展程序控件的Web服务器控件上。当用户将扩展程序控件拖到设计图面时,指针会提示是否可以将该扩展程序控件放到Web服务器控件上。

(2)右击该Web服务器控件,在弹出菜单中单击“添加扩展程序”或选择“按钮任务”智能标记,单击“添加扩展程序”命令。

10.3.1 安装ASP.NET AJAX Control Toolkit

AJAX Control Toolkit是针对ASP.NET的一个AJAX控件集,它是由CodePlex开源社区和Microsoft共同开发的一个ASP.NET AJAX扩展控件包,包含几十种基于ASP.NET AJAX的、提供某一专一功能的服务端控件。它构建在ASP.NET 2.0 AJAX Extensions之上,是Web应用程序中最强大的扩展控件集之一。

AJAX Control Toolkit的安装非常简单,可以在线下载其安装包直接安装,也可以通过插件NuGet(New Get)进行管理安装。NuGet是一个专门管理插件的程序,通过NuGet可以下载安装很多功能强大的插件。

NuGet的安装可以通过VS 2010工具里面的扩展管理器,如图10-19所示,联机搜索并直接安装,如图10-20所示。

alt

图10-19 扩展管理器

alt

图10-20 搜索NuGet并安装

安装完NuGet后,就可以使用NuGet管理NuGet程序包来进行AJAX Control Toolkit的安装,步骤如下。

(1)创建或打开ASP.NET项目。

(2)在菜单中选择“工具”→“库程序包管理器”→“管理解决方案的NuGet程序包”命令,如图10-21所示,或者在“解决方案资源管理器”处右击,在弹出菜单中选择“管理NuGet程序包(N)…”命令,如图10-22所示。

alt

图10-21 工具菜单中打开管理解决方案的NuGet程序包

alt

图10-22 解决方案中打开管理解决方案的NuGet程序包

(3)打开“管理NuGet程序包”对话框,在右上角上输入“AJAX”后,就可搜索到“AJAXControlToolkit”,如图10-23所示。

alt

图10-23 选择AJAXControlToolkit版本

(4)选择“AJAXControlToolkit”并单击旁边出现的“安装”按钮,开始安装,并同意将其安装在当前项目中,即可安装完毕,如图10-24所示。

alt

图10-24 安装AJAXControlToolkit

(5)安装完毕后在网站的Bin目录下会看到跟AJAXControlToolkit相关的程序集和资源文件,如图10-25所示。

alt

图10-25 AJAXControlToolkit相关的程序集

(6)右击工具箱,在弹出的菜单中选择“添加选项卡”命令,设置名称,如“AJAX Control Toolkit”,然后在“AJAX Control Toolkit”选项上右击,在弹出菜单中选择“选择项”命令,弹出“选择工具箱”对话框,如图10-26所示。

alt

图10-26 选择工具箱

(7)单击“浏览”按钮,浏览找到本项目Bin文件夹下的AJAXControlToolkit.dll,单击“打开”按钮,如图10-27所示。

alt

图10-27 添加AJAXControlToolkit.dll文件

(8)添加完成后,在“AJAX Control Toolkit”选项卡上出现很多控件,如图10-28所示。

alt

图10-28 AJAX Control Toolkit控件箱

从图10-28可以看出,AJAX Control Toolkit的控件集越来越多,在最新的版本中,已经有50多个。

10.3.2 使用ASP.NET AJAX扩展控件

AJAX Control Toolkit中有很多实用的扩展控件,如传文件的AJAXFileUpload、日历控件扩展控件CalendarExtender、命令控件扩展控件ConfirmButtonExtender、自动完成功能的AutoCompleteExtender等。在使用这些扩展控制之前,必须先了解ToolkitScriptManager控件,如图10-29所示。

alt

图10-29 ToolkitScriptManager控件

ToolkitScriptManager控件和ScriptManager控件的功能类似,在ASP.NET 4.0中,因为涉及AJAX Control Toolkit的控件,所以最好使用ToolkitScriptManager代替ScriptManager,以提升脚本下载效率,减少出错几率。

注意

用户在使用所有的AJAX Control Toolkit控件集的控件时都需要在页面中添加ToolKitScriptManager控件,否则,浏览器会报错。


1.CalendarExtender控件的使用

CalendarExtender控件主要用来扩展TextBox(文本框)的功能,实现在文本框中单击时,弹出日期面板,选择日期后将日期返回到文本框中。

它的声明语法如下。

alt

从声明中可以看出,它的主要属性如下。

alt TargetControlID:该属性设置当哪个控件获取焦点时,弹出日期面板并将日期值返回到该控件中。

alt Format:通过该属性,设置返回日期的格式。

alt PopupButtonID:设置当单击哪个控件时,弹出日期面板,此控件不接受返回值。

alt CssClass:设置日期的CSS样式。

下面通过示例来演示CalendarExtender的使用。

(1)新建一个网站,并添加一个窗体Default.aspx,在窗体上放置两个TextBox和一个ToolkitScriptManager控件,另外,放置一个ImageButton控件,如图10-30所示。

alt

图10-30 前台控件

(2)在TextBox1控件的任务面板上,选择“添加扩展程序”命令,如图10-31所示,在打开的“扩展程序向导”对话框中,选择“CalendarExtender”,如图10-32所示,单击“确定”按钮。

alt

图10-31 添加扩展程序

alt

图10-32 选择“CalendarExtender”

(3)在TextBox2的控件上也选择添加扩展程序CalendarExtender,并设置TextBox2CalendarExtender控件的属性PopupButtonID为ImageButton的ID:Image1,如图10-33所示。

alt

图10-33 设置TextBox2CalendarExtender的属性

设置好后,前台代码如下所示。

alt

(4)运行页面,单击第一个文本框时,如图10-34所示,当单击Image1时,激活了TextBox2_CalendarExtender控件,显示如图10-35所示。

alt

图10-34 显示效果1

alt

图10-35 显示效果2

2.AutoCompleteExtender控件的使用

该控件主要辅助TextBox控件的输入,实现自动完成功能,比如,我们经常上网搜索的时候,出现的一些主要关键词提示,在Google搜索引擎搜索网页时,输入一个字符,如“a”,然后搜索框会自动弹出可能的提示结果,如图10-36所示。

alt

图10-36 自动完成示例

它的声明语法如下。

alt

AutoCompleteExtender控件常用属性如下。

alt TargetControlID:指定将被辅助完成自动输入的控件ID,这里的控件只能是TextBox。

alt ServiceMethod:指出提供服务的方法名。

alt ServicePath:指出提供服务的Web服务路径,若不指出,则ServiceMethod表示本页面对应的方法名。

alt MinimumPrefixLength:指出开始提供提示服务时,TextBox控件应有的最小字符数,默认为3。

alt CompletionSetCount:显示的条数,默认为10。

alt EnableCaching:是否在客户端缓存数据,默认为true。

alt CompletionInterval:从服务器读取数据的时间间隔,默认为1000,单位为毫秒。

注意

要实现文本框自动完成,必须打开浏览器的自动完成功能。


下面通过示例演示AutoCompleteExtender控件的使用。

(1)新建一个网站,并添加一个窗体Default.aspx,在窗体上放置一个TextBox和一个ToolkitScriptManager控件。

(2)在TextBox控件上,单击“显示智能标记”,在“TextBox任务”面板上,选择“添加扩展程序”,如图10-37所示。

alt

图10-37 显示智能标记

(3)在打开的“扩展程序向导”对话框中,选择“AutoCompleteExtender”,然后单击“确定”按钮,如图10-38所示。

alt

图10-38 选择“AutoCompleteExtender”

(4)添加Web服务。在“解决方案资源管理器”中,右击“网站名称”,在弹出的菜单中选择“添加新项”命令,在“添加新项”对话框中选择:Web服务,文件名默认WebService.asmx,如图10-39所示。

alt

图10-39 添加Web服务

(5)添加以后,在项目中生成一个App_Code目录和WebService.asmx文件,打开webservice.cs文件,代码如下。

alt

默认情况下,语句[System.Web.Script.Services.ScriptService]是被注释掉的,这里把注释符号去掉,因为需要在客户端调用,然后写入方法GetCompletionList,方法如下。

alt

GetCompletionList是为AutoCompleteExtender控件提供服务的方法,它必须完全满足以下3个条件。

alt 方法的传入参数类型必须为string和int;

alt 两个传入参数名必须为prefixText和count;

alt 方法的返回类型为string[]。

(6)设置AutoCompleteExtender控件的属性,主要设置ServiceMethod和ServicePath属性为用户所添加的服务文件和方法,设置后,AutoCompleteExtender控件的属性如下所示。

alt

(7)保存页面,运行效果如图10-40所示,当在文本框中输入3个字符后,就会出现提示信息,如图10-40所示。

alt

图10-40 运行效果

在这个示例中,我们添加了Web服务的文件:WebService.asmx,并编写了Web服务的函数:GetCompleteList。

3.ConfirmButtonExtender控件的使用

ConfirmButtonExtender是一个捕获按钮单击事件的扩展控件或按钮类型的事件,如LinkButton,ImageButton等。在按钮的事件被执行前先确认是否要继续,会弹出一个确认对话框。

它的声明语法如下。

alt

该控件常用的属性如下。

alt TargetControlID:需要显示确认信息的按钮ID值。

alt ConfirmText:确认对话框中提示信息。

alt OnClientCancel:单击“取消”时执行的事件,为空时不执行。

下面通过示例演示ConfirmButtonExtender的使用。

(1)新建一个网站,并添加一个窗体Default.aspx,在窗体上放置一个Button和一个ToolkitScriptManager控件。

(2)在Button控件的任务面板上,选择“添加扩展程序”,在打开的“扩展程序向导”对话框中,选择“ConfirmButtonExtender”,如图10-41所示,单击“确定”按钮。

alt

图10-41 选择“ConfirmButtonExtender”

(3)设置ConfirmButtonExtender控件的属性,设置完后,代码如下。

alt

(4)保存,运行该页面,当单击“Button”按钮时,弹出所设置的信息,如图10-42所示。

alt

图10-42 运行效果

4.ListSearchExtender控件的使用

ListSearchExtender控件主要用于对列表中的内容进行快速搜索定位,它扩展ListBox或DropDownList控件,使其拥有快捷键查找功能,它的声明语法如下。

alt

主要属性如下。

alt TargetControlID:拥有快捷键查找功能的下拉控件ID。

alt PromptText:下拉控件得到焦点时显示的提示文字。

alt PromptCssClass:提示文字的CSS。

alt PromptPosition:提示文字的位置,Top(默认),Bottom。

下面通过示例演示ListSearchExtender控件的使用。

(1)新建一个网站,并添加一个窗体Default.aspx,在窗体上放置一个ListBox和一个ToolkitScriptManager控件。

(2)在ListBox控件的任务面板上,选择“添加扩展程序”,在打开的“扩展程序向导”对话框中,选择“ListSearchExtender”,如图10-43所示,单击“确定”按钮。

alt

图10-43 选择ListSearchExtender

(3)给ListBox控件添加选项,添加后,前台代码如下。

alt

(4)保存,运行该页,单击ListBox后输入a,列表自动定位在以“a”开头的选项上,如图10-44所示。

alt

图10-44 运行效果

教程类别