那位好心人 帮帮我啊 头都炸了 高分悬赏
废话不多说 发代码
前台JS代码
- JScript code
// JScript 文件$(function (){$.ajax({ type:"GET", url:"GetTree.aspx", datatype:"html", success:function(data){ $(data).find("SysFun").each(function(i){ var id=$(this).children("NodeId"); //取对象 var id_value=$(this).children("NodeId").text(); //取文本 或者 $("id" , xml).text(); var ParentNodeId=$(this).children("ParentNodeId"); var ParentNodeId_value=$(this).children("ParentNodeId").text(); var DisplayName=$(this).children("DisplayName"); var DisplayName_value=$(this).children("DisplayName").text(); var NodeURL=$(this).children("NodeURL"); var NodeURL_value=$(this).children("NodeURL").text(); var DisplayOrder=$(this).children("DisplayOrder"); var DisplayOrder_value=$(this).children("DisplayOrder").text(); var ImgURL=$(this).children("ImgURL"); var ImgURL_value=$(this).children("ImgURL").text(); var IsLeaf=$(this).children("IsLeaf"); var IsLeaf_value=$(this).children("IsLeaf").text(); if(ParentNodeId_value=="0"){ var divlist=$("<div id="+id_value+" class='parent'></div>"); var im=$("<img src='../Images/s.gif'/>"); var title=$("<div class='title'>"+DisplayName_value+"</div>"); var head=$("<div class='head'></div>"); if(DisplayOrder_value=="1") { var nr=$("<div class='nr' style='display:block'><ul id='"+id_value+"nr' style='margin:0px;padding-top:12px;padding-left:0px'></ul></div>"); var icon=$("<div class='icon'></div>"); icon.css("background-position","0px -255px"); head.append(icon); head.append(im); head.append(title); divlist.append(head); nr.css("height",$(window).height()-105).appendTo(divlist); } else { var nr=$("<div class='nr'><ul id='"+id_value+"nr' style='margin:0px;padding-top:12px;padding-left:0px'></ul></div>"); var icon=$("<div class='icon'></div>"); head.append(icon); head.append(im); head.append(title); divlist.append(head); divlist.append(head); divlist.append(nr); } $("#middle").append(divlist); } else { var li=$("<li style='list-style-type:none;width:180px;height:24px;padding-bottom:5px'></li>"); var img=$("<img src='../Images/"+ImgURL_value+"' width='16' height='16' style='float:left;margin-left:30px;margin-right:4px;margin-top:4px;' />"); var span=$("<span style='float:left;margin-top:5px'>"+DisplayName_value+"</span>"); li.append(img); li.append(span); $("#"+ParentNodeId_value+"nr").append(li); } } ); } });})后台
- C# code
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using System.IO;using System.Xml;using System.Text;public partial class manage_Template_GetTree : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/html"; using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=12345;database=zjweb")) { SqlDataAdapter sda = new SqlDataAdapter("select * from sysFun", con); DataSet ds = new DataSet(); sda.Fill(ds, "sysFun"); if (ds.Tables.Contains("sysFun") && ds.Tables["sysFun"].Rows.Count > 0) { XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding); writer.Formatting = Formatting.Indented; writer.Indentation = 4; writer.IndentChar = ' '; ds.Tables["sysFun"].TableName = "sysFun"; ds.Tables["sysFun"].WriteXml(writer); writer.Flush(); writer.Close(); } }//end using block Response.End(); }}
firefox ie9 chrome 没问题
就是ie8 ie7 ie6 不行啊 各位高手 帮帮忙啊
[解决办法]
datatype:"html" 改成XML试试。
JQuery.AJAX的返回数据类型可能会经过浏览器的处理。错误可能就是浏览器版本支持的问题。类似
.PASEJSON() 这个问题。版本支持,其次就是datatype的指定。
下面是摘取的API信息,自己看下吧,希望有帮助。
/**********************************************************************/
通过dataType选项还可以指定其他不同数据处理方式。除了单纯的XML,还可以指定 html、json、jsonp、script或者text。
其中,text和xml类型返回的数据不会经过处理。数据仅仅简单的将XMLHttpRequest的responseText或responseHTML属性传递给success回调函数,
'''注意''',我们必须确保网页服务器报告的MIME类型与我们选择的dataType所匹配。比如说,XML的话,服务器端就必须声明 text/xml 或者 application/xml 来获得一致的结果。
如果指定为html类型,任何内嵌的JavaScript都会在HTML作为一个字符串返回之前执行。类似的,指定script类型的话,也会先执行服务器端生成JavaScript,然后再把脚本作为一个文本数据返回。
如果指定为json类型,则会把获取到的数据作为一个JavaScript对象来解析,并且把构建好的对象作为结果返回。为了实现这个目的,他首先尝试使用JSON.parse()。如果浏览器不支持,则使用一个函数来构建。JSON数据是一种能很方便通过JavaScript解析的结构化数据。如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。如果要指定回调函数的参数名来取代默认的callback,可以通过设置$.ajax()的jsonp参数。
注意,JSONP是JSON格式的扩展。他要求一些服务器端的代码来检测并处理查询字符串参数。更多信息可以参阅 最初的文章。
如果指定了script或者jsonp类型,那么当从服务器接收到数据时,实际上是用了<script>标签而不是XMLHttpRequest对象。这种情况下,$.ajax()不再返回一个XMLHttpRequest对象,并且也不会传递事件处理函数,比如beforeSend。
[解决办法]
不同的ContentType 会影响客户端所看到的效果.默认的ContentType为 text/html 也就是网页格式.
------------------------------
firefox ie9 chrome 没问题
就是ie8 ie7 ie6 不行啊
-----------------------------
修改
Response.ContentType = "text/html";
=========》
Response.ContentType = "text/xml";