MzTreeView2.0 的树在IE9上加载不起了,IE9兼容模式可以加载。
因为项目很多地方使用了这颗树,如果换其他的树,需要的工作量很大。
不知道有没有人遇到这个问题,怎么解决的

解决方案 »

  1.   

    推荐一款比较好的jQuery树形插件zTree,也非常的实用
      

  2.   

    对JS不是太了解,很奇怪的,我用HTML的方式加载这颗树就没有问题如果在asp.net pageload动态写加载数据就有问题
      

  3.   

    IE6 IE7 IE8  IE9兼容模式都没有问题的,只有IE9有问题,火狐 谷歌都没有问题
      

  4.   

    应该是你的aspx页面中的
    <!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">导致,你可以改成你htm中的定义另外,如果使用服务器控件,注意ClientID来替代客户端的id
      

  5.   

    你真牛,确实这样,我把<!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">
    改成<html> 是可以的
      

  6.   

    奇怪我在这个简单的页面
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Tesrt.aspx.cs" Inherits="CommWebForm.WorkData.Tesrt" %>
    <%@ Register Assembly="CommModule.WebGridView" Namespace="CommModule.WebGridView"
        TagPrefix="wgv" %>
    <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
        <link href="../App_Themes/Default/styles/Global.css" rel="stylesheet" type="text/css" />
        <link href="../App_Themes/Default/styles/Content.css" rel="stylesheet" type="text/css" />
        <script src="../App_Themes/Default/scripts/Base.js" type="text/javascript"></script>
        <script src="../App_Themes/Default/scripts/Dialog.js" type="text/javascript"></script>
        <script src="../App_Themes/Default/scripts/DatePicker/WdatePicker.js" type="text/javascript"></script>
        <script src="../App_Themes/Default/scripts/TreeView/jsframework.js" type="text/javascript"></script>
        <script src="../App_Themes/Default/scripts/Ajax.js" type="text/javascript"></script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <div id="divTree" runat="server">
            </div>
        </div>
        </form>
    </body>
    </html>            if (!IsPostBack)
                {
                    divTree.InnerHtml = @"        <script language='JavaScript' type='text/javascript'>
                var data={}; 
                data['-1_0'] = 'text:评价标准; url:javascript:RefreshKbiTree(0,100); imageUrl: ../App_Themes/Default/images/TreeView/KBI/root.png;';
                data['0_100001'] = 'text:XXXX党委;url:javascript:RefreshKbiTree(0,100001);XMLData: ../../BaseCom/TreeXml/KbiTreeXml.aspx?pParam=WorkThree2,100001,1;imageUrl: ../App_Themes/Default/images/TreeView/KBI/fb.png; ';
                data['0_100002'] = 'text:XXXX党委;url:javascript:RefreshKbiTree(0,100002);XMLData: ../../BaseCom/TreeXml/KbiTreeXml.aspx?pParam=WorkThree2,100002,1;imageUrl: ../App_Themes/Default/images/TreeView/KBI/fb.png; ';
                Using('System.Web.UI.WebControls.MzTreeView');
                var TzTree = new MzTreeView();
                TzTree.dataSource = data;
                TzTree.loadXmlDataString('', 1);
                TzTree.setJsDataPath('../BaseApp/TreeXml/');
                TzTree.setXmlDataPath('../BaseApp/TreeXml/');
                TzTree.autoSort=false;
                TzTree.useCheckbox=false;
                TzTree.canOperate=true;
                document.write(TzTree.render());
                TzTree.expandLevel(1);
            </script>";
                }这加载可以,在其他的页面还有有同样问题,提示Microsoft JScript 运行时错误: “MzTreeView”未定义
      

  7.   

    能否页面有这个:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">我这颗树还可以使用啊,我发现把<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">去掉,页面样式都变了
      

  8.   

    能否页面有这个:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">?
    应该是可以的,但需要修改js代码,因为这些js代码是不兼容的,
      

  9.   

    本帖最后由 net_lover 于 2012-09-16 11:09:37 编辑
      

  10.   

    代码地址:http://download.csdn.net/download/lzgctgc/4573317那个好心人帮我修改下,感激不尽
      

  11.   

    net_lover 帮我修改下JS如何,我真的不会啊
      

  12.   

    代码写的存在兼容性问题,在ie9下,把找到mzdata,js文件,把
    MzData.prototype.loadXmlDataString = function(xmlString, parentId)
    {
      if(System.supportsXmlHttp())
      {
        //Using("System.Xml.MzXmlDocument");
        if("undefined"==typeof parentId) parentId=this.rootId;
        var x = new MzXmlDocument(); x.loadXML(xmlString);
        this._loadXmlNodeData(x.documentElement, parentId);
      }
    };改成
    MzData.prototype.loadXmlDataString = function(xmlString, parentId)
    {};即可v
    这段代码有问题
      

  13.   

     我把  if(System.supportsXmlHttp())
       {
       //Using("System.Xml.MzXmlDocument");
       if("undefined"==typeof parentId) parentId=this.rootId;
       var x = new MzXmlDocument(); x.loadXML(xmlString);
       this._loadXmlNodeData(x.documentElement, parentId);
       }删去了,还是在IE9不行
      

  14.   

    还是提示:Microsoft JScript 运行时错误: “MzTreeView”未定义
      

  15.   

    http://b260.photo.store.qq.com/psb?/V11ozO8c25WzQU/EcxeMEFDzBJETOsqyMmhtaiAhgegjWvoCf2GfL.LZGA!/b/dC6vBpu1UQAA&bo=ngIIAQAAAAAAALM!http://b224.photo.store.qq.com/psb?/V11ozO8c25WzQU/M3WwLGeWhaJeaHeCuBVNI3.l8KDmu4jaXwGC*00yu.E!/b/dJPWiYVpZgAA&bo=5QF6AAAAAAAAALg!你看看我运行的截图
      

  16.   

    本帖最后由 net_lover 于 2012-09-17 11:48:00 编辑
      

  17.   

    :<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">这个去掉以后,可以显示正常,你又想保留这个,那就去修改MzTreeView的专用样式,让它兼容IE9感觉这个和其他结构的关系不大,XHTML1.0的过渡性申明,影响最大的应该还是在样式定义中
      

  18.   

    简单测试一下就知道了不更改任何结构,把<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">也仍然保留你调用的代码有一句是:document.write(TzTree.render());改成alert(TzTree.render())看看相关的dom是否已正常输出。IE8和IE9在节点的操作以及相关属性上的设置并没有什么区别才对。如果相关的dom输出正常,那就应该是样式定义不兼容
      

  19.   

    问题已找到,
    你需要修改2个地方
    1,jsframework.js里面删除下面的行
    if(System.ie && !System.debug) Include("System.Plugins.IE"); //IE UserData
    2,删除调用地方的
                TzTree.loadXmlDataString('', 1);这行
    原来的代码在处理xml方面存在兼容性问题