我正在使用treeview控件。我正在动态构建树。有时树变大,下滚动条需要看整棵树。 用户可以从树中选择一个节点。如果选择了一个节点,我会从服务器端更改节点的颜色。回发后选择treeview节点 - asp.net
我的问题是,如果用户选择了一个在树底部的节点(意思是用户使用下拉滚动条来查看该节点),回发之后显示树的顶部,以查看选定的节点用户需要使用向下滚动条。
我需要在回发后显示选定的节点。我怎样才能做到这一点?
我使用C#和asp.net
我正在使用treeview控件。我正在动态构建树。有时树变大,下滚动条需要看整棵树。 用户可以从树中选择一个节点。如果选择了一个节点,我会从服务器端更改节点的颜色。回发后选择treeview节点 - asp.net
我的问题是,如果用户选择了一个在树底部的节点(意思是用户使用下拉滚动条来查看该节点),回发之后显示树的顶部,以查看选定的节点用户需要使用向下滚动条。
我需要在回发后显示选定的节点。我怎样才能做到这一点?
我使用C#和asp.net
您可以使用更新面板来解决此问题。
在jquery的帮助下,我们可以将选定的节点ID发送到查询字符串和document.ready中,我们可以读回并突出显示该节点。 对代码一看:后面的onclick代码
代码:
public void TreeView1_OnClick(Object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(
Page,
Page.GetType(),
"HighlightSelectedNode",
"HighlightSelectedNode();",
true
);
}
和JavaScript:
<script type="text/javascript" language="javascript">
function HighlightSelectedNode() {
var selectedNodeID = $('#<%= TreeView1.ClientID %>_SelectedNode').val();
if (selectedNodeID != "") {
document.location.href = "http://" + window.location.host
+ window.location.pathname
+ "?Node=" + selectedNodeID;
return false;
} else {
// alert("Not found");
}
}
// Highlight active node on pageload.
$(document).ready(function() {
var querystring = location.search.replace('?', '').split('&');
var queryObj = {};
for (var i = 0; i < querystring.length; i++) {
var name = querystring[i].split('=')[0];
var value = querystring[i].split('=')[1];
queryObj[name] = value;
}
var nodeID = queryObj["Node"];
$('#' + nodeID).css({ 'background-color': '#888'});
});
</script>
我试图更新面板。但那不工作,因为我想 – 2010-11-12 10:07:34