древовидная структура asp.net программно устанавливает цвет узла - PullRequest
2 голосов
/ 22 ноября 2011

Я хочу установить цвета узлов дерева в режиме исполнения. Я заполняю древовидное представление из коллекции, в которой есть parentid, childid и description, и я добавил свойство, представляющее цвет, который я хочу применить к узлу. FWIW источником является база данных, приложение на C #.

В сетке я использую RowDataBound () для программного воздействия на элемент управления. Я не уверен, как это сделать в древовидном представлении, в том числе, какое событие использовать (DataBound ()? TreeViewDataBound ()?). Мои исследования до сих пор не были плодотворными. Фрагмент кода был бы очень полезен.

Ответы [ 4 ]

4 голосов
/ 22 ноября 2011

Надеюсь, это даст вам разгульную подсказку.

При настройке текста узла вместо установки

Node Text

, установленной как

<div style='color: red'>Node Text</a>
2 голосов
/ 19 января 2014

Вы можете использовать событие Prerender:

защищенное пустое TreeView1_PreRender (отправитель объекта, 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;
        }
    }
}
0 голосов
/ 27 июля 2015

Начиная с .NET Framework 4.5 вы можете использовать следующие свойства стиля:

0 голосов
/ 22 ноября 2011

Предполагая, что вы имеете дело со стандартным элементом управления 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

Возможно, вам придется настроить пример, чтобы лучшесоответствует вашим потребностям, но, надеюсь, это поможет вам начать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...