[已解决问题] 帮忙看看下面的程序是什么问题?
提问时间: 2008-08-21 20:20
悬赏分:80 浏览:278 次

帮忙看看下面的程序是什么问题?
帮忙看看下面的程序是什么问题?运行到红色字体的地方就不行了。。

这个是按书上写的,刚刚学AJAX,郁闷啊,,, 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页 </title>
<script type="text/javascript">
var xmlHttp; //用于保存XMLHttpRequest对象的全局变量
var basePath = ""; //图片保存目录

//用于创建XMLHttpRequest对象
function createXmlHttp() {
//根据window.XMLHttpRequest对象是否存在使用不同的创建方式
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest(); //FireFox、Opera等浏览器支持的创建方式
} else {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式
}
}

//向服务器获取图片信息
function getPicInfo() {
createXmlHttp(); //创建XMLHttpRequest对象
xmlHttp.onreadystatechange = displayPreview; //设置回调函数
xmlHttp.open("GET", "Default2.aspx", true); //发送GET请求
xmlHttp.send(null);
}

//处理服务器返回信息
function displayPreview() {
if (xmlHttp.readyState == 4) {
var previewDiv = document.getElementById("previewDiv"); //获取预览图容器对象
previewDiv.innerHTML = ""; //清空容器内容

var pics = eval("(" + xmlHttp.responseText + ")"); //将服务器信息转为JSON数组
;这里没有弹出"1" 怎么转化成JOSN数组啊? //遍历整个JSON数组,创建预览图片

for (var i=0; i <pics.length; i++) {
var pic = pics;
previewDiv.appendChild(createPreviewPic(pic)); //在容器内追加预览图节点
}
}
}

//创建预览图片节点
function createPreviewPic(pic) {
var picNode = document.createElement("div");
picNode.className = "preview";
picNode.innerHTML = " <img src='"+ pic.url + "' onclick='loadPic( '"+ pic.url +"' )'>";
return picNode;
}

//加载完整图片
function loadPic(picName) {
document.getElementById("picDiv").innerHTML = " <img src='"+ picName + "'>";
}
</script>
</head>
<body >
<form id="form1" runat="server">
<div>
<h1>相册浏览 </h1>

<table class="default">
<tr>
<td class="item">点击缩略图查看完整图片 </td>
</tr>
<tr>
<td>
<div id="previewDiv">正在加载缩略图…… </div>
</td>
</tr>
<tr>
<td>
<div id="picDiv"> </div>
</td>
</tr>
</table>

</div>
</form>
</body>
</html>
Default2.aspx.cs
这里是没有错误的,我运行过了

StringBuilder picInfo = new StringBuilder("[");
int count = 0;
string cmdtext = "select * from url where url";
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("db.mdb"));
conn.Open();
OleDbCommand cmd = new OleDbCommand(cmdtext, conn);
OleDbDataReader rs = cmd.ExecuteReader();
while (rs.Read ())
{
if (count > 0)
{
picInfo.Append(",");
}
picInfo.Append("{");
picInfo.Append("'leixing':'");
picInfo.Append(rs.GetString (1));
picInfo.Append("','surl':'");
picInfo.Append(rs.GetString(2));
picInfo.Append("','url':'");
picInfo.Append(rs.GetString(3));
picInfo.Append("}");
count++;
}
rs.Close();
conn.Close();
picInfo.Append("]");
Response .Write (picInfo .ToString ());


}
将服务器信息(xmlHttp.responseText )转为JSON数组
怎么转啊/

提问者:less - 初学一级

问题补充:picInfo.Append("}"); 这个错了picInfo.Append("'}");,该成这样还是不行啊!!


所有回答(5)
先alert(xmlHttp.responseText); 一下 看看返回的JSON数据格式之类的是否正确。 那你把JSON字符串贴出来看看
3个月前   回答者:Hunts.C - 菜鸟二级
那证明服务器端没有返回正确的结果啊 。。你测试的时候试试从服务器端返回[{1},{2},{3}] .. 再看看结果 ~调试纠错慢慢来
3个月前   回答者:Allie - 小虾三级
调试js有什么好的方法吗?除了alert,有没有好的工具支持,好像js也支持debug是吗?
3个月前   回答者:lexus - 初学一级
使用JsUnit测试JavaScript代码 相关Json知识:http://www.json.org/json-zh.html JSON in JavaScript http://www.json.org/js.html Simple library for parsing and generating text in JSON data format. http://sourceforge.net/projects/csjson 我写的一个小例子。 http://files.cnblogs.com/RobotH/json.rar
2个月前   回答者:Robot·H - 小虾三级
其实你的代码问题不大。 看我的代码先: var req; if(window.XMLHttpRequest) { req=new XMLHttpRequest(); //Not IE } else if(window.ActiveXObject) { try{ req=new ActiveXObject("MSXML2.XMLHTTP");//新版本的IE }catch(e1){ req = new ActiveXObject("Microsoft.XMLHTTP");//老版本的IE } } 下面的代码就是你的了。你的问题我遇到过。是浏览器的问题。
2个月前   回答者:Seven Shi - 菜鸟二级
评论
3个月前   less :
没有啊,是[{},{},{}]的,我运行Default2.aspx,得到的是这样一来的格式啊

   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题



> 问题排行榜

相关内容

相关链接