我用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弹出的"确定"后滚动条又在最上方,不能定位!!为什么!! 等待高手!!!
主要代码如下,望高人解答,在线等!急急!!
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弹出的"确定"后滚动条又在最上方,不能定位!!为什么!! 等待高手!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货