net 2.0使用ajax
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文件的配置,请参见:
http://hi.baidu.com/zhenghanzheng/blog/item/72d1c3c3ce385156b319a891.html。
<?xml version="1.0" encoding="utf-8"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
/Windows/Microsoft.Net/Framework/v2.x/Config 中
-->
<configuration>
<!--configSections节点,asp.net ajax所需要的配置-->
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings/>
<connectionStrings/>
<system.web>
<!--pages节点,asp.net ajax所需要的配置-->
<pages>
<controls>
<add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>
<add tagPrefix="asp" namespace="Microsoft.Web.UI" assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="Microsoft.Web.UI.Controls" assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="Microsoft.Web.UI.Compatibility" assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
</pages>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="false" />
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows" />
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<!--httpHandlers节点,asp.net ajax所需要的配置-->
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
<add verb="GET,HEAD,POST" path="*.asbx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<!--httpModules节点,asp.net ajax所需要的配置-->
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>
<!--system.webServer节点,asp.net ajax所需要的配置-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services. ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ASBXHandler" verb="GET,HEAD,POST" path="*.asbx" preCondition="integratedMode" type="System.Web.Script.Services. ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35"/>
</handlers>
</system.webServer>
</configuration>
三、调用服务器端方法
(1)调用没有参数的服务器端方法
<%@ Page Language="C#" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
[System.Web.Services.WebMethod]
public static string ServerDate()
{
return DateTime.Now.ToShortDateString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>asp.net ajax调用服务器方法</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server">
</asp:ScriptManager>
<script language="javascript" type="text/javascript">
function GetServerDate()
{
Loading();
PageMethods.ServerDate(OnSuccess);
}
function Loading()
{
document.getElementById("ServerDate").innerText="Loading";
}
function OnSuccess(Message)
{
document.getElementById("ServerDate").innerText=Message;
}
</script>
<input type="button" value="GetServerTime" onclick="GetServerDate()" />
</div>
<div id="ServerDate"></div>
</form>
</body>
</html>
(2)调用需要参数的服务器方法
<%@ Page Language="C#" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
[System.Web.Services.WebMethod]
public static string ServerDate()
{
return DateTime.Now.ToShortDateString();
}
[System.Web.Services.WebMethod]
public static String YourName( string firstName , string lastName )
{
return firstName + " " + lastName;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>asp.net ajax调用服务器方法</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server">
</asp:ScriptManager>
<script language="javascript" type="text/javascript">
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;
}
</script>
<input type="button" value="GetServerTime" onclick="GetServer()" />
<input type="button" value="GetYourName" onclick="GetServer('henry','yu')" />
</div>
<div id="ServerDate"></div>
</form>
</body>
</html>
说明:
(a)需要调用的服务器端方法必须以System.Web.Services.WebMethod特性进行标记
(b)需要调用的服务器端方法必须为公共静态方法
(c)需要调用的服务器端方法应写在.aspx页面(或对应的后台代码文件)中,不应写在用户控件中
(3)调用WebService
<%@ Page Language="C#" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>asp.net ajax调用WebService</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="sample.asmx"/>
</Services>
</asp:ScriptManager>
<input type="button" value="GetMachineName" onclick="GetMachineName()" />
<script language="javascript">
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;
}
</script>
</div>
<div id="ServerMachineName"></div>
</form>
</body>
</html>
(4)关于错误处理
在调用服务端方法或WebService时,服务器端可能会发生异常!在客户端,这些异常分为服务器错误与服务器超时。
(a)服务器错误
<%@ Page Language="C#" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
[System.Web.Services.WebMethod]
public static float ServerDate(int x, int y)
{
return x / y;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>asp.net ajax调用服务器方法</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server">
</asp:ScriptManager>
<script language="javascript" type="text/javascript">
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);
}
</script>
<input type="button" value="GetServerTime" onclick="GetServer(10,0)" />
</div>
<div id="ServerDate"></div>
</form>
</body>
</html>
说明:当服务器发生错误时,会为客户端返回一个异常实例,该异常类型为Sys.Net.WebServiceError。该类包含以下几个属性:
●timedOut:布尔值,表示服务器是否超时
●message:异常信息描述
●exceptionType:服务器端异常的类型名称
●stackTrace:异常位置
(b)服务器超时
<%@ Page Language="C#" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
[System.Web.Services.WebMethod]
public static float ServerDate(int x, int y)
{
return x / y;
}
[System.Web.Services.WebMethod]
public static float TimeOutTest()
{
//方法会延迟十秒
System.Threading.Thread.Sleep(10000);
return 0;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>asp.net ajax调用服务器方法</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server">
</asp:ScriptManager>
<script language="javascript" type="text/javascript">
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);
}
</script>
<input type="button" value="GetServerTime" onclick="GetServer()" />
</div>
<div id="ServerDate"></div>
</form>
</body>
</html>
net 2.0使用ajax的更多相关文章
- springmvc4.0配置ajax请求json格式数据
1.导入相关jar包:jackson-annotation-2.5.4.jar,jackson-core-2.5.4.jar,jackson-databind-2.5.4.jar. 2.spring- ...
- SSH(Struts 2.3.31 + Spring 4.1.6 + Hibernate 5.0.12 + Ajax)框架整合实现简单的增删改查(包含分页,Ajax 无刷新验证该用户是否存在)
软件152 余建强 该文将以员工.部门两表带领大家进入SSH的整合教程: 源码下载:http://download.csdn.net/detail/qq_35318576/9877235 SSH 整合 ...
- vue2.0的ajax
Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios ...
- thinkphp5.0调用ajax无刷新加载数据
控制器层那边就是调数据返回,这里不再赘述,视图层页面ajax部分写法如下 function shanchu(obj) { var code = $(obj).attr("code" ...
- thinkphp3.0中ajax的发送
系统支持任何的AJAX类库,Action类提供了ajaxReturn方法用于 AJAX调用后返回数据给客户端.并且支持JSON.XML和EVAL三种方式给客户端接受数据,通过配置DEFAULT_AJA ...
- servlet3.0 JQuary Ajax基本使用
servlet3.0 没有web.xml文件,需要使用注解进行配置. js: $(document).ready(function(){ $("#btn").click(funct ...
- asp.net core 2.0 api ajax跨域问题
API配置: services.AddCors(options => { options.AddPolicy("any", builder => { builder.W ...
- JSF 2.0 + Ajax hello world example
In JSF 2.0, coding Ajax is just like coding a normal HTML tag, it's extremely easy. In this tutorial ...
- struts-hibernate-ajax完成区县和街道级联下拉框功能(二补充使用json解析list结果集,ajax循环json层级处理)
针对<struts-hibernate-ajax完成区县和街道级联下拉框功能>进行补充,上一篇中,要在action中拼接JSON格式字符串,很容易手抖.直接用json处理一下转成json格 ...
随机推荐
- 触摸点为scrollview上的子控件时,scrollview不能滚动(iOS8)
现象:在iOS8上,scrollview上面布局了多行多列的button,滑动scrollview,如果当触摸点是在按钮上,scrollview不能滚动. 例如: 解决方法:设置scrollview的 ...
- GDI+创建Graphics对象的2种方式
1.this.CreateGraphics() // 调用控件的CreateGraphics()方法 2.在OnPaint事件中,PaintEventArgs类型的参数e对象的Graphi ...
- asp.net 发送邮件函数两则
using System.Net.Mail; using System.Text; using System.Net; #region 邮件发送 /// <summary> /// 邮件发 ...
- HttpURLConnection详解
HttpURLConnection详解 07. 五 / J2EE / 没有评论 HttpURLConnection类的作用是通过HTTP协议向服务器发送请求,并可以获取服务器发回的数据. Http ...
- Android实现点击事件的4种方式
一.通过在activity_main.xml中,按钮button控件中添加onclick事件实现 在 activity_main.xml 对应的按钮Button中加入下面红色事件 <Butt ...
- Python学习笔记四,dict和set
dict是字典dictionary的缩写,他存放的是键值对key/value,用花括号表示,格式为d={'micheal':99,'jack':88} 当我们访问的时候直接print(d['miche ...
- 磁盘管理三-raid
前言:何为raid raid是利用多个磁盘组成一个可提升效能.可包含冗余的磁盘阵列组.常用于数据吞吐量大(视频),冗余要求高的场景 当前raid包含了raid0-7,以及组合方式raid10,raid ...
- ccf练习---节日
问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日. 现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2 ...
- inPolygonTest学习和C++实现
大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang 此篇博客实现了判定平面一点是否在给定多边形内部的功能.精确,性能优良,因为只包含加法和乘法运算,效 ...
- 编程修养-C语言篇(二)
1.版权和版本——————— 好的程序员会给自己的每个函数,每个文件,都注上版权和版本. 对于C/C++的文件,文件头应该有类似这样的注释: /*************************** ...