页面代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="jquery-1.7.2.js"></script>
<script type="text/javascript">
//创建ajax对象
function createXmlHttpRequest() {
if (window.ActiveXObject) {//IE浏览器
return new ActiveXObject("Microsoft.XMLHTTP");
}
else {//其他浏览器
return new XMLHttpRequest();
}
}
onload = function loadTable() {
//设置请求的路径
var url = "GetTable.ashx";
//创建AJAX对象
var xhr = createXmlHttpRequest();
//设置回调函数
xhr.onreadystatechange = function () {
//如果返回成功
if (xhr.readyState == 4 && xhr.status == 200) {
//接受从handler中返回的值
var dom = xhr.responseXML;
//拼写html
var html = "<table><tr><td>编号</td> <td>姓名</td></tr>";
//循环遍历xml
for (var i = 0; i < dom.getElementsByTagName("Student").length; i++) {
var stu = dom.getElementsByTagName("Student")[i]
html += "<tr><td>" + stu.childNodes[0].text + "</td><td>" + stu.childNodes[1].text+"</td></tr>"
}
html += "</table>"
//将得到的html代码放入网页中
document.getElementById("div1").innerHTML = html;
}
}
//初始化XMLGttpRequest组件
xhr.open("GET", url, true);
//发送请求
xhr.send(null);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id ="div1">
</div>
</form>
</body>
</html>
handler代码
<%@ WebHandler Language="C#" Class="GetTable" %>
using System;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using System.Xml;
using System.Xml.Serialization;
using System.Text;
using System.Collections.Generic;
using Model;
public class GetTable : IHttpHandler {
public void ProcessRequest (HttpContext context) {
//设置相应的格式
context.Response.ContentType = "text/xml";
//编写连接字符串
string conStr = "Data Source=.;Initial Catalog=school;Integrated Security=True";
//创建连接对象
SqlConnection conn = new SqlConnection(conStr);
//编写sql语句
string sqlStr = "select * from student";
//创建适配器对象
SqlDataAdapter adapter = new SqlDataAdapter(sqlStr,conn);
//创建临时表对象
DataTable dt = new DataTable();
//填充表数据
adapter.Fill(dt);
List<Student> stuList = new List<Student>();
//将数据封装成集合
for (int i = 0; i < dt.Rows.Count; i++)
{
stuList.Add(new Student
{
Id = Convert.ToInt32(dt.Rows[i]["id"].ToString()),
Name = dt.Rows[i]["Name"].ToString(),
});
}
if (stuList != null)
{
//创建写入对象
XmlWriter writer = null;
try
{
//创建xml序列化对象
XmlSerializer serializer = new XmlSerializer(stuList.GetType());
//为写入对象添加参数
writer = new XmlTextWriter(context.Response.OutputStream, Encoding.UTF8);
//调用序列化的方法
serializer.Serialize(writer, stuList);
}
catch (Exception)
{
throw;
}
finally
{
if (writer != null)
{
writer.Close();
}
}
}
}
public bool IsReusable {
get {
return false;
}
}
}
实体类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Model
{
public class Student
{
public int Id { get; set; }
public String UserName { get; set; }
public String Pwd { get; set; }
public string Name { get; set; }
}
}