asp.net-Baumansicht programmatisch die Knotenfarbe einstellen

  • Ich möchte die Knotenfarben einer Baumansicht zur Laufzeit einstellen. Ich fülle die Baumansicht aus einer Sammlung, die die Eltern-ID, die Kinder-ID und die Beschreibung enthält, und füge eine Eigenschaft hinzu, die die Farbe darstellt, die auf den Knoten angewendet werden soll. FWIW die Quelle ist eine Datenbank, die App ist c #.

    In einer Rasteransicht verwende ich RowDataBound (), um das Steuerelement programmgesteuert zu beeinflussen. Ich bin nicht sicher, wie dies in der Baumansicht geschehen soll, einschließlich des zu verwendenden Ereignisses (DataBound ()? TreeViewDataBound ()?). Meine Forschung war bisher nicht fruchtbar. Ein Code-Snippet wäre sehr nützlich.

    Vielen Dank für Ihre Hilfe.

    22 November 2011
    user542319
4 answers
  • Hoffentlich gibt Ihnen dies einen rasenden Hinweis.

    Wenn Sie einen Knotentext setzen, anstatt

     zu setzen Node Text
     

    gesetzt als

     <div style='color: red'>Node Text</a>
     
    22 November 2011
    Valamas
  • Sie können das Prerender-Ereignis verwenden:

    protected void TreeView1_PreRender (Objektsender, EventArgs e)

    ]
    19 January 2014
    Babak
  • Wenn Sie sich mit dem Standard-TreeView-Steuerelement beschäftigen, können Sie dies in den TreeDataBound-Ereignis .

    Ein kurzes Beispiel (nicht getestet):

     <asp:TreeView runat="server"
        ID="tvMyTreeView"
        OnTreeNodeDataBound="tvMyTreeView_TreeNodeDataBound"
        />
     

    Und das Backend:

     protected void tvMyTreeView_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
    {
        DataRowView dr = (DataRowView)e.Node.DataItem;
        e.Node.Style.Add("color", dr["COLOR"].ToString());
    }
     

    Wenn Sie Telerik RadTreeView verwenden, lautet der Ereignisname NodeDataBound

    Sie müssen das Beispiel wahrscheinlich anpassen, um es besser an Ihre Bedürfnisse anzupassen, aber hoffentlich werden Sie damit beginnen.

    22 November 2011
    recf
  • Seit .NET Framework 4.5 können Sie die folgenden Stileigenschaften verwenden:

    27 July 2015
    Vladislav