首先从网上下载一个AjaxPro.dll(vs2003),然后把Ajax.dll copy到应用系统bin目录下,在项目中添加引用AjaxPro.dll。随后,找到web.config文件,修改里面的配置: 
 <httpHandlers>
  
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro"></add>
  
</httpHandlers>
意思是所有的ajaxpro/*.ashx请求都由Ajax.PageHandlerFactory处理,而不是由默认的System.Web.UI.PageHandlerFactory处理程序工厂来处理。
     接下来我们就开始第一个Ajax.net的初次旅行。
     新建一个项目ajax,然后呢,打开WebForm2.aspx.cs文件,在Page_Load事件里面注册一下AjaxPro
1    private void Page_Load(object sender, System.EventArgs e)
2        {
3            // 在此处放置用户代码以初始化页面
4            AjaxPro.Utility.RegisterTypeForAjax(typeof(WebForm1));
5        }
     下面就进入Ajax的世界了,在WebForm2.aspx.cs里写入下的一个方法
1[AjaxPro.AjaxMethod]
2        public int  add(int a,int b)
3        {
4            return a+b;
5        }
      注意,方法必须是public的,而且方法前必须有[AjaxPro.AjaxMethod]这样才能在客户端掉用这个方法。
然后在WebForm2.aspx的HTML页面中的<head>区域中加入javascript代码来调用服务器端的方法。
 1        <script>
 2    function getadd()
 3    {
 4        var a=parseInt(document.getElementById("a").value);
 5        var b=parseInt(document.getElementById("b").value);
 6        var c=ajax.WebForm2.add(a,b).value;
 7       document.all.result.innerHTML=c;
 8       document.all.result.style.color="red";
 9    }

10    
11        </script>

看上面的javascript代码,当我第一次写着段代码时,费了一番的功夫,当然,不是说不会,而是里面的细节问题
如,在服务器段,我定义的方法add()返回值是int,而如果直接调用也就是说如果把var c=ajax.WebForm2.add(a,b).value;改成var c=ajax.WebForm2.add(a,b)那么在页面上获得的值是[object Object]而非真正想要的结果。所以我总结了一下客户端从服务器端获得的值基本上是object类型的,所以得在后面加上.vlaue.
   string 类型
     int    类型
  DateTime类型
当然了,在以后的学习和开发过程中还会有总结的。下面是完整的代码:

 1<%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="ajax.WebForm2" %>
 2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 3<HTML>
 4    <HEAD>
 5        <title>WebForm2</title>
 6        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
 7        <meta name="CODE_LANGUAGE" Content="C#">
 8        <meta name="vs_defaultClientScript" content="JavaScript">
 9        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
10        <script>
11    function getadd()
12    {
13        var a=parseInt(document.getElementById("a").value);
14        var b=parseInt(document.getElementById("b").value);
15        var c=ajax.WebForm2.add(a,b).value;
16       document.all.result.innerHTML=c;
17       document.all.result.style.color="red";
18    }

19    
20        
</script>
21    </HEAD>
22    <body MS_POSITIONING="GridLayout">
23        <form id="Form1" method="post" runat="server">
24            <FONT face="宋体">
25                <asp:TextBox id="a" style="Z-INDEX: 101; LEFT: 176px; POSITION: absolute; TOP: 80px" runat="server"></asp:TextBox>
26                <asp:TextBox id="b" style="Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 112px" runat="server"></asp:TextBox>
27                <asp:Label id="result" style="Z-INDEX: 103; LEFT: 368px; POSITION: absolute; TOP: 104px" runat="server">Label</asp:Label><INPUT style="Z-INDEX: 104; LEFT: 184px; POSITION: absolute; TOP: 176px" type="button"
28                    value="Button" onclick="getadd()"></FONT>
29        </form>
30    </body>
31</HTML>
32

WebForm2.aspx.cs代码:
 1using System;
 2using System.Collections;
 3using System.ComponentModel;
 4using System.Data;
 5using System.Drawing;
 6using System.Web;
 7using System.Web.SessionState;
 8using System.Web.UI;
 9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11
12namespace ajax
13{
14    /// <summary>
15    /// WebForm2 的摘要说明。
16    /// </summary>

17    public class WebForm2 : System.Web.UI.Page
18    {
19        protected System.Web.UI.WebControls.TextBox a;
20        protected System.Web.UI.WebControls.TextBox b;
21        protected System.Web.UI.WebControls.Label result;
22    
23        private void Page_Load(object sender, System.EventArgs e)
24        {
25            // 在此处放置用户代码以初始化页面
26            AjaxPro.Utility.RegisterTypeForAjax(typeof(WebForm2));
27        }

28        [AjaxPro.AjaxMethod]
29        public int  add(int a,int b)
30        {
31            return a+b;
32        }

33
34        Web 窗体设计器生成的代码
54    }

55}

56
恩,这是我的第一个,当然了以后还会继续努力的。


 

 

posted on 2006-07-06 13:35  symjie  阅读(891)  评论(1编辑  收藏  举报