Descripción del problema: solo hay cuatro nodos en TreeView en el conjunto de marcos. Después de abrir uno, cierre los otros tres nodos.
Al principio, lo escribí en TreeView1_Expand, que funciona, pero debes configurar autopostback en verdadero. Se verá feo al actualizar. Busqué información en Internet y los temas relacionados son los siguientes:
==================
1. "No enviar al expandir, enviar solo al cambiar el nodo seleccionado"
2. "Habilite TreeView para retraer automáticamente todos los demás nodos expandidos después de expandir un nodo, es decir, solo hay un nodo expandido al mismo tiempo".
3. "Solución para ampliar TreeView sin parpadeos"
4. "Discusión especial sobre TreeView"
5. "Investigación sobre el método de control de JavaScript TreeView"
==================
Hay un script javascript arriba que está bien escrito, pero después de intentarlo durante mucho tiempo, siempre obtengo errores.
Así que escribí uno yo mismo.
<lenguaje de escritura="JavaScript">
función árbolinit()
{
var árbol = document.all["TreeView1"];
tree.attachEvent("onexpand", SelectedIndexChange); //Agregar un evento
}
función SelectedIndexChange()
{
var temp = this.TreeView1.clickedNodeIndex;
var nodos = nueva matriz();
nodos = this.TreeView1.getChildren();
para(i=0;i<nodos.longitud;i++)
{
si(yo!=temperatura)
{
si(yo<10)
nodeIndex = "0"+i;// Solo usé cuatro nodos, pruébalo con más de diez nodos.
this.TreeView1.getTreeNode(nodeIndex).setAttribute('expandido','falso');
}
}
}
</script>
Finalmente, escribe uno en el cuerpo.
<cuerpo onload="initTree();">
Está listo para usar.
Por supuesto, también puedes escribir javascript en page_load como en el "Foro TreeView", pero eso sería muy problemático y propenso a errores.