用javascript生成了一个树,生成代码如下,不能展开, 后来发现给根接点expanded赋值在添加第二个节点时已改变,
这是树不能展开的原因。在最后加上一句话,把根节点的expanded属性重新设置成true,树才能顺利展开。
跟踪代码发现是在tree.htc文件的generateItem(), 方法中值被修改了。
至于为什么要修改我就不知道了
<%
...
@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1"
%>

<%
...
@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls"
%>
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
>
<
HTML
>
<
HEAD
>
<
title
>
WebForm1
</
title
>
<
meta
name
="GENERATOR"
Content
="Microsoft Visual Studio .NET 7.1"
>
<
meta
name
="CODE_LANGUAGE"
Content
="C#"
>
<
meta
name
="vs_defaultClientScript"
content
="JavaScript"
>
<
meta
name
="vs_targetSchema"
content
="http://schemas.microsoft.com/intellisense/ie5"
>
</
HEAD
>
<
body
MS_POSITIONING
="GridLayout"
>
<
form
id
="Form1"
method
="post"
runat
="server"
>
<
iewc:TreeView
id
="DeptTree"
style
="Z-INDEX: 101; LEFT: 128px; POSITION: absolute; TOP: 200px"
runat
="server"
></
iewc:TreeView
>
</
form
>

<
script
type
="text/javascript"
>
...
var dpTree = document.getElementById("DeptTree");
window.document.body.onload = function()

...{
initTree();
}
function initTree()

...{
var root = newTreeNode("0", "中国");
alert(root.getAttribute("expanded"));
dpTree.add(root);
alert(root.getAttribute("expanded"));
var child1 = newTreeNode("1", "湖北");
child1.setAttribute("expanded", "true");
root.add(child1);
var child2 = newTreeNode("2", "武汉");
child1.add(child2);
root.setAttribute("expanded", "true");
}
function newTreeNode(id, name)

...{
var node = dpTree.createTreeNode();
node.setAttribute("id", id );
node.setAttribute("text", name);
node.setAttribute("expanded", "true")
return node;
}
</
script
>
</
body
>
</
HTML
>
c