asp.net ajax中用到了几个dll文件,这些可以从网上下载。http://ajax.asp.net站点下可以找到相关的下载。这其中包括:System.Web.Extensions.dll、System.Web.Extensions.Design.dll、AjaxControlkit.dll、AjaxExtensionsToolBox.dll、Microsoft.Web.Preview.dll。其中,System.Web.Extensions.dll与AjaxControlKit.dll这两个组件是最重要的。在将这些组件下载到本地之后,需要将其引入到所需要的项目中。
System.Web.Extensions.dll中所包含的控件:
●ScriptManager
● ScriptManagerProxy
●Timer
●UpdatePanel
●UpdateProgress
AjaxControlToolkit.dll中所包含的控件(扩展了现有的一些控件,同时提供了一些独立的Ajax控件):
● Accordion
● AccordionPane
●AlwaysVisibleControlExtender
●AnimationExtender
●AutoCompleteExtender
●CalendarExtender
●CascadingDropDown
●CollapsiblePanelExtender
●ConfirmButtonExtender
●DragPanelExtender
●DropDownExtender
●DropShadowExtender
●DynamicPopulateExtender
●FilteredTextBoxExtender
●HoverMenuExtender
●ListSearchExtender
●MaskedEditExtneder
●MaskedEditValidator
●ModalPopupExtender
●MutuallyExclusiveCheckBoxExtender
●NoBot
●NumericUpDownExtender
●PaginBulletedListExtender
●PasswordStrength
●PopupControlExtender
●Rating
●ReorderList
●ResizableControlExtender
●RoundedCornersExtender
●SliderExtender
●SlideShowExtender
●TabContainer
●TextBoxWatermarkExtender
●ToggleButtonExtender
●ToolkitScriptManager
●UpdatePanelAnimationExtender
●ValidatorCalloutExtender
二、web.config文件配置
在项目中引用了asp.net ajax组件后,还需要对项目的web.config文件进行配置。web.config文件的配置,请参见:
"Asp.Net 配置"选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
-->
三、调用服务器端方法
(1)调用没有参数的服务器端方法
[System.Web.Services.WebMethod]
publicstaticstring ServerDate()
{
returnDateTime.Now.ToShortDateString();
}
asp.net ajax调用服务器方法
function GetServerDate()
{
Loading();
PageMethods.ServerDate(OnSuccess);
}
function Loading()
{
document.getElementById("ServerDate").innerText="Loading";
}
function OnSuccess(Message)
{ document.getElementById("ServerDate").innerText=Message; } (2)调用需要参数的服务器方法
[System.Web.Services.WebMethod]
publicstaticstring ServerDate()
{
returnDateTime.Now.ToShortDateString();
}
[System.Web.Services.WebMethod]
publicstaticString YourName( string firstName , string lastName )
{
return firstName + " " + lastName;
}
asp.net ajax调用服务器方法
function GetServer(firstName, lastName) {
Loading();
if (arguments.length != 2) {
PageMethods.ServerDate(OnSuccess);
}
else {
PageMethods.YourName(firstName, lastName, OnSuccess); //调用带有参数的服务器方法
}
}
function Loading() {
document.getElementById("ServerDate").innerText = "Loading";
}
function OnSuccess(Message) {
document.getElementById("ServerDate").innerText = Message;
}
说明:
(a)需要调用的服务器端方法必须以System.Web.Services.WebMethod特性进行标记
(b)需要调用的服务器端方法必须为公共静态方法 (c)需要调用的服务器端方法应写在.aspx页面(或对应的后台代码文件)中,不应写在用户控件中
(3)调用WebService
asp.net ajax调用WebService
function GetMachineName(IsUTC) {
Loading();
Ajax_Test.sample.ServerMachineName(OnSucess);
//Ajax_test为WebService的名命空间
//sample为类名
//ServerMachineName为所要调用的方法的名称
}
function Loading() {
document.getElementById("ServerMachineName").innerText = "正在与服务器进行交互...";
}
function OnSucess(ServerMachineName) {
document.getElementById("ServerMachineName").innerText = ServerMachineName;
}
(4)关于错误处理
在调用服务端方法或WebService时,服务器端可能会发生异常!在客户端,这些异常分为服务器错误与服务器超时。
(a)服务器错误
[System.Web.Services.WebMethod] publicstaticfloat ServerDate(int x, int y) { return x / y; } asp.net ajax调用服务器方法
function GetServer(x, y) {
Loading();
//OnSuccess与OnError是两个回调函数
//OnSuccess表示当调用成功所要执行的回调函数
//OnError表示当调用不成功时所要执行的加调函数
PageMethods.ServerDate(x, y, OnSuccess, OnError);
}
function Loading() {
document.getElementById("ServerDate").innerText = "Loading";
}
//调用成功时的回调函数
function OnSuccess(Message) {
document.getElementById("ServerDate").innerText = Message;
}
//发生错误时的回调函数,如果所调用的服务器方法在调用时发生错误,会有一个error对象被返回
//这个对象就是客户端的Sys.Net.WebServiceError对象
function OnError(ErrorHander) {
document.getElementById("ServerDate").innerText = '服务器发生错误!';
var ErrorMessage = '是否超时' + ErrorHander.get_timedOut() + '\n错误信息为:' + ErrorHander.get_message() + '\n异常名称为:' + ErrorHander.get_exceptionType() + '\n错误位置为:' + ErrorHander.get_stackTrace();
alert(ErrorMessage);
}
说明:当服务器发生错误时,会为客户端返回一个异常实例,该异常类型为Sys.Net.WebServiceError。该类包含以下几个属性:
●timedOut:布尔值,表示服务器是否超时
●message:异常信息描述
●exceptionType:服务器端异常的类型名称
●stackTrace:异常位置
(b)服务器超时
[System.Web.Services.WebMethod]
publicstaticfloat ServerDate(int x, int y)
{
return x / y; } [System.Web.Services.WebMethod] publicstaticfloat TimeOutTest() { //方法会延迟十秒
System.Threading.Thread.Sleep(10000);
return 0;
}
asp.net ajax调用服务器方法
function GetServer() {
Loading();
//设置超时时间
PageMethods.set_timeout(2000);
//OnSuccess与OnError是两个回调函数
//OnSuccess表示当调用成功所要执行的回调函数
//OnError表示当调用不成功时所要执行的加调函数
PageMethods.TimeOutTest(OnSuccess, OnError);
}
function Loading() {
document.getElementById("ServerDate").innerText = "Loading";
}
//调用成功时的回调函数
function OnSuccess(Message) {
document.getElementById("ServerDate").innerText = Message;
}
//发生错误时的回调函数,如果所调用的服务器方法在调用时发生错误,会有一个error对象被返回
//这个对象就是客户端的Sys.Net.WebServiceError对象
function OnError(ErrorHander) {
document.getElementById("ServerDate").innerText = '服务器发生错误!';
var ErrorMessage = '是否超时' + ErrorHander.get_timedOut() + '\n错误信息为:' + ErrorHander.get_message() + '\n异常名称为:' + ErrorHander.get_exceptionType() + '\n错误位置为:' + ErrorHander.get_stackTrace();
alert(ErrorMessage);
}
System.Web.Extensions.dll中所包含的控件:
●ScriptManager
● ScriptManagerProxy
●Timer
●UpdatePanel
●UpdateProgress
AjaxControlToolkit.dll中所包含的控件(扩展了现有的一些控件,同时提供了一些独立的Ajax控件):
● Accordion
● AccordionPane
●AlwaysVisibleControlExtender
●AnimationExtender
●AutoCompleteExtender
●CalendarExtender
●CascadingDropDown
●CollapsiblePanelExtender
●ConfirmButtonExtender
●DragPanelExtender
●DropDownExtender
●DropShadowExtender
●DynamicPopulateExtender
●FilteredTextBoxExtender
●HoverMenuExtender
●ListSearchExtender
●MaskedEditExtneder
●MaskedEditValidator
●ModalPopupExtender
●MutuallyExclusiveCheckBoxExtender
●NoBot
●NumericUpDownExtender
●PaginBulletedListExtender
●PasswordStrength
●PopupControlExtender
●Rating
●ReorderList
●ResizableControlExtender
●RoundedCornersExtender
●SliderExtender
●SlideShowExtender
●TabContainer
●TextBoxWatermarkExtender
●ToggleButtonExtender
●ToolkitScriptManager
●UpdatePanelAnimationExtender
●ValidatorCalloutExtender
二、web.config文件配置
在项目中引用了asp.net ajax组件后,还需要对项目的web.config文件进行配置。web.config文件的配置,请参见:
"Asp.Net 配置"选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
-->
三、调用服务器端方法
(1)调用没有参数的服务器端方法
[System.Web.Services.WebMethod]
publicstaticstring ServerDate()
{
returnDateTime.Now.ToShortDateString();
}
asp.net ajax调用服务器方法
function GetServerDate()
{
Loading();
PageMethods.ServerDate(OnSuccess);
}
function Loading()
{
document.getElementById("ServerDate").innerText="Loading";
}
function OnSuccess(Message)
{ document.getElementById("ServerDate").innerText=Message; } (2)调用需要参数的服务器方法
[System.Web.Services.WebMethod]
publicstaticstring ServerDate()
{
returnDateTime.Now.ToShortDateString();
}
[System.Web.Services.WebMethod]
publicstaticString YourName( string firstName , string lastName )
{
return firstName + " " + lastName;
}
asp.net ajax调用服务器方法
function GetServer(firstName, lastName) {
Loading();
if (arguments.length != 2) {
PageMethods.ServerDate(OnSuccess);
}
else {
PageMethods.YourName(firstName, lastName, OnSuccess); //调用带有参数的服务器方法
}
}
function Loading() {
document.getElementById("ServerDate").innerText = "Loading";
}
function OnSuccess(Message) {
document.getElementById("ServerDate").innerText = Message;
}
说明:
(a)需要调用的服务器端方法必须以System.Web.Services.WebMethod特性进行标记
(b)需要调用的服务器端方法必须为公共静态方法 (c)需要调用的服务器端方法应写在.aspx页面(或对应的后台代码文件)中,不应写在用户控件中
(3)调用WebService
asp.net ajax调用WebService
function GetMachineName(IsUTC) {
Loading();
Ajax_Test.sample.ServerMachineName(OnSucess);
//Ajax_test为WebService的名命空间
//sample为类名
//ServerMachineName为所要调用的方法的名称
}
function Loading() {
document.getElementById("ServerMachineName").innerText = "正在与服务器进行交互...";
}
function OnSucess(ServerMachineName) {
document.getElementById("ServerMachineName").innerText = ServerMachineName;
}
(4)关于错误处理
在调用服务端方法或WebService时,服务器端可能会发生异常!在客户端,这些异常分为服务器错误与服务器超时。
(a)服务器错误
[System.Web.Services.WebMethod] publicstaticfloat ServerDate(int x, int y) { return x / y; } asp.net ajax调用服务器方法
function GetServer(x, y) {
Loading();
//OnSuccess与OnError是两个回调函数
//OnSuccess表示当调用成功所要执行的回调函数
//OnError表示当调用不成功时所要执行的加调函数
PageMethods.ServerDate(x, y, OnSuccess, OnError);
}
function Loading() {
document.getElementById("ServerDate").innerText = "Loading";
}
//调用成功时的回调函数
function OnSuccess(Message) {
document.getElementById("ServerDate").innerText = Message;
}
//发生错误时的回调函数,如果所调用的服务器方法在调用时发生错误,会有一个error对象被返回
//这个对象就是客户端的Sys.Net.WebServiceError对象
function OnError(ErrorHander) {
document.getElementById("ServerDate").innerText = '服务器发生错误!';
var ErrorMessage = '是否超时' + ErrorHander.get_timedOut() + '\n错误信息为:' + ErrorHander.get_message() + '\n异常名称为:' + ErrorHander.get_exceptionType() + '\n错误位置为:' + ErrorHander.get_stackTrace();
alert(ErrorMessage);
}
说明:当服务器发生错误时,会为客户端返回一个异常实例,该异常类型为Sys.Net.WebServiceError。该类包含以下几个属性:
●timedOut:布尔值,表示服务器是否超时
●message:异常信息描述
●exceptionType:服务器端异常的类型名称
●stackTrace:异常位置
(b)服务器超时
[System.Web.Services.WebMethod]
publicstaticfloat ServerDate(int x, int y)
{
return x / y; } [System.Web.Services.WebMethod] publicstaticfloat TimeOutTest() { //方法会延迟十秒
System.Threading.Thread.Sleep(10000);
return 0;
}
asp.net ajax调用服务器方法
function GetServer() {
Loading();
//设置超时时间
PageMethods.set_timeout(2000);
//OnSuccess与OnError是两个回调函数
//OnSuccess表示当调用成功所要执行的回调函数
//OnError表示当调用不成功时所要执行的加调函数
PageMethods.TimeOutTest(OnSuccess, OnError);
}
function Loading() {
document.getElementById("ServerDate").innerText = "Loading";
}
//调用成功时的回调函数
function OnSuccess(Message) {
document.getElementById("ServerDate").innerText = Message;
}
//发生错误时的回调函数,如果所调用的服务器方法在调用时发生错误,会有一个error对象被返回
//这个对象就是客户端的Sys.Net.WebServiceError对象
function OnError(ErrorHander) {
document.getElementById("ServerDate").innerText = '服务器发生错误!';
var ErrorMessage = '是否超时' + ErrorHander.get_timedOut() + '\n错误信息为:' + ErrorHander.get_message() + '\n异常名称为:' + ErrorHander.get_exceptionType() + '\n错误位置为:' + ErrorHander.get_stackTrace();
alert(ErrorMessage);
}