Unplanned
Last Updated: 23 Sep 2022 09:02 by Huy
I'm using Telerik TreeList. I'm so happy that it supports Drag&Drop. But, if there are too many items on the list, it is really hard to drag an item from the top to the end of the list. The TreeList doesn't scroll the list automatically (Auto Scroll) when I drag an item to the edge of the TreeList.
Completed
Last Updated: 23 Sep 2022 07:30 by ADMIN
Release 3.6.1 (26 Sep 2022)
Created by: Huy
Comments: 0
Category: TreeList
Type: Bug Report
1

Hello,

The scenario is:

  1. Some filters are applied in OnStateInit
  2. The user clears the filters from the Clear button in the filter menu.
  3. The user opens the filter menu again and the checkboxes and textboxes look like the filters are still applied.

Test page: https://blazorrepl.telerik.com/cmasmAvk52l6Xckn02

This is a regression that occurred in version 3.2.0.

All of the above applies to the Grid component as well.

Unplanned
Last Updated: 21 Sep 2022 20:24 by Huy
Created by: Huy
Comments: 0
Category: TreeList
Type: Feature Request
1
Currently, the TreeList CheckBox selection exposes an option to select the children if the parents are selected. Please also add support for CheckParents option similar to the one in the TreeView component. This will allow marking the parent as selected if its children are selected.
Declined
Last Updated: 24 Aug 2022 15:13 by ADMIN
Created by: Matt
Comments: 1
Category: TreeList
Type: Feature Request
0

From what I can see, currently the only way to set the expanded items for a TreeList is through the state.

The main problem is that the state doesn't fire the OnExpand event, meaning that if you have a server loaded tree you need to make sure to load the data before each item is expanded. It also allows for duplicates in the 'ExpandedItems' if you don't check for duplicates before adding to it.

The TreeView has an 'ExpandedItems' parameter that can be bound which is a bit nicer than using the state, but from my quick test this also doesn't fire the OnExpand event.

 

My request is for one of the following to be added:

  1. Similar to how you can set the 'HasChildrenField' or 'ItemsField' on the TreeList, allow a 'IsExpandedField' value to be bound (Should fire the OnExpand when changed if possible). This would be the simplest way allow bindable control over the expansion of items while also making it so we don't have to manage duplicates in the 'ExpandedItems' collection.
  2. Expose a method to expand/unexpand rows. This would be different to manually changing the state as it would also fire the OnExpand event for each row expanded.
  3. Similar to the TreeView, allow an 'ExpandedItems' to be bound. Preferably this would also fire the OnExpand event.
Unplanned
Last Updated: 19 Jul 2022 12:23 by ADMIN
Created by: Ted
Comments: 0
Category: TreeList
Type: Feature Request
0

The TreeList should add an event OnDragStatus that would query the app during active dragging to determine if the current drag location is valid or not. If invalid, it could show the invalid drag icon:

This would give better feedback to the user during dragging.

Could you add this as a feature request please?

Unplanned
Last Updated: 18 Jul 2022 11:04 by ADMIN
Created by: Ted
Comments: 1
Category: TreeList
Type: Feature Request
0

Not sure if this is a bug or missing feature, but when a user is actively doing drag and drop in the TreeList, the drag and drop should cancel as soon as they press 'Esc', just like in most apps. This is pretty standard behavior. Currently, pressing 'Esc' during drag and drop does not do anything.

If this is not a bug, could you please add this as a feature request?

Unplanned
Last Updated: 15 Jul 2022 06:20 by ADMIN

Hello,

Please add support for sorting and filtering when the TreeList is data bound to a List<Dictionary> or ExpandoObject. Currently these data operations throw an exception System.ArgumentException: Invalid property or field

TreeList REPL page with Dictionary

TreeList REPL page with ExpandoObject

Completed
Last Updated: 21 Mar 2022 13:09 by ADMIN
Release 3.2.0

I am using TreeList and a custom template on a column to display user avatar. I also need to sort and filter on this column. However when combine all of these features (sort and filter) on a template column, it doesn't work. There are 2 scenarios:

- When enable sort, the filtering works

- When disable sort, the filtering doesnt work

Is there any work around solution for this? I am using UI for Blazor 3.0.1

My snippet

https://blazorrepl.telerik.com/mQuxlWkD32B5eGay33
Completed
Last Updated: 15 Feb 2022 20:37 by ADMIN
Release 3.1.0
Created by: Jack
Comments: 5
Category: TreeList
Type: Feature Request
8
Need an OnRowDoubleClick event for editing purposes.
Unplanned
Last Updated: 06 Jan 2022 17:08 by ADMIN
Created by: Stefan
Comments: 2
Category: TreeList
Type: Feature Request
4
I want to bind the treelist to dynamic objects like I can the grid: https://github.com/telerik/blazor-ui/tree/master/grid/binding-to-expando-object.
Completed
Last Updated: 30 Dec 2021 10:57 by Taarti
Release 2.18.0
Created by: Jurgen
Comments: 4
Category: TreeList
Type: Feature Request
9

I would like to start the tree grid with all rows collapsed. At the moment I can do this only through load on demand.

*** Thread created by admin on customer behalf ***

Unplanned
Last Updated: 01 Dec 2021 03:15 by Philip
Created by: Wei
Comments: 1
Category: TreeList
Type: Feature Request
16
I would like the TreeList to support row virtualization. It will be useful when working with large data.
Completed
Last Updated: 22 Nov 2021 15:55 by ADMIN
Release 2.30.0

Hello,

I am using a TelerikTreeList with an EditorTemplate with a TextBox for one of it's columns.

If i am adding a new object to the TreeList and begin typing in the cell with the EditorTemplate the cell is losing focus more or less on keystroke. (If you're typing quite fast it might be 2 or 3 characters before it loses focus.)

If i am editing an existing object the concerned cell doesn't lose focus.

If i change the binding of the TextBox in the EditorTemplate from "bind-Value" to "Value" it is working but i want to use the two-way-binding of the TextBox.

I have a similar UI with a grid instead of TreeList which is working fine with the TextBox in the EditorTemplate.

I Attached an example project to reproduce the problem.

I tested with google chrome, mozilla firefox and microsoft edge and i had the same problem in alle 3 browsers.

 

best regards

Duplicated
Last Updated: 21 Oct 2021 10:45 by ADMIN
Created by: Leigh
Comments: 1
Category: TreeList
Type: Feature Request
4
Unlike the grid, you don't have an OnRowClick event that will overcome the async limitations you indicate in the docs and support for OnSelect. Since everything I have is async, the binding solution just doesn't do enough if I can't catch the click. Is there an alternative to OnRowClick for the TreeList? If not, why not?
Unplanned
Last Updated: 07 Sep 2021 12:57 by ADMIN

I am overriding the built-in Add command and setting an InsertedItem through the TreeList state. However, it looks like the the built-in validation is invoked twice and two validation Tooltips are displayed for the field.

 

Unplanned
Last Updated: 25 Aug 2021 14:28 by ADMIN
Created by: NovaStor
Comments: 0
Category: TreeList
Type: Bug Report
1

I'm experiencing a flickering in the TreeList InCell Editing demo here: https://demos.telerik.com/blazor-ui/treelist/editing-incell

Steps to reproduce:

1. Click on "Mountain Bikes"

2. Click on "Road Bikes"

3. Click on "Touring Bikes"

It can actually be reproduced by clicking on any three editable cells.

Any ideas?

Thank you.

Unplanned
Last Updated: 19 Jul 2021 08:50 by ADMIN
I have a TreeList, bound to an ObservableCollection data source. When I try to add new children the component stays in Create mode even after I click on the Update button.
Unplanned
Last Updated: 11 Jul 2021 09:36 by ADMIN

Hello,

Here is your code of the example "how to load hierarchical data on demand" with the option FilterMode = "@ TreeListFilterMode.FilterMenu"
As you can see if we click on a node the whole hierarchy disappears. if you remove this option all work fine

 

@* this sample shows how to load hierarchical data on demand and one way of handling no data being returned. Depending on your models and data logic you may have to tweak some checks, review the code comments for details.

*@

<TelerikTreeList Data="@Data"
                 ItemsField="@(nameof(Employee.DirectReports))"
                 HasChildrenField="@(nameof(Employee.HasChildren))"
                 OnExpand="@OnExpandHandler"
                 Pageable="true" Width="550px" Height="400px" FilterMode="@TreeListFilterMode.FilterMenu" >
    <TreeListColumns>
        <TreeListColumn Field="Name" Expandable="true" Width="220px" />
        <TreeListColumn Field="HireDate" Width="120px" />
    </TreeListColumns>
</TelerikTreeList>

@code {
    public List<Employee> Data { get; set; }

    // load on demand through the event
    async Task OnExpandHandler(TreeListExpandEventArgs args)
    {
        Employee item = args.Item as Employee;
        if (item.HasChildren && // it is marked as having children
            (item.DirectReports == null || item.DirectReports.Count == 0) // there are no child items
            )
        {
            // request data
            var children = await GetChildren(item);

            if (children.Count > 0)
            {
                // child items exist - add them to the current item
                item.DirectReports = children;
            }
            else
            {
                // no nested data - hide the expand arrow
                item.HasChildren = false;
            }
        }
    }

    async Task<List<Employee>> GetChildren(Employee itm)
    {
        await Task.Delay(400); // simulate delay. Remove for a real app

        List<Employee> data = new List<Employee>();

        // to showcase an example of when no actual child items are returned
        // we will check for too long nesting chain with this simpe logic
        if (itm.Name.LastIndexOf("Child of") < 15)
        {
            data.Add(new Employee
            {
                Name = "Child of " + itm.Name,
                HasChildren = true
            });
        }

        return await Task.FromResult(data);
    }

    // sample model

    public class Employee
    {
        // hierarchical data collections
        public List<Employee> DirectReports { get; set; }
        public bool HasChildren { get; set; }

        // data fields for display
        public string Name { get; set; }
        public DateTime HireDate { get; set; }
    }

    // initial data generation

    protected override async Task OnInitializedAsync()
    {
        List<Employee> data = new List<Employee>();
        for (int i = 0; i < 6; i++)
        {
            data.Add(new Employee
            {
                Name = $"root: {i}",
                HireDate = DateTime.Now.AddYears(-i),
                HasChildren = true
            });
        }

        // mark an item as non-expandable (not having children)
        data[1].HasChildren = false;
        data[1].Name += "(not expandable) ";

        Data = data;
    }
}
Planned
Last Updated: 16 Jun 2021 14:12 by ADMIN
Created by: MaslovRG
Comments: 1
Category: TreeList
Type: Feature Request
2
It would be nice to have the same capabilities for working with TreeList columns as in the ColumnMenu for Grid. Espesially columns chooser. 
Unplanned
Last Updated: 04 May 2021 14:03 by ADMIN

The code below compiles and doesn't give any browser errors when run, but when you collapse a row, all data is collapsed and you can't expand it again.

If you change the line that generates the data to use a List instead of IEnumerable it will work as expected.

REPRODUCIBLE

<TelerikTreeList Data=Data
                 IdField="@nameof(Record.Id)"
                 ParentIdField="@nameof(Record.ParentId)"
                 Height="100%">
    <TreeListColumns>
        <TreeListCheckboxColumn CheckBoxOnlySelection="true" />
        <TreeListColumn Field="@nameof(Record.Text)" Title="" Expandable="true" />
        <TreeListColumn Field="@nameof(Record.Id)" Title="ID" />
        <TreeListColumn Field="@nameof(Record.ParentId)" Title="PARENT" />
    </TreeListColumns>
</TelerikTreeList>
@code {
    protected IEnumerable<Record> Data = new List<Record>();

    protected override void OnInitialized()
    {
        Data = Enumerable.Range(1, 10).Select(i => new Record(i));
    }

    public class Record
    {
        public Record(int i)
        {
            Id = i;
            if (i % 5 == 1)
                ParentId = null;
            else
                ParentId = (i - ((i - 1) % 5));
            Text = "Item " + i;
        }
        public long Id { get; set; }
        public long? ParentId { get; set; }
        public string Text { get; set; }
    }
} 

WORKAROUND

<TelerikTreeList Data=Data
                 IdField="@nameof(Record.Id)"
                 ParentIdField="@nameof(Record.ParentId)"
                 Height="100%">
    <TreeListColumns>
        <TreeListCheckboxColumn CheckBoxOnlySelection="true" />
        <TreeListColumn Field="@nameof(Record.Text)" Title="" Expandable="true" />
        <TreeListColumn Field="@nameof(Record.Id)" Title="ID" />
        <TreeListColumn Field="@nameof(Record.ParentId)" Title="PARENT" />
    </TreeListColumns>
</TelerikTreeList>
@code {
    protected List<Record> Data = new List<Record>();

    protected override void OnInitialized()
    {
        Data = Enumerable.Range(1, 10).Select(i => new Record(i)).ToList();
    }

    public class Record
    {
        public Record(int i)
        {
            Id = i;
            if (i % 5 == 1)
                ParentId = null;
            else
                ParentId = (i - ((i - 1) % 5));
            Text = "Item " + i;
        }
        public long Id { get; set; }
        public long? ParentId { get; set; }
        public string Text { get; set; }
    }
} 

 

1 2