zoukankan      html  css  js  c++  java
  • ajax 用xml传递数据

    页面代码

    <%@ 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; }
        }
    }
    
  • 相关阅读:
    写在之前
    Fedora Core 3安装杂记(三)
    Fedora Core 3安装杂记(一)
    Firefox 1.0真的挺好用的
    发现Google加了英文页面翻译功能(Beta)
    Fedora Core 3安装杂记(四)
    在FC3的日子里……
    ASP面向对象编程探讨及比较
    显卡千万不能买带风扇的……
    字符串(strcat)
  • 原文地址:https://www.cnblogs.com/liuchang/p/3311261.html
Copyright © 2011-2022 走看看