ajax

一,新建一个一般处理程序Common.ashx 

View Code
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Script.Serialization;
 6 
 7 namespace web_ajax {
 8     /// <summary>
 9     /// 处理班级表的增删改查
10     /// </summary>
11     public class Common : IHttpHandler {
12         // 全局变量--创建业务层的班级操作对象
13         BLL.Classes bll = new BLL.Classes();
14         public void ProcessRequest(HttpContext context) {
15             context.Response.ContentType = "text/plain";
16             List<MODEL.Classes> list = bll.GetAllList(false);
17             
18             //1.将泛型集合转换成json格式的字符串数组:1添加程序集System.Web.Extensions 2 .导入命名空间:System.Web.Script.Serialization;
19             //2.创建js序列化器对象
20             JavaScriptSerializer jsS = new JavaScriptSerializer();
21             //3.Serialize方法传入泛型集合,返回json格式的字符串;原理:使用反射,读出传入的类型的属性;
22             string jsonArrStr = jsS.Serialize(list);
23             //4.输出给浏览器的异步对象
24             context.Response.Write(jsonArrStr);
25 
26         }
27 
28         public bool IsReusable {
29             get {
30                 return false;
31             }
32         }
33     }
34 }

二,使用浏览器兼容的方式创建异步对象

View Code
 1 //使用浏览器兼容的方式创建 异步对象
 2 function createXhr() {
 3     var xhobj = false;
 4     try {
 5         xhobj = new ActiveXObject("Msxml2.XMLHTTP"); // ie msxml3.0+
 6     } catch (e) {
 7         try {
 8             xhobj = new ActiveXObject("Microsoft.XMLHTTP"); //ie msxml2.6
 9         } catch (e2) {
10             xhobj = false;
11         }
12     }
13     if (!xhobj && typeof XMLHttpRequest != 'undefined') {// Firefox, Opera 8.0+, Safari
14         xhobj = new XMLHttpRequest();
15     }
16     return xhobj;
17 }

三,创建一个list.html静态页面,发送异步对象到Common.ashx ,获得数据显示在页面上

View Code
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <title>班级列表</title>
 5     <style type="text/css">
 6     #tbList{border-top:1px solid #000;border-left:1px solid #000; margin:0px auto; width:600px;}
 7     #tbList th,td{border-bottom:1px solid #000;border-right:1px solid #000; padding:5px;}
 8     </style>
 9     <script src="Common.js" type="text/javascript"></script>
10     <script type="text/javascript">
11         var xhr = false; //异步对象
12         var tbListObj = false; //表格对象
13         //当浏览器加载数据后
14         window.onload = function () {
15             tbListObj = document.getElementById("tbList");//获得表格dom对象
16             //创建异步对象
17             xhr = createXhr();
18             LoadList();
19         }
20         //一.加载列表
21         function LoadList() {
22             //1.设置参数,为了拿数据所以用get,参数[get/post,页面,是否用异步]
23             xhr.open("get", "common.ashx", true);
24             //2.设置浏览器不使用缓存
25             xhr.setRequestHeader("If-Modified-Since", "0");
26             //3.设置回调函数(为onreadystatechange事件设置回调函数):异步对象状态发生改变的时候,它自己就触发这个事件来,进而来调用的这个回调函数
27             xhr.onreadystatechange = function () {
28                 //4.看准备状态,看服务器的数据有没有回来,=4的时候服务器响应报文完全发回到浏览器了
29                 if (xhr.readyState == 4) {
30                     //5.服务器返回的状态码200,则服务器运行正常
31                     if (xhr.status == 200) {
32                         //6.获得服务器返回的数据,返回json格式的字符串
33                         var listData = xhr.responseText;
34                         var listJsonArr = eval(listData); //把字符串解析为json数组
35                         loadTableData(listJsonArr);
36                     }
37                 }
38             }
39             //7.异步对象发送请求给服务器
40             xhr.send(null);
41         }
42 
43         //为表格创建行数据
44         function loadTableData(trsJsonArr) {
45             for (var i = 0; i < trsJsonArr.length; i++) {
46                 var jsonClasses = trsJsonArr[i];
47                 var newRow = tbListObj.insertRow(-1); //创建行,追加一行到表的最后  
48                 var newCell1 = newRow.insertCell(-1); //为行追加一列
49                 newCell1.innerHTML = jsonClasses.CID;
50 
51                 var newCell2 = newRow.insertCell(-1);
52                 newCell2.innerHTML = jsonClasses.CName;
53                 var newCell3 = newRow.insertCell(-1);
54                 newCell3.innerHTML = jsonClasses.CCount;
55                 var newCell4 = newRow.insertCell(-1);
56                 newCell4.innerHTML = jsonClasses.CImg;
57                 var newCell5 = newRow.insertCell(-1);
58                 newCell5.innerHTML = "删 改";
59             }
60         }
61     </script>
62 </head>
63 <body>
64  <table id="tbList" cellspacing="0">
65         <tr>
66             <th>ID</th>
67             <th>班级名</th>
68             <th>总人数</th>
69             <th>班级LOGO</th>
70             <th>操作</th>
71         </tr>
72     </table>
73 </body>
74 </html>

 

posted on 2013-04-25 23:11  何金洋  阅读(159)  评论(0编辑  收藏  举报