Unplanned
Last Updated: 30 Mar 2016 13:32 by ADMIN
Workaround: 
private void radTreeView1_NodeFormatting(object sender, TreeNodeFormattingEventArgs e)
{
    e.NodeElement.ContentElement.TextAlignment = ContentAlignment.MiddleCenter;
}
Unplanned
Last Updated: 04 Jun 2020 09:51 by ADMIN
Please refer to the attached gif file for better illustration.
Unplanned
Last Updated: 21 Jun 2018 14:39 by ADMIN
Say you have a button which clears the old nodes and adds a number of new child nodes to the currently selected node. If the selected node is collapsed, the newly added nodes are not visible but the scrollbar updates as if they were.

Workaround the issue by using the BeginUpdate/EndUpdate methods of RadTreeView when updating the nodes:
radTreeView1.BeginUpdate();
    node.Nodes.Clear();
    foreach (RadTreeNode treeNode in nodes)
    {
        node.Nodes.Add((RadTreeNode)treeNode.Clone());
    }
    radTreeView1.EndUpdate();
Unplanned
Last Updated: 15 Aug 2017 09:38 by ADMIN
To reproduce:

radTreeView1.Filter = "new";
var node = new RadTreeNode( "test" );
radTreeView1.Nodes.Add( node );
//here the node is not in the Nodes collection
if ( radTreeView1.Nodes.Contains( node ) == false )
{
 radTreeView1.Nodes.Add( new RadTreeNode( "test" ) );
}

Workaround: remove the filter, perform the desired check and restore the filter
Unplanned
Last Updated: 30 Mar 2016 13:33 by ADMIN
To reproduce:

Use the following code on an empty RadTreeView: 

this.TreeView.AddNodeByPath("General\\Billing\\February\\Report.txt");

You will see that the Report.txt node will be added to the Root node

Workaround:

Use the following method:

private RadTreeNodeCollection AddNode(string path)
{
    if (path == String.Empty)
        return this.TreeView.Nodes;


    string node = Path.GetFileName(path);
    RadTreeNodeCollection parent = AddNode(Path.GetDirectoryName(path));


    if (parent.Contains(node))
        return parent[node].Nodes;
    else
        return parent.Add(node).Nodes;
}

Unplanned
Last Updated: 15 Aug 2017 09:36 by Jesse Dyck
Scenario: We have an object P which has two lists of child objects of types C1 and C2.
If we create a list of P and we try to bind the tree to this list and display the two lists as child nodes, we will not succeed.
Unplanned
Last Updated: 15 Aug 2017 09:23 by Jesse Dyck
ADMIN
Created by: Stefan
Comments: 1
Category: TreeView
Type: Feature Request
2
RadTreeView. Add node templates as ASP.NET AJAX - http://www.telerik.com/help/aspnet-ajax/treeview-templates-structure.html
Unplanned
Last Updated: 30 Mar 2016 13:29 by Svetlin
Copy and paste in RadTreeView does not copies all properties of RadTreeNode.
Unplanned
Last Updated: 30 Mar 2016 13:22 by ADMIN
To reproduce:
  radTreeView1.Filter = "new";
            radTreeView1.Nodes.Add("new Node");
            for (int i = 0; i < 1000; i++)
            {
                radTreeView1.Nodes.Add(new RadTreeNode("test"));
            }

Workaround:
            radTreeView1.TreeViewElement.Update(RadTreeViewElement.UpdateActions.Reset);
Unplanned
Last Updated: 30 Aug 2022 06:04 by Massimo

Steps to reproduce the issue:

1. Run the example app.
2. Click undo (the last item is removed).
3. Click redo (the last item should be added to the Treeview, it does not)
If I run the application and click undo twice and then redo twice, the things work. The Treeview is not updated if I add and remove the same element instance to the binding list.

Workaround: rebind the treeview after redo or create a new instance of the Element class with the same name and id.

Unplanned
Last Updated: 16 May 2019 05:06 by ADMIN
To reproduce: add a RadTreeView and a RadBreadCrumb and apply the MaterialTeal theme. Refer to the attached screenshot illustrating the wrong font of the selected item.

Workaround:

    public partial class RadForm1 : Telerik.WinControls.UI.RadForm
    {
        public RadForm1()
        {
            InitializeComponent(); 

            ThemeResolutionService.ApplicationThemeName = "MaterialTeal";

            this.radTreeView1.NodeFormatting += radTreeView1_NodeFormatting;
            this.radTreeView1.SelectedNodeChanged += radTreeView1_SelectedNodeChanged; 
        }
 
        private void UpdateFont()
        {
            foreach (RadSplitButtonElement item in this.radBreadCrumb1.BreadCrumbElement.Items)
            {
                foreach (RadMenuItem menuItem in item.Items)
                {
                    if (this.radTreeView1.SelectedNode != null && menuItem.Text == this.radTreeView1.SelectedNode.Text)
                    {
                        menuItem.Font = new Font(f.FontFamily,f.Size, FontStyle.Bold);
                    }
                }
            }
        }
        
        private void radTreeView1_SelectedNodeChanged(object sender, Telerik.WinControls.UI.RadTreeViewEventArgs e)
        {
            UpdateFont();
        }

        Font f = null;

        private void radTreeView1_NodeFormatting(object sender, Telerik.WinControls.UI.TreeNodeFormattingEventArgs e)
        {
            f = e.NodeElement.ContentElement.Font;
        }
Unplanned
Last Updated: 24 Aug 2018 12:59 by ADMIN
Workaround:
private void radButton1_Click(object sender, EventArgs e)
{
    var allNodes = radTreeView1.TreeViewElement.GetNodes().ToList();

    int row = 0;
  
    Workbook workbook = new Workbook();
    Worksheet newWorksheet = workbook.Worksheets.Add();

    foreach (var item in allNodes)
    {

        CellSelection cell = newWorksheet.Cells[row, item.Level];
        cell.SetValue(item.Text);

        cell = newWorksheet.Cells[row++, 2];
        cell.SetValue(item.Checked);

    }

    var formatProvider = new XlsxFormatProvider();


    var bytes = formatProvider.Export(workbook);
    File.WriteAllBytes(@"D:\Test.xlsx", bytes);


}
Unplanned
Last Updated: 15 Aug 2017 10:02 by ADMIN
ADMIN
Created by: Ralitsa
Comments: 0
Category: TreeView
Type: Feature Request
1

			
Unplanned
Last Updated: 15 Aug 2017 09:33 by Svetlin
Sort the selected nodes according to their position in the tree
Unplanned
Last Updated: 06 Feb 2017 12:00 by ADMIN
Please refer to the attached gif file and sample project. The screen tip position is not the same each time. Hence, the issue may not be reproducible every time.

Workaround: use the TooltiptextNeeded event.
Unplanned
Last Updated: 16 Sep 2016 14:22 by ADMIN
Workaround:

raise a flag before the delete operation and cancel the SelectedNodeChanging event
Unplanned
Last Updated: 30 Mar 2016 13:29 by ADMIN
To reproduce:
Add a RadTreeView and a Timer(from the Windows.Forms namespace). Set the timer's interval to some short duration and add nodes to tree on its tick event. Scroll the thumb while the timer is ticking. At some point you will notice that the scrollbar's maximum value is not correct.

Workaround:
Do not add nodes while scrolling:
List<string> cachedValues = new List<string>();
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer() { Interval = 100 };

void radTreeView1_MouseCaptureChanged(object sender, EventArgs e)
{
    timer.Start();
}

void timer_Tick(object sender, EventArgs e)
{
    timer.Stop();
    if (this.cachedValues.Count > 0 && !radTreeView1.TreeViewElement.Scroller.Scrollbar.ThumbElement.Capture)
    {
        foreach (string value in this.cachedValues)
        {
            root.Nodes.Add(value);
        }

        cachedValues.Clear();
    }
}

private void timerUpdateNodes_Tick(object sender, EventArgs e)
{
    for (int i = 0; i < 10; ++i)
    {
        if (random.NextDouble() < .2)
        {
            if (radTreeView1.TreeViewElement.Scroller.Scrollbar.ThumbElement.Capture)
            {
                cachedValues.Add("Node");
            }
            else
            {
                root.Nodes.Add("Node");
            }
        }
    }
}
Unplanned
Last Updated: 30 Mar 2016 13:28 by Svetlin
The child nodes are aligned to the root nodes when ShowRootLines property is set to false.
Unplanned
Last Updated: 08 Jul 2024 10:18 by ADMIN
Created by: Dev
Comments: 1
Category: TreeView
Type: Bug Report
0

In this particular case, the control is populated with 100 000. When all items are selected and we click on a single note all other items will be de-selected. This operation takes more time than expected. The de-selection process must be improved.

Unplanned
Last Updated: 29 Mar 2023 11:33 by ADMIN

Use the following code snippet and compare the filtering performance when using bound and unbound mode:

         public RadForm1()
        {
            InitializeComponent(); 

            this.radTextBox1.TextChanged += this.RadTextBox1_TextChanged;
             this.radTextBox2.TextChanged += this.RadTextBox2_TextChanged;
            List<Data> list = new List<Data>();
            this.radTreeView1.BeginUpdate();
            for (int i = 0; i < 100000; i++)
            {
                list.Add(new Data()
                {
                    Id = i,
                    Name = "MyData_"+i,
                    ParentId = -1
                }) ;

                this.radTreeView1.Nodes.Add("MyData_"+i);
            }
            this.radTreeView1.EndUpdate();
            this.radTreeView2.DisplayMember = "Name";
            this.radTreeView2.ParentMember = "ParentId";
            this.radTreeView2.DataSource = list; 
        }

         private void RadTextBox2_TextChanged(object sender, EventArgs e)
         {
               this.radTreeView2.Filter = this.radTextBox2.Text;
         } 
        private void RadTextBox1_TextChanged(object sender, EventArgs e)
        {
            this.radTreeView1.Filter = this.radTextBox1.Text;
        }
    }

    public class Data
    {
        public int Id { get; set; }
        public string Name { get; set; } 
        public int ParentId { get; set; }
    }

Expected behavior: the performance in bound and unbound mode should be quite similar

Actual behavior: the performance is much slower in bound mode

1 2