Concentre um Iwtreeview Intraweb em um item selecionado
-
22-09-2019 - |
Pergunta
Eu tenho uma vista bastante longa de árvore (iwtreeview) em um iwregion (clipregion: = true) com um nó selecionado. Como faço para concentrar esse nó de modo que seja visível para o usuário após uma renderização? o
O que eu faço até agora:
Em Delphi
tree.Selected:= itemToFocus;
tree.ScrollToName:= tree.Selected.Name;
Isso gera isso no meu site (feito por iwtreeview.pas por ATOLED):
<script language="javascript">
...
function initialize {
...
positionNAVIGATORTree( "i2" );
}
</script>
...
<script language="javascript">
function positionNAVIGATORTree( iNodeID )
{
FindElem( "NAVIGATOR").scrollTop =
FindElem( iNodeID ).offsetTop - 40;
return true;
}
</script>
Ainda a árvore após uma renderização mostrará o item mais alto. Isso é verdade para todos os navegadores que testei (IE8, Firefox, Chrome).
Solução
A função JavaScript window.scrollTo(x,y)
Permite que você role uma janela, isso funcionará para o seu controle?
Outras dicas
O Elite Suite (recentemente de código aberto) possui um TreeView muito melhor (TarciwstringGrid+TarciwstringGridTreeContent) com seleção e rolagem perfeitamente funcionando. Tente!