問題描述:frameset中的TreeView,裡面就四個節點,想打開一個後,關閉其它三個節點。
開始是在TreeView1_Expand裡寫,倒也能用,可要設定autopostback為true,刷新時很難看,就在網路上找資料相關主題如下:
==================
1. "展開時不提交,改變選擇節點時才提交"
2. "使TreeView展開一個節點後自動縮回其他所有的已經展開的節點,就是說同一時間內只有一個展開節點"
3. "TreeView展開無閃爍的解決方法"
4. "TreeView專題討論"
5. "TreeView JavaScript控制方法研究"
==================
上面有個javascript角本寫的不錯,可試了半天老是出錯。
於是自已寫了一個。
<script language="JavaScript">
function initTree()
{
var tree = document.all["TreeView1"];
tree.attachEvent("onexpand", SelectedIndexChange); //追加個事件
}
function SelectedIndexChange()
{
var temp = this.TreeView1.clickedNodeIndex;
var nodes = new Array();
nodes = this.TreeView1.getChildren();
for(i=0;i<nodes.length;i++)
{
if(i!=temp)
{
if(i<10)
nodeIndex = "0"+i;//我這只用到了四個節點的,十個以上的自已試試看。
this.TreeView1.getTreeNode(nodeIndex).setAttribute('expanded','false');
}
}
}
</script>
最後在body裡寫一個
<body onload="initTree();">
就可以用了。
當然也可以像"TreeView專題討論"中把javascript寫在page_load裡,不過那樣就很麻煩了,也很容易出錯兒。