C# 高亮显示选定的树节点
如何在ASP.NET中突出显示选定的树节点(UI.WebControl)?目的是让用户看到他或她当时正在查看的类别 我的想法是,在每个树节点上,检查其所选属性是否为真,然后将其字体或其他颜色更改为其他颜色。我读过关于设置“前景色”的书,但对于这种树型来说,它似乎并不存在 另一个想法是向每个节点添加某种JavaScript 作为一个例子,今天的代码是这样的:C# 高亮显示选定的树节点,c#,asp.net,treeview,C#,Asp.net,Treeview,如何在ASP.NET中突出显示选定的树节点(UI.WebControl)?目的是让用户看到他或她当时正在查看的类别 我的想法是,在每个树节点上,检查其所选属性是否为真,然后将其字体或其他颜色更改为其他颜色。我读过关于设置“前景色”的书,但对于这种树型来说,它似乎并不存在 另一个想法是向每个节点添加某种JavaScript 作为一个例子,今天的代码是这样的: private void BuildTree() { TreeNode nodeNew = new TreeNode
private void BuildTree()
{
TreeNode nodeNew = new TreeNode("Unread", MessageFolder.New.ToString());
TreeNode nodeProcessed = new TreeNode("Read", MessageFolder.Processed.ToString());
TreeViewFolders.Nodes.Add(nodeNew);
TreeViewFolders.Nodes.Add(nodeProcessed);
}
您必须使用ASPX页面上的服务器控件,您可以指定
<asp:TreeView id="LinksTreeView"
Font-Names= "Arial"
ForeColor="Blue"
SelectedNodeStyle-ForeColor="Green"
SelectedNodeStyle-VerticalPadding="0"
OnSelectedNodeChanged="Select_Change"
runat="server">
下面是在母版页中使用web表单解决ASP.NET 4.0中问题的一种方法
在演示文稿页面中,您可以有一个树状视图,如下所示:
<asp:TreeView
ID="tv"
runat="server"
SelectedNodeStyle-BorderStyle="Solid"
SelectedNodeStyle-HorizontalPadding="5"
SelectedNodeStyle-VerticalPadding="5"
onselectednodechanged="tv_SelectedNodeChanged">
<Nodes>
<asp:TreeNode Text="Contact" Value="~/General/Contact.aspx"></asp:TreeNode>
<asp:TreeNode Text="Change login name" Value="~/General/ChangeLoginName.aspx"></asp:TreeNode>
<asp:TreeNode Text="Change password" Value="~/General/ChangePassword.aspx"></asp:TreeNode>
<asp:TreeNode Text="Terms and Policies" Value="~/General/TermsOfUse.aspx"></asp:TreeNode>
</Nodes>
</asp:TreeView></td>
第二个函数是上面提到的处理程序。在c#后面的代码中:
protected void HighlightSelectedLink(TreeNodeCollection nodes, string treeViewSelectedValue)
{
if (!string.IsNullOrEmpty(treeViewSelectedValue))
{
foreach (TreeNode tn in nodes)
{
if (tn.Value == treeViewSelectedValue)
{
tn.Selected = true;
}
else
{
tn.Selected = false;
}
HighlightSelectedLink(tn.ChildNodes, treeViewSelectedValue);
}
}
}
protected void tv_SelectedNodeChanged(object sender, EventArgs e)
{
string treeViewSelectedValue = tv.SelectedValue;
if (treeViewSelectedValue.EndsWith(".aspx"))
{
Response.BufferOutput = true;
Response.Redirect(tv.SelectedValue);
}
}
protected void Page_PreRender(object sender, EventArgs e)
{
string treeViewSelectedValue = Request.AppRelativeCurrentExecutionFilePath;
if (!string.IsNullOrEmpty(treeViewSelectedValue))
{
TreeNodeCollection nodes = tv.Nodes;
HighlightSelectedLink(nodes, treeViewSelectedValue);
}
}
protected void tv_SelectedNodeChanged(object sender, EventArgs e)
{
TreeView tv = (TreeView)sender;
tv.SelectedNodeStyle.ForeColor = System.Drawing.Color.MidnightBlue;
tv.SelectedNodeStyle.BackColor = System.Drawing.Color.PowderBlue;
tv.SelectedNodeStyle.Font.Bold = true;
}