首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

ajax如何获取Handler.ashx中的List 并将其写进table中

2013-07-01 
ajax怎么获取Handler.ashx中的List 并将其写进table中例子数据源是XML我想弄成从Handler.ashx的List中提取

ajax怎么获取Handler.ashx中的List 并将其写进table中
例子数据源是XML   我想弄成从Handler.ashx的List中提取数据

html代码


<html>
<head>
<title>responseXML</title>
<script language="javascript">
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
else if(window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
}
function getXML(addressXML){
var url = addressXML + "?timestamp=" + new Date();
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET",url);
xmlHttp.send(null);
}
//完成一行数据的插入
function addTableRow(sName, sClass, sBirth, sConstell, sMobile){
//表格添加一行的相关操作,可参看7.2.1节
var oTable = document.getElementById("member");//得到table
var oTr = oTable.insertRow(oTable.rows.length);//向table中插入一行(table表列数)
var aText = new Array();//定义一个数组
aText[0] = document.createTextNode(sName);
aText[1] = document.createTextNode(sClass);
aText[2] = document.createTextNode(sBirth);
aText[3] = document.createTextNode(sConstell);
aText[4] = document.createTextNode(sMobile);
for(var i=0;i<aText.length;i++){
var oTd = oTr.insertCell(i);//向行中插入一个列
oTd.appendChild(aText[i]);//向这个列中填充一个数据
}
}
function DrawTable(myXML){
//用DOM方法操作XML文档
    var oMembers = myXML.getElementsByTagName("member"); //根据TagName返回对象数组
var oMember = "", sName = "", sClass = "", sBirth = "", sConstell = "", sMobile = "";
for(var i=0;i<oMembers.length;i++){
oMember = oMembers[i];
sName = oMember.getElementsByTagName("name")[0].childNodes[0].nodeValue;
sClass = oMember.getElementsByTagName("class")[0].firstChild.nodeValue;
sBirth = oMember.getElementsByTagName("birth")[0].firstChild.nodeValue;
sConstell = oMember.getElementsByTagName("constell")[0].firstChild.nodeValue;
sMobile = oMember.getElementsByTagName("mobile")[0].firstChild.nodeValue;
//添加一行
addTableRow(sName, sClass, sBirth, sConstell, sMobile);
}
}
function handleStateChange(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
    DrawTable(xmlHttp.responseXML); //将获取过来的XML写到table中
}
</script>
</head>

<body>
<input type="button" value="获取XML" onclick="getXML('9-4.xml');"><br><br>
<table class="datalist" summary="list of members in EE Studay" id="member">
<tr>
<th scope="col">Name</th>
<th scope="col">Class</th>
<th scope="col">Birthday</th>
<th scope="col">Constellation</th>
<th scope="col">Mobile</th>
</tr>
</table>
</body>
</html>

XML

<?xml version="1.0" encoding="gb2312"?>
<list>
<caption>Member List</caption>
<member>
<name>isaac</name>
<class>W13</class>
<birth>Jun 24th</birth>
<constell>Cancer</constell>
<mobile>1118159</mobile>


</member>
<member>
<name>fresheggs</name>
<class>W610</class>
<birth>Nov 5th</birth>
<constell>Scorpio</constell>
<mobile>1038818</mobile>
</member>
</list>


Handler.ashx

<%@ WebHandler Language="C#" Class="UserHandler" %>

using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using PersonalWeb.ControllerServices;
using PersonalWeb.Domain;

public class UserHandler : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        //context.Response.ContentType = "text/plain";
        //context.Response.Write("Hello World");

        User u = new User();
        u.Name = "A";
        u.Password = "A";
        List<User> userList = new List<User>();
        userList.Add(u);

        //怎么将userList传到前台?直接write出去么?
        //在html中又该用什么方法取?
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}

如果是jQuery控制的ajax又该怎么实现~? Ajax HTML
[解决办法]
//怎么将userList传到前台?直接write出去么?
        //在html中又该用什么方法取?

你可以将userList 序列化为json write到前台 html页面上直接用js操作json 很方便
[解决办法]
json就和hasttable一样,操作很简单。。主要是你需要知道json的结构
[解决办法]
序列化成 JSON字符串,输出到浏览器,再将JSON使用渲染到table

热点排行