我用vs2005,asp.net中的TreeView控件做导航,为了解决在页面跳转后的TreeView的状态保持问题,我不得已在新页面的pageload中根据上一页面传的参数重新读数据库重新填充TreeView,然后用javascript重新对已选择的节点定位.
主要代码如下,望高人解答,在线等!急急!!
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.m_sSelectedNodePath.Value = this.Server.UrlDecode(this.Request.QueryString["SelectedNodePath"]); //SelectedNodePath中存的是上一页面中用户选择的节点路径
            
            this.RebuildTree(m_sSelectedNodePath.Value);  //根据选择树节点的路径值建TreeView
        }
        this.Page.ClientScript.RegisterStartupScript(this.GetType(), "s", "nodeScrollToView()", true);        
    }滚动条定位的javascript函数如下
function nodeScrollToView( )
{
  
 var tree = document.getElementById('<%=m_tvTreeView.ClientID %>');
if(tree != null)
 {
    var elem = document.getElementById( tree.id + "_SelectedNode");
     if(elem != null)
     { 
       var node = document.getElementById(elem.value);          
        if(node != null)
        {
        node.scrollIntoView();
        alert( document.all.<%=this.TreeViewPanel.ClientID%>.scrollTop);
        alert(document.all.<%=this.TreeViewPanel.ClientID%>.scrollLeft);
        }
            
      }
  }
  
} 问题是,在alert( document.all.<%=this.TreeViewPanel.ClientID%>.scrollTop);
        alert(document.all.<%=this.TreeViewPanel.ClientID%>.scrollLeft);
这两句谈出在页面上但没点击"确定"的时候,可以看到页面上的节点定位准确,但点击alert弹出的"确定"后滚动条又在最上方,不能定位!!为什么!! 等待高手!!!