2010-02-26 6 views
0

J'ai un contrôle treeview qui est rempli à l'exécution avec une pyramide de noms d'employés. Je place la barre de défilement css sur la vue en mettant overflow: auto "dans la balise où se trouve l'arborescence.Les utilisateurs me demandent maintenant de faire descendre la barre de défilement dans l'arborescence où un élément treeview est sélectionnéFaire un ScrollBar Aller à l'enregistrement sélectionné dans TreeView ASP.Net

Comment puis-je faire une barre de défilement pour aller à un endroit où la vue arborescente a été sélectionné

Remarque: treeView1.SelectedNode.EnsureVisible();

n'est pas disponible en asp.net besoin d'une autre façon

.

Répondre

0

Vous avez besoin d'un code javascript personnalisé et d'un code-behind Commencez par utiliser la méthode JS nd here pour obtenir l'ID client d'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; 
} 

Puis dans votre code-behind, vous pouvez enregistrer un script de démarrage pour faire défiler votre div au treenode en utilisant la méthode javascript scrollIntoView():

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

le follwoing JavaScript doit aider:

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

Si vous sélectionnez le nœud déclencherait un postback, que d'essayer:

<%@ Page Title="" Language="C#" MaintainScrollPositionOnPostback="true" 
Questions connexes