使一个ScrollBar转到TreeView ASP.Net中的选定记录

时间:2010-02-26 21:24:09

标签: asp.net vb.net

我有一个treeview控件,在运行时使用员工名称的金字塔填充。我通过在树视图所在的标记中放置overflow:auto“将css滚动条放在视图上。用户现在要求我在树视图中将滚动条向下移动,其中选择了树视图项。

如何让滚动条转到选择了树视图的地方?

注意: treeView1.SelectedNode.EnsureVisible();

在asp.net中不可用另一种方式。

2 个答案:

答案 0 :(得分:0)

你需要一些自定义的javascript和一些代码隐藏。首先使用找到here的JS方法获取treenode的客户端ID:

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;
}

然后在您的代码隐藏中,您可以使用scrollIntoView() javascript方法注册启动脚本以将div滚动到treenode:

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

答案 1 :(得分:0)

以下JavaScript应该有所帮助:

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

如果选择节点会触发回发,请尝试:

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