码迷,mamicode.com
首页 > Web开发 > 详细

net 2.0使用ajax

时间:2015-09-29 16:33:45      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

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

标签:

原文地址:http://www.cnblogs.com/keyyang/p/4846431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!