这个实例我用到了AjaxPro.2.dll和ASP.NET 2.0,其中AjaxPro.2.dll可以到http://groups.google.com/group/ajaxpro/下载
这里举例使用AjaxPro获取服务器时间:
aspx.cs里的代码:
- protected void Page_Load(object sender, EventArgs e)
- {
- AjaxPro.Utility.RegisterTypeForAjax(typeof(MyAjaxTest));//把此类注册
- }
- [AjaxPro.AjaxMethod]//可以用Javascript调用的方法要加上这个属性
- public string GetServerTime(int a)//这个参数没用,只是没有参数次方法调用不了,可能是AjaxPro.2的一个bug
- {
- Thread.Sleep(1000);//模拟网络延时,看Ajax展现无刷新异步传输
- return DateTime.Now.ToString();
- }
aspx里只有一个按钮和一个文本框:
- <input type="button" οnclick='getServerTime();' style="width: 112px" value="getServerTime()" id="Button1"/>
- <input id="textbox" type="text" /><div id="loading" style="display:none;">loading...</div>
当然还有Javasript代码:
- function getServerTime()
- {
- Test.MyAjaxTest.GetServerTime(4,getServerTime_callback);//那个4是aspx.cs文件里定义的GetServerTime方法里的参数,后面的是回调方法,如果直接调用(即省略回调方法参数)就无法实现异步调用,在服务器为返回数据的前,浏览器将失去响应
- document.getElementById("loading").style.display="";//显示loading,告诉用户我们的网页没出问题
- }
- function getServerTime_callback(res)
- {
- form1.textbox.value=res.value;//res就是GetServerTime返回的对象,使用value得到它的值
- document.getElementById("loading").style.display="none";
- }
用了AjaxPro感觉很不错,了有点小bug,不过可以实现不用ASP.NET自己的POST而得到数据确实爽啊~~