Ajax的初次使用

Ajax的初次使用

步骤如下:

一:添加Ajax.dll引用

我们首先需要把Ajax.dll库引用进项目。

二:设置HttpHandler

在Web.config下设置HttpHandler。我们需要在<configuration>/<system.web>下添加<httpHandlers>。具体代码如下:

< configuration >
  
< system .web >
    
< httpHandlers >
       
< add  verb ="POST,GET"  path ="ajax/*.ashx"  type ="Ajax.PageHandlerFactory, Ajax"   />
    
</ httpHandlers >
    .
  
</ system.web >
</ configuration >   

三:设置页面属性

下面两种方法你可以任选一种:
1. 在Page_Load事件中,注册AJAX
我们需要在Page_Load事件中,为需要通过JS访问其函数的类进行注册。具体代码如下:
private   void  Page_Load( object  sender, System.EventArgs e)
        
{
            Ajax.Utility.RegisterTypeForAjax(
typeof(noFlash));
            Ajax.Utility.RegisterTypeForAjax(
typeof(User));
            
// 在此处放置用户代码以初始化页面
        }
其中,noFlash和User都是这个页面下的类名。
2.在页面中添加<script>,注册AJAX
这里,我们需要在它的<head>下添加下列代码:
< script  language ="javascript"  src ="ajax/common.ashx" ></ script >
< script  language ="javascript"  src ="ajax/NoFlash.noFlash,NoFlash.ashx" ></ script >
< script  language ="javascript"  src ="ajax/NoFlash.User,NoFlash.ashx" ></ script >
其中,NoFlash为此页面的命名空间,noFlash和User为这个页面中的类名。如果此类的函数会被JS调用,就必须注册它。
个人推荐使用第一种方法。

四:添加服务器端函数

添加用于客户端调用的服务器端函数。这里,这些函数和平常的C#中的函数书写一模一样,但我们需要在函数前加[Ajax.AjaxMethod()]特性来表明它将可以被客户端JS调用。下面是一个简单的例子:
[Ajax.AjaxMethod()]
        
public   int  ServerSideAdd( int  firstNumber,  int  secondNumber)
        
{
            
return firstNumber + secondNumber;
        }
这样,在运行的时候,系统会自动在调用的这个页面的客户端产生一个ServerSideAdd的JS函数,它接收两个int型的参数。当客户端调用这个JS函数的时候,服务器端的ServerSideAdd函数将被调用,并返回相应的结果。
需要注意的是:如果是整个类作为返回的对象,要在定义这个返回类的头部加[Serializable()]特性。如:
    [Serializable()]
    
public   class  User
    
{
        
private int _userId;
        
private string _firstName;
        
private string _lastName;

        
public int userId
        
{
            
get return _userId; }
        }

        
public string FirstName
        
{
            
get return _firstName; }
        }

        
public string LastName
        
{
            
get return _lastName; }
        }


        
public User(int _userId, string _firstName, string _lastName)
        
{
            
this._userId = _userId;
            
this._firstName = _firstName;
            
this._lastName = _lastName;
        }

        
public User(){}

        [Ajax.AjaxMethod()]
        
public static User GetUser(int userId)
        
{
            
//Replace this with a DB hit or something :)
            return new User(userId,"Michael""Schwarz");
        }

    }

五:使用JS,调用服务器端函数

在前面这些准备工作都做好后,即可以在JS里书写调用的函数了。具体的调用方法有两种(拿ServerSideAdd举例):
1.我们可以直接调用如<name of class>.<name of server side function>,这里就是noFlash.ServerSideAdd(100,99)。
2.添加一个处理返回值的函数,这里就是noFlash.ServerSideAdd(100,99,ServerSideAdd_CallBack)。其中,ServerSideAdd_CallBack就是用来处理服务器端运行ServerSideAdd后返回的值的函数。具体的代码如:
< script  language ="javascript" >
                noFlash.ServerSideAdd(
100,99,ServerSideAdd_CallBack);

                
function ServerSideAdd_CallBack(response){
                    
if (response.error != null){
                        alert(response.error);
                        
return;
                    }

                    alert(response.value);
                }

 
</ script >

这样,我们就可以在.NET1.1下实现AJAX了。个人感觉这样做出的无刷新页面实在是棒。AJAX肯定会有很光明的前景

附上我写的实现代码,供大家探讨  
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值