页面代码

<%@ 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; }
}
}

ajax 用xml传递数据的更多相关文章

  1. Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库

    Ajax实现将xml文件数据插入数据库的过程所涉及到的内容比较多,所以对于该过程的讲解本人打算根据交互的过程将其分为三个部分,第一部分为构建解析xml文件的javascript库,第二部分为ajax与 ...

  2. Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互。

    在上一篇文章中我们成功得到了重新组织后的数据,接下来需要做的便是将数据插入到数据库中了.在与数据库打交道的过程中有一些方法是普遍的,我们将这些通用方法封装到一个DbUtil类中,以便复用,封装好的Db ...

  3. Ajax返回xml类型数据

    ajax可以返回文本类型数据和xml类型数据,xml是计算机通用语言 可以使用js解析返回xml类型数据的dom对象 前端页面 <!doctype html> <html lang= ...

  4. OpenCV和Matlab 通过XML传递数据

    因为现在下到的数据集大部分都使用了Matlab的Calibration toolbox 进行标定,其结构大部分是.mat结构的,所以它和opencv中数据传递需要一个中间过程,网上也有直接调用matl ...

  5. 使用XML传递数据

    HTML <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...

  6. UC浏览器中Ajax请求中传递数据的一个坑

    今天突然收到一个bug,有用户在其浏览器环境中一直无法提交内容,使用的是UC浏览器.当换成Chrome时,内容能够正常提交.鉴于本地没有一直使用Firefox 以及Chrome,于是去下载了一个UC ...

  7. MVC中前台如何向后台传递数据------$.get(),$post(),$ajax(),$.getJSON()总结

    一.引言 MVC中view向controller传递数据的时候真心是一个挺让人头疼的一件事情.因为原理不是很懂只看一写Dome,按葫芦画瓢只能理解三分吧. 二.解读Jquery个Ajax函数 $.ge ...

  8. HTML5可预览多图片ajax上传(使用formData传递数据)

    HTML5可预览多图片ajax上传(使用formData传递数据) 在介绍上传图片之前,我们简单的来了解下FormData的基本使用:介绍完成后这些基本知识后,我们会在文章最后提供一个demo,就是a ...

  9. ajax获取后台传递的json数据

      最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简 ...

随机推荐

  1. SGU 326 Perspective ★(网络流经典构图の竞赛问题)

    [题意]有n(<=20)只队伍比赛, 队伍i初始得分w[i], 剩余比赛场数r[i](包括与这n只队伍以外的队伍比赛), remain[i][j]表示队伍i与队伍j剩余比赛场数, 没有平局, 问 ...

  2. UVA 1658 Admiral 海上将军(最小费用流,拆点)

    题意: 一个有v个点的有向图,要从点1到点v需要找两条路径,两路径不可经过同一个点(除了1和v点).求这两条路径的最小费用(保证有解). 分析: 难在建图,其他套模板. 此图给的是超级复杂图,两个点之 ...

  3. 剑指Offer:打印从1到最大的n位数

    题目:输入数值n,按顺序打印从1到最大的n位数,例如输入n=3,则从1,2,3,一直打印到999 陷阱:若使用循环遍历 1- 999...9 并依次输出,当位数n过大时,无论将其存入int或long或 ...

  4. 使用 document.onreadystatechange()来判断页面加载完

    document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法. function subSomething() {  if(docum ...

  5. CSS3实现jquery的特效

    实现 “慕课网” 的图片滑过缩放的效果 技术点:css3——   -webkit-transform:scale(1.2); .course-list-img .img_1:hover{ -webki ...

  6. [转] 三种Python下载url并保存文件的代码

    原文 三种Python下载url并保存文件的代码 利用程序自己编写下载文件挺有意思的. Python中最流行的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib ...

  7. VS2010 Chromium编译

    推荐使用Windows 7及以后系统,最少8G内存,预留出50G磁盘空间 搭建Visual Studio 2010开发环境 1.安装Visual Studio 2010专业版或者旗舰版 2.安装VS2 ...

  8. Leetcode OJ : Restore IP Addresses backtrack暴搜 C++ solution

    class Solution { public: vector<string> ret; string src; int len; unordered_set<string> ...

  9. wuzhicms短信API 实例调用

    1.接口调用 $sendsms = load_class('sms','sms'); echo $sendsms->send_sms('18911549611', '888888', 1); / ...

  10. MySQL在线备份与恢复工具 --> Xtrabackup

    1 Xtrabackup原理简介 xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品.  ...