2009-02-23 52 views

回答

4

我想通了。 TreeView控件在客户端上创建一个javascript对象。它被命名为任何你所谓的带有'_Data'的treeview。该对象可让您获取对所选节点的引用。

下面的代码使用ASP.Net Ajax扩展。只要记住要将TreeView名称更改为您称为您的任何名称。

var name = myTreeView_Data.selectedNodeID.value; 
var selectedNode = $get(name); 

if(selectedNode) 
{ 
selectedNode.scrollIntoView(true); 
} 
+0

它不适合我。我正在使用更新面板(AJAX)下的treeview。 – Kangkan 2011-02-26 05:19:01

0

你也可以使用下面的代码:

 var elem = document.getElementById('TreeView1_SelectedNode'); 
     if(elem != null) 
     {  
      var node = document.getElementById(elem.value);  
      if(node != null)  
      {  
       node.scrollIntoView(true);  
      } 
     } 

幸得Paul Kimmel

1

我用保罗的办法,它为我工作。我在用户控件中的更新面板中有一个TreeView,该用户控件在每个PreRender期间被重建。只要TreeView构建,我运行以下。

if (Page.IsPostBack) 
     { 
      string s2 = @"var elem = document.getElementById('{0}_SelectedNode'); 
          if(elem != null) 
          { 
           var node = document.getElementById(elem.value); 
           if(node != null) 
           { 
            node.scrollIntoView(true); 
           } 
          } 
         "; 
      ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", s2.Replace("{0}", tvOrgChart.ClientID), true); 
     } 

幸得Paul Kimmel

2

这里是树视图中的解决方案时,点击特定的树节点,它只是滚动到页面的关注标题(不重新引导),对于这一点,我们简单的HTML代码是存在的,现在我们看到的是什么呢?

<html>

<body>

<div id="sidebar"> 
     <ul> 
      <li><a href="#contacts" >Contact</a></li> 

       /***here is the link*****/` 
     </ul> 
    </div> 

<div style="height: 250px;" id="contacts">

  /*here your content*/ 

     </div> 

</body>

</html>

0

此方法添加到您的代码后面。它为我工作。用您的treeView控件的ID替换treeView。

protected override void OnPreRender(EventArgs e) { 
     //return some code to run on the client 
     string jsScript = @" 
      <script language=javascript> 
       function Tree_scrollIntoView() { 
        var data = " + treeView.ClientID + @"_Data; 
        if (!data) { 
         return; 
        } 
        if ((typeof(data.selectedClass) != ""undefined"") && (data.selectedClass != null)) { 
         var id = data.selectedNodeID.value; 
         if (id.length > 0) { 
          var selectedNode = document.getElementById(id); 
          if ((typeof(selectedNode) != ""undefined"") && (selectedNode != null)) { 
           selectedNode.scrollIntoView(true) 
          } 
         } 
        } 
       } 

       $(document).ready(function() { 
        Tree_scrollIntoView(); 
       });      
      </script>"; 

     string jsScriptKey = "Scroll_treeview_to_selected"; 
     if (!Page.ClientScript.IsStartupScriptRegistered(this.GetType(), jsScriptKey)) { 
      Page.ClientScript.RegisterClientScriptBlock(this.GetType(), jsScriptKey, jsScript); 
     } 

     base.OnPreRender(e); 
    }