飛艷小屋

          程序--人生--哲學___________________歡迎艷兒的加入

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks
          關于Ajax.Net的快速入門

          現在的項目準備用ajax,用ajax.net實現,而不是atlas,所以先看下ajax.net,Ajax.Net現在的最新版本是AjaxPro5.11.4.2,下載地址是:www.schwarz-interactive.de

          首先我們新建個項目,名字是AjaxPro,我用的是vs2005beta2版本。

          右擊站點名字點add reference添加對我們剛剛下載來的那個叫AjaxPro.2.dll的引用,如果你用的是vs2003,則添加對AjaxPro.dll的引用,然后我們在添加個web.config文件(很郁悶的是vs2005不再自動添加web.config文件拉),修改web.config如下:

          																										<system.web> <httpHandlers> 
          <add verb="POST,GET" path="ajaxpro/*.ashx" 
          type="AjaxPro.AjaxHandlerFactory, 
          AjaxPro.2"/> </httpHandlers>
          																								

          意思是所有的ajaxpro/*.ashx請求都由Ajax.PageHandlerFactory處理,而不是由默認的System.Web.UI.PageHandlerFactory處理程序工廠來處理。

          我們現在給Default.aspx.cs文件添加個名字空間namespace MyDemo,這里更加郁悶的是為什么vs2005beta2怎么不給你自動添加名字空間啊?和2003怎么完全不同呢?

          現在我們寫個AjaxMethod服務器端方法,他和普通的服務器方法唯一不同的地方就是他必須要在方法的上面添加個[AjaxPro.AjaxMethod],代碼如下:

          																										[AjaxPro.AjaxMethod]
          public DateTime GetServerTime()
          {
          return DateTime.Now;
          }
          [AjaxPro.AjaxMethod]public int 
          AddTwo(int firstInt, int secondInt)
          {
          return firstInt + secondInt;
          }
          																								

          我們還必須在Page_Load里面把這個類注冊下,如下:

          																										protected void Page_Load
          (object sender, EventArgs e)
          {
          AjaxPro.Utility.RegisterTypeForAjax
          (typeof(_Default));
          }
          																								

          這個時候我們還必須修改aspx頁面的指令行,因為我們在后臺搞了個名字空間,如下:Inherits="MyDemo._Default"也就是要把名字空間也寫上。我們再寫客戶端腳本來調用服務器方法。代碼里有詳細的注釋,前臺Default.aspx代碼:

          																										<%@ Page Language="C#" 
          AutoEventWireup="true"CodeFile="Default.aspx.cs" 
          Inherits="MyDemo._Default" %>
          <!DOCTYPE html PUBLIC "-
          //W3C//DTD XHTML 1.1//EN" 
          "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" >
          <head runat="server"><title>Untitled Page
          </title></head><body><form id="form1"
          runat="server"><div><input id="Button1"
          type="button" value="獲得服務器時間" 
          onclick="getServerTime();" /><input 
          id="Text1" type="text" /><input 
          id="Text2" type="text" /><input
          id="Button2" type="button" 
          value="得到兩個文本框的和" 
          onclick="add(document.getElementById('Text1').
          value,document.getElementById('Text2').value)" 
          /></div></form><script 
          type="text/javascript">
          function getServerTime()
          {
          //MyDemo._Default.GetServerTime()
          得到從服務器傳來的數據是object,
          要寫.valuealert
          (MyDemo._Default.GetServerTime().value);
          }
          function add(a,b)
          {
          //把文本框的值轉換成intvar 
          a1 = parseInt(a);var b1 = parseInt(b);
          //第1、2參數為服務器方法所需要的參數,
          后面一個是如果服務器返回數據
          //客戶端要處理這些數據的js函數名,
          他有個參數就是從服務器傳來的數據
          MyDemo._Default.AddTwo(a1,b1,getAdd);
          }
          function getAdd(rel)
          {
          //要加上.valuealert(rel.value);
          }
          </script></body></html>
          后臺Default.aspx.cs代碼:
          using System;using System.Data;
          using System.Configuration;
          using System.Web;
          using System.Web.Security;using 
          System.Web.UI;
          using System.Web.UI.WebControls;
          using System.Web.UI.WebControls.WebParts;
          using System.Web.UI.HtmlControls;
          namespace MyDemo
          {
          public partial class _Default : 
          System.Web.UI.Page{protected void 
          Page_Load(object sender, EventArgs e){AjaxPro.Utility.RegisterTypeForAjax
          (typeof(_Default));
          }
          [AjaxPro.AjaxMethod]public 
          DateTime GetServerTime()
          {return DateTime.Now;
          }[AjaxPro.AjaxMethod]public int AddTwo
          (int firstInt, int secondInt)
          {
          return firstInt + secondInt;
          }}} 
          按F5運行結果如下,
          firefox里面測試通過: 
          using System;using System.Data;
          using System.Configuration;
          using System.Web;
          using System.Web.Security;
          using System.Web.UI;
          using System.Web.UI.WebControls;
          using System.Web.UI.WebControls.WebParts;
          using System.Web.UI.HtmlControls;
          namespace MyDemo
          {
          public partial class _Default :
          System.Web.UI.Page
          {
          protected void Page_Load
          (object sender, EventArgs e)
          {AjaxPro.Utility.RegisterTypeForAjax
          (typeof(_Default));}
          [AjaxPro.AjaxMethod]public DateTime 
          GetServerTime(){return DateTime.Now;
          }
          [AjaxPro.AjaxMethod]public 
          int AddTwo(int firstInt, 
          int secondInt)
          {return firstInt + secondInt;}}}
          																								
          posted on 2006-04-19 10:24 天外飛仙 閱讀(323) 評論(0)  編輯  收藏 所屬分類: .net
          主站蜘蛛池模板: 建平县| 龙州县| 阜城县| 保山市| 贺州市| 梅河口市| 崇义县| 手游| 依安县| 连州市| 区。| 迁安市| 陈巴尔虎旗| 济阳县| 洛隆县| 蓝田县| 隆化县| 康平县| 鸡东县| 苗栗市| 白水县| 红河县| 万安县| 盐山县| 南岸区| 清苑县| 房产| 广汉市| 伊金霍洛旗| 满洲里市| 中超| 鸡东县| 剑阁县| 黎城县| 钦州市| 迁西县| 永修县| 湘潭县| 龙里县| 安国市| 东乌珠穆沁旗|