第一个Ajax.net程序的实现及心得。
生活随笔
收集整理的這篇文章主要介紹了
第一个Ajax.net程序的实现及心得。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先從網上下載一個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>
?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?窗體設計器生成的代碼#region?Web?窗體設計器生成的代碼
35????????override?protected?void?OnInit(EventArgs?e)
36????????{
37????????????//
38????????????//?CODEGEN:?該調用是?ASP.NET?Web?窗體設計器所必需的。
39????????????//
40????????????InitializeComponent();
41????????????base.OnInit(e);
42????????}
43????????
44????????/**////?<summary>
45????????///?設計器支持所需的方法?-?不要使用代碼編輯器修改
46????????///?此方法的內容。
47????????///?</summary>
48????????private?void?InitializeComponent()
49????????{????
50????????????this.Load?+=?new?System.EventHandler(this.Page_Load);
51
52????????}
53????????#endregion
54????}
55}
56 恩,這是我的第一個,當然了以后還會繼續努力的。
??<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類型
當然了,在以后的學習和開發過程中還會有總結的。下面是完整的代碼:
?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?窗體設計器生成的代碼#region?Web?窗體設計器生成的代碼
35????????override?protected?void?OnInit(EventArgs?e)
36????????{
37????????????//
38????????????//?CODEGEN:?該調用是?ASP.NET?Web?窗體設計器所必需的。
39????????????//
40????????????InitializeComponent();
41????????????base.OnInit(e);
42????????}
43????????
44????????/**////?<summary>
45????????///?設計器支持所需的方法?-?不要使用代碼編輯器修改
46????????///?此方法的內容。
47????????///?</summary>
48????????private?void?InitializeComponent()
49????????{????
50????????????this.Load?+=?new?System.EventHandler(this.Page_Load);
51
52????????}
53????????#endregion
54????}
55}
56 恩,這是我的第一個,當然了以后還會繼續努力的。
?
?
轉載于:https://www.cnblogs.com/symjie520/archive/2006/07/06/444180.html
總結
以上是生活随笔為你收集整理的第一个Ajax.net程序的实现及心得。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse Rcp系列 http:
- 下一篇: Google服务你都用了哪些?