1、本文介绍如何在 ASP.NET(ASP.NET/AJAX)里使用基于 JQuery 的 AJAX 技术。(源代码下载见最后)在使用 JQuery 前,请到 下载最新版本的 js 代码,然后再代码里使用即可,当然,由于微软已经把 JQuery 集成到 VS 里,所以你可以到 WWW.ASP.NET/ajax 查看本文将通过六个列子介绍如何在 ASP.NET 里使用 JQuery,其他很容易类比学会。这个项目布局如下图Sample1:JQuery 支持基于 Get 的 AJAX本例子说明如何在 ASP.NET 里使用基于 JQuery 的 Get 方法。页面布局代码如下:页面布局很简单,一个文本
2、框用于输入票数,还有一个 ID 为 Error1 的 div,用于显示 AJAX 操作结果。下面是 AJAX 的方法在了解代码前,看一下运行结果:运行效果在票数后面输入数字,如果大于 5,则给出提示信息,否则,则没有。 这里使用了文本框的 change 事件,所以输入数字后,需要使其失去焦点,否则看不到结果下面是对上面代码的简单解释:$(document).ready(function() .是一个类似英语用法的标准句型,当页面完毕后做某事的意思。可能有人需要问为什么需要需要这样的类型。这是因为 JS 的位置不同,需要执行不同的判断。考虑一下到你打开的百度页面,当百度页面加载完毕后,光标会自动
3、定位到输入框这里它的代码可能类似如下:var o=document.getElemementById(“f“);o.focus();在这里,这段脚本必须放在后面,如果这样放置代码var o=document.getElemementById(“f“);则浏览器在执行时会报错,因此此时文本框还未加载。使用 JQuery 则不用管那么多,在页面头或者尾部尽管用 $(document).ready(function() ,这也是 JQuery 的好处。其他都很简单,概括的说,对于输入框如 textbox,select 等则用 val()获取/设置其值,对于div,p, span 等则是 html()
4、获取 /设置其值,$.get(“GetTicks.aspx“, function(result) 表示数据处理会由 GetTicks.aspx 执行,GetTicks.aspx 很简单,如下int NoOfTicketsAvailable = 5;Response.Write(NoOfTicketsAvailable.ToString();Response.End();注意:需要 Response.End();这样既 OK 了。Sample2:JQuery 支持基于 Post 的 AJAX和 Sample1 差别不大代码如下不过,需要注意的是这里传递了参数 TicReq,对于 URL,一般都是
5、 name=key 的方式,例如default.aspx?id=1,则可以使用 Request.QueryString“id“获取 id 的值为 1,所以上面传递的相当于GetTicksByPost.aspx?TicReq=ticketsReq (不过,这里的 ticketsReq 是个变量值,系统自动转换)所以在 GetTicksByPost.aspx 里就可用获取该参数运行结果同上Sample3:JQuery 支持基于 ASP.NET AJAX 的 AJAX要在 ASP.NET AJAX 里使用 JQuery,需要将 EnablePageMethods 设置为 true。如下接下来,就可以
6、使用 ASP.NET AJAJX 技术了,如下然后使用即可,请注意 URL 的格式,页面后面跟的是方法url: “default.aspx/GetAvailableTickets“,表示使用 default.aspx 里定义的GetAvailableTickets 方法。后台代码如下,注意:需要添加 WebMethod 修饰符。Sample3:JQuery 支持基于 ASP.NET AJAX 的 AJAX 传递参数下面是主要代码,注意参数是通过 data 传递的因为传递了 no 参数,所以在后台就可用直接使用注意:这里后天里的参数名需要和前台 ajax 里定义的参数一样Sample4:JQuery 支持基于 ASP.NET AJAX 的 AJAX 传递参数到 WebService如果使用 WebService,需要在类前加入System.Web.Script.Services.ScriptService看下面的代码(在 default.js 文件里的)下面是 webservice 文件,注意红色的标示。Sample5:建立类似博客园的闪存具体见代码,因为我只实现了数据提交,会了上面的 ,下面的很容易实现