jquery ajax以及ztree插件问题的困扰 来看看

天下如山 2012-04-22 11:34:44
最近在一个项目中需要用到jquery ajax方面的,找了会发现了一个不错的jquery控件ztree,然后开始研究,然后就遇到了些问题。
希望大家能看完问题描述(为了描述清楚,可能有点长,其实不复杂),给出一些解决的思路和方法,谢谢啦。
问题1:首先是jquery+ajax方面的问题,描述如下:
我在前台写一个ajax方法,代码如下

$.ajax({
type: "POST",
url: "programList.aspx/getClassData",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(msg) {
treeData = eval("(" + msg + ")").d;
alert(treeData)},
error: function(xhr, msg, e) { alert(msg); }
});


public static string getClassData()

返回的是一个JSON数据格式的字符串,当运行时,发生错误,提示为:缺少']',然后我就去找找看是不是真的没有拼接好JSON的数据,但是最后还是没有找到,然后我把.aspx页面的dataType: "json" 改为dataType:"text",运行得到:

{"classData":[{"Class_ID":"1","ClassName":"贵州广电","Synopsis":"","ParentID":"-1","ClassType":"1","ClassOrder":"1","CreatorID":"1","CreateDate":"2011-7-6 10:37:30"}]}

这里我就困惑啦 咋回事呢?为什么json不行呢?(因为看到网上有不少例子都是这样子写的)希望看到这里的高手们,如果知道原因,请回复下,谢谢。
问题2:上面的问题我还没有弄清,但是我还是往下走啦,用的是dataType:"text",然后参照ztree的API和一些例子,我尝试着绑定tree,所以我修改了后台的方法,让getClassData()返回符合ztree要求的json格式数据:如

{ Class_ID: "1", ClassName: "贵州广电", ParentID: "-1", open: true }

然后参照API绑定ztree,但是出现了错误,然后我就自己把数据源直接定义赋值为

var treeData = { Class_ID: "1", ClassName: "贵州广电", ParentID: "-1", open: true };

加载树,却正确了,郁闷了啊,这里的高手们,你们有谁遇到过这样的问题吗?希望大家帮帮分析分析。
问题困扰 吃饭都不香。。。。。。。
...全文
559 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ww_cherish 2014-03-27
  • 打赏
  • 举报
回复
求demo 感谢 1987081799@qq.com
muding1989 2013-12-11
  • 打赏
  • 举报
回复
Hello,请问你的setting在哪里写? 是在 <script> var setting = ""; </script> 中?还是在某个function中啊?
ls249319195 2013-06-19
  • 打赏
  • 举报
回复
求demo 249319195@qq.com 这两天也在搞 头大
nitaiyoucala 2013-06-14
  • 打赏
  • 举报
回复
引用 9 楼 sibiyellow 的回复:
恩 谢谢 我已经OK拉。 贴上搞定代码:

$(document).ready(function() {
    $.ajax({
        type: "POST",
        url: "programList.aspx/getClassData",
        dataType: "text",
        contentType: "application/json; charset=utf-8",
        success: function(msg) {
            treeData = jQuery.parseJSON(msg);
            var json = eval('(' + treeData.d + ')');
            zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, json);
        },
        error: function(xhr, msg, e) { alert(msg); }
    });
});
再次转换为对象啦。 结贴
求demo 谢谢 xiachufeng@gmail.com
天下如山 2012-04-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
用post方式发送你改这样写把$.post("url",{"参数1":"值","参数2":"值"},function(data,status){
//对data进行操作,data为你的到的json格式的数据,而status是是否连接成功
var ms=$.parseJson(msg);
for(i=0;i<=ms.length;i++)
{
m=ms[i]
m.属性名;//这样取的对应……
[/Quote]
楼上的个是不是不对 试过了 发现都没请求到数据。
先去吃个午饭,喝瓶小酒 发愁发愁。
天下如山 2012-04-22
  • 打赏
  • 举报
回复
如上 treeData = $.parseJSON(msg);alert(treeData.d);弹出,但是绑定却还是错了,我直接把弹出的赋给对象var t,然后绑定 却可以。郁闷啊。
netstudy0105 2012-04-22
  • 打赏
  • 举报
回复
用post方式发送你改这样写把$.post("url",{"参数1":"值","参数2":"值"},function(data,status){
//对data进行操作,data为你的到的json格式的数据,而status是是否连接成功
var ms=$.parseJson(msg);
for(i=0;i<=ms.length;i++)
{
m=ms[i]
m.属性名;//这样取的对应的值

}
});
至于你说网上看到的可以,那不一定可以的,你可以弄到vs中运行下,可能就N个错误了
天下如山 2012-04-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
1,你传递过来数据到js后,是json格式的数据,你需要将数据序列化,var ms=parseJson(msg);这样写应该
2,你直接赋值给树,是因为这个tree可以接受json数据,也就是字典数据
[/Quote]
1、var ms=parseJson(msg); 使用$.parseJson(msg);在fire bug 会探测到错误,在说第一个问题,为什么看到网上有些例子是可以的,为为什么不行呢?闷
2、第二个我也觉得我得到的是json格式的字符串,而当我直接var 得到的确实对象,这里我却不知道怎样去处理。
天下如山 2012-04-22
  • 打赏
  • 举报
回复
自己顶个 希望有人来指导。
netstudy0105 2012-04-22
  • 打赏
  • 举报
回复
1,你传递过来数据到js后,是json格式的数据,你需要将数据序列化,var ms=parseJson(msg);这样写应该
2,你直接赋值给树,是因为这个tree可以接受json数据,也就是字典数据
天下如山 2012-04-22
  • 打赏
  • 举报
回复
恩 谢谢 我已经OK拉。
贴上搞定代码:

$(document).ready(function() {
$.ajax({
type: "POST",
url: "programList.aspx/getClassData",
dataType: "text",
contentType: "application/json; charset=utf-8",
success: function(msg) {
treeData = jQuery.parseJSON(msg);
var json = eval('(' + treeData.d + ')');
zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, json);
},
error: function(xhr, msg, e) { alert(msg); }
});
});

再次转换为对象啦。
结贴
netstudy0105 2012-04-22
  • 打赏
  • 举报
回复
url要在一般处理程序中实现,a.ashx,当然也可以在aspx.cs中实现,但是的加个什么东西
在a.ashx中用context.response.write("data");返回数据,data为json格式数据
天下如山 2012-04-22
  • 打赏
  • 举报
回复
再来人帮帮看看 会疯的。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧