Описание проблемы: В TreeView в наборе фреймов есть только четыре узла. После открытия одного закройте остальные три узла.
Сначала я написал это в TreeView1_Expand, это работает, но вам нужно установить для autopostback значение true при обновлении. Я искал информацию в Интернете и связанные темы следующие:
==================
1. "Не отправлять при расширении, отправлять только при изменении выбранного узла"
2. «Включите TreeView для автоматического извлечения всех остальных расширенных узлов после расширения узла, то есть одновременно существует только один расширенный узел».
3. «Решение расширения TreeView без мерцания»
4. «Специальное обсуждение TreeView»
5. «Исследование метода управления JavaScript TreeView»
==================
Выше есть хорошо написанный javascript-скрипт, но после долгой попытки я всегда получаю ошибки.
Поэтому я написал его сам.
<script Language="JavaScript">
функция initTree()
{
var Tree = document.all["TreeView1"];
Tree.attachEvent("oneexpand", SelectedIndexChange); //Добавляем событие;
}
функция SelectedIndexChange()
{
вар темп = this.TreeView1.clickedNodeIndex;
вар узлы = новый массив ();
узлы = this.TreeView1.getChildren();
for(i=0;i<nodes.length;i++)
{
если(я!=температура)
{
если (я <10)
nodeIndex = "0"+i;//Я использовал только четыре узла, попробуйте больше десяти узлов.
this.TreeView1.getTreeNode(nodeIndex).setAttribute('expanded', 'false');
}
}
}
</скрипт>
Наконец, напишите один в теле
<body onload="initTree();">
Он готов к использованию.
Конечно, вы также можете написать javascript в page_load, как в «Форуме TreeView», но это будет очень хлопотно и чревато ошибками.