Domanda

Ho un controllo TreeView che viene popolato in fase di esecuzione con una piramide di nomi di dipendenti. Ho messo la barra di scorrimento CSS sulla vista mettendo overflow:. Auto" nel tag in cui si trova la vista ad albero Gli utenti sono ora mi chiede di avere la barra di scorrimento scendere nella vista ad albero in cui viene selezionata una voce ad albero

.

Come faccio a fare una barra di scorrimento per andare in un posto dove è stata selezionata la vista ad albero?

Nota: treeView1.SelectedNode.EnsureVisible ();

non è disponibile in asp.net bisogno di un altro modo.

Nessuna soluzione corretta

Altri suggerimenti

Avrete bisogno di un po 'di JavaScript personalizzato e alcune code-behind. Avviare utilizzando il metodo JS trovato qui per ottenere l'ID client di un TreeNode:

function GetTreeNodeID(nodeTooltip)
{
    var tree = document.getElementById(TreeView.ClientID); // Change TreeView ClientID.
    var treeLink =  tree.getElementsByTagName('A');    

    for(var element in treeLink)
        if((nodeTooltip == treeLink[element].title) && (treeLink[element].title != ""))                      
            return treeLink[element].id;
}

Poi, nel code-behind, è possibile registrare uno script di avvio per far scorrere il vostro div al TreeNode utilizzando il metodo di scrollIntoView() javascript:

Dim script As String = String.Format("var treeNode = GetTreeNodeID('{0}');  treeNode.scrollIntoView();", myTreeNode.Tooltip)
Page.ClientScript.RegisterStartupScript("scrollScript", script)

Il codice JavaScript follwoing dovrebbe aiutare:

var selected = document.getElementById(node_id);
if (selected) {
   selected.scrollIntoView(true);
}

Se si seleziona il nodo innescherebbe un postback, che provare:

<%@ Page Title="" Language="C#" MaintainScrollPositionOnPostback="true"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top