中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > J2EE
关于Ajax.Net的快速入门
作者:四年 时间:2006-09-28 11:49 出处:cfcxy 责编:月夜寒箫
              摘要:关于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;}}}
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有