什么都不说了,直接上代码.
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script runat="server">
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
if (TreeView1.SelectedNode == null)
return;
Label1.Text = TreeView1.SelectedValue;//更新结果,绑定也可以在此做
UpdatePanel2.Update();//手动更新结果显示所在的UpdatePanel控件
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
</div>
<table style="width:100%;">
<tr>
<td>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False"
UpdateMode="Conditional">
<%--设置UpdateMode为条件更新,同时设置ChildrenAsTriggers为false,也就是UpdatePanel1容器内部的子控件的更新与之无关--%>
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" Width="200px" Height="100px" ScrollBars="Auto">
<asp:TreeView ID="TreeView1" runat="server"
onselectednodechanged="TreeView1_SelectedNodeChanged">
<SelectedNodeStyle BorderColor="#E0E0E0" BorderStyle="Solid" BorderWidth="1px" BackColor="#E0E0E0" />
<Nodes>
<asp:TreeNode Text="科目" Value="000">
<asp:TreeNode Text="语文" Value="001" />
<asp:TreeNode Text="数学" Value="002" />
<asp:TreeNode Text="英语" Value="003" />
<asp:TreeNode Text="物理" Value="004" />
<asp:TreeNode Text="化学" Value="005" />
<asp:TreeNode Text="政治" Value="006" />
<asp:TreeNode Text="生物" Value="007" />
<asp:TreeNode Text="体育" Value="008" />
<asp:TreeNode Text="卫生" Value="009" />
<asp:TreeNode Text="美术" Value="010" />
<asp:TreeNode Text="音乐" Value="011" />
</asp:TreeNode>
</Nodes>
</asp:TreeView>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</td>
<td>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<%--设置UpdateMode为条件更新,我们将以手动更新代替自动更新--%>
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
</form>
</body>
</html>本段代码可以实现当点击TreeView1控件时,激发TreeView1控件的OnSelectedNodeChanged事件,但保持TreeView1控件的SelectedNode的目前位置,同时SelectedNode的样式将成为SelectedNodeStyle

博客内容介绍了如何利用两个UpdatePanel来实现ASP.NET TreeView控件在选定节点后,保持SelectedNode的位置不变,避免页面刷新导致的用户体验问题。
240

被折叠的 条评论
为什么被折叠?



