Problembeschreibung: Es gibt nur vier Knoten in der TreeView im Frameset. Nachdem Sie einen Knoten geöffnet haben, schließen Sie die anderen drei Knoten.
Zuerst habe ich es in TreeView1_Expand geschrieben, was funktioniert, aber Sie müssen Autopostback auf true setzen. Beim Aktualisieren sieht es hässlich aus. Ich habe im Internet nach Informationen gesucht und verwandte Themen sind wie folgt.
==================
1. „Beim Erweitern nicht senden, nur beim Ändern des ausgewählten Knotens senden“
2. „Aktivieren Sie TreeView, um nach dem Erweitern eines Knotens automatisch alle anderen erweiterten Knoten zurückzuziehen, d. h. es gibt nur einen erweiterten Knoten gleichzeitig.“
3. „Lösung zur TreeView-Erweiterung ohne Flackern“
4. „TreeView-Sonderdiskussion“
5. „Forschung zur TreeView-JavaScript-Steuerungsmethode“
==================
Oben gibt es ein Javascript-Skript, das gut geschrieben ist, aber nachdem ich es längere Zeit ausprobiert habe, bekomme ich immer Fehlermeldungen.
Also habe ich selbst eines geschrieben.
<script language="JavaScript">
Funktion initTree()
{
var tree = document.all["TreeView1"];
tree.attachEvent("onexpand", SelectedIndexChange); //Ein Ereignis anhängen
}
Funktion 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;//Ich habe nur vier Knoten verwendet, versuchen Sie es mit mehr als zehn Knoten.
this.TreeView1.getTreeNode(nodeIndex).setAttribute('expanded','false');
}
}
}
</script>
Schreiben Sie abschließend eine in den Textkörper
<body onload="initTree();">
Es ist gebrauchsfertig.
Natürlich kann man in page_load auch Javascript schreiben wie im „TreeView Forum“, aber das wäre sehr umständlich und fehleranfällig.