Faire une barre de défilement Aller à l'enregistrement sélectionné dans TreeView ASP.Net
Question
J'ai un contrôle TreeView qui obtient peuplé à l'exécution avec une pyramide des noms des employés. Je mets la barre de défilement css sur la vue en mettant overflow:. Auto » dans la balise où le TreeView est situé Les utilisateurs me demandent maintenant d'avoir la barre de défilement descendre dans l'arborescence où un élément de TreeView est sélectionné
.Comment puis-je faire une barre de défilement pour aller à un endroit où la vue arborescente a été sélectionné?
Note: treeView1.SelectedNode.EnsureVisible ();
n'est pas disponible en asp.net besoin d'une autre façon.
Pas de solution correcte
Autres conseils
Vous aurez besoin d'un javascript sur mesure et un code-behind. Commencez par utiliser la méthode JS trouvé ici pour obtenir l'ID client de 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;
}
Ensuite, 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 scrollIntoView()
javascript:
Dim script As String = String.Format("var treeNode = GetTreeNodeID('{0}'); treeNode.scrollIntoView();", myTreeNode.Tooltip)
Page.ClientScript.RegisterStartupScript("scrollScript", script)
Le JavaScript follwoing devrait 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"