能否页面有这个:<!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">去掉,页面样式都变了
能否页面有这个:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">? 应该是可以的,但需要修改js代码,因为这些js代码是不兼容的,
:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">这个去掉以后,可以显示正常,你又想保留这个,那就去修改MzTreeView的专用样式,让它兼容IE9感觉这个和其他结构的关系不大,XHTML1.0的过渡性申明,影响最大的应该还是在样式定义中
简单测试一下就知道了不更改任何结构,把<!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输出正常,那就应该是样式定义不兼容
<!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
<html xmlns="http://www.w3.org/1999/xhtml">
改成<html> 是可以的
<%@ 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”未定义
应该是可以的,但需要修改js代码,因为这些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
这段代码有问题
{
//Using("System.Xml.MzXmlDocument");
if("undefined"==typeof parentId) parentId=this.rootId;
var x = new MzXmlDocument(); x.loadXML(xmlString);
this._loadXmlNodeData(x.documentElement, parentId);
}删去了,还是在IE9不行
你需要修改2个地方
1,jsframework.js里面删除下面的行
if(System.ie && !System.debug) Include("System.Plugins.IE"); //IE UserData
2,删除调用地方的
TzTree.loadXmlDataString('', 1);这行
原来的代码在处理xml方面存在兼容性问题