我想在运行时设置树视图的节点颜色。我从具有parentid,childid和description的集合中填充树视图,并且我添加了一个表示我想要应用于节点的颜色的属性。 FWIW源是一个数据库,应用程序是C#。
在gridview中,我使用RowDataBound()以编程方式影响控件。我不知道如何在树视图中这样做,包括使用哪个事件(DataBound()?TreeViewDataBound()?)。到目前为止,我的研究还没有取得多少成果。代码片段非常有用。
答案 0 :(得分:4)
希望这会给你一个强烈的线索。
设置节点文本时,而不是设置
Node Text
设为
<div style='color: red'>Node Text</a>
答案 1 :(得分:2)
您可以使用Prerender事件:
protected void TreeView1_PreRender(object sender,EventArgs e)
{
if (IsPostBack) return;
foreach (TreeNode t in TreeView1.Nodes)
{
if (t.Value.EndsWith("1")) //Some Condition
{
string s = t.Text;
string fs = "<span style=\"color: #CC0000\">" + s + "</span>";
t.Text = fs;
}
}
}
答案 2 :(得分:0)
假设您正在处理标准的TreeView控件,可以在TreeDataBound Event中执行此操作。
一个简短的例子(未经测试):
<asp:TreeView runat="server"
ID="tvMyTreeView"
OnTreeNodeDataBound="tvMyTreeView_TreeNodeDataBound"
/>
后端:
protected void tvMyTreeView_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
{
DataRowView dr = (DataRowView)e.Node.DataItem;
e.Node.Style.Add("color", dr["COLOR"].ToString());
}
如果您使用的是Telerik RadTreeView,则事件名称为NodeDataBound
您可能需要调整示例以更好地满足您的需求,但希望这会让您开始。
答案 3 :(得分:0)
从.NET Framework 4.5开始,您可以使用以下样式属性: