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