Getting Started with Blazor TreeView Component

16 Sep 20218 minutes to read

This section briefly explains about how to include a TreeView in the Blazor server-side application. Refer Getting Started with Syncfusion Blazor for Server-Side in Visual Studio 2019 page for the introduction and configuring the common specifications.

To get started quickly with Blazor TreeView, check on this video:

Importing Syncfusion Blazor component in the application

Use any one of the below standards to install the Syncfusion Blazor library in the application.

Using Syncfusion Blazor Individual NuGet Packages [New standard]

Starting with Volume 4, 2020 (v18.4.0.30) release, Syncfusion provides individual NuGet packages for the Syncfusion Blazor components. This new standard is highly recommended for the Blazor production applications. Refer to this section to know the benefits of the individual NuGet packages.

  1. Install Syncfusion.Blazor.Navigations NuGet package to the application by using the NuGet Package Manager. Refer to the Individual NuGet Packages section for the available NuGet packages.

    Nuget Explorer

  2. Search Syncfusion.Blazor.Navigations keyword in the Browse tab and install Syncfusion.Blazor.Navigations NuGet package in the application.

    Individual Nuget

  3. Once the installation process is completed, the Syncfusion Blazor Navigation package will be installed in the project.

  4. Add the client-side style resources through CDN or from NuGet package in the <head> element of the ~/Pages/_Host.cshtml page.

     <head>
         ....
         ....
         <link href="_content/Syncfusion.Blazor.Themes/bootstrap4.css" rel="stylesheet" />
     </head>

    WARNING

    Syncfusion.Blazor package should not be installed along with individual NuGet packages. Hence, the above Syncfusion.Blazor.Themes static web assets have to be added (styles) in the application.

Using Syncfusion.Blazor NuGet Package [Old standard]

WARNING

If the above new standard (individual NuGet packages) is preferred, then skip this section. Using both old and new standards in the same application will throw ambiguous compilation errors.

  1. Install Syncfusion.Blazor NuGet package to the application by using the NuGet Package Manager Right-click the project and then select Manage NuGet Packages.

    Nuget Explorer

  2. Search Syncfusion.Blazor keyword in the Browse tab and install Syncfusion.Blazor NuGet package in the application.

    Blazor Nuget

  3. Once the installation process is completed, the Syncfusion Blazor package will be installed in the project.

  4. Add the client-side style resources using NuGet package to the <head> element of the ~/wwwroot/index.html page in Blazor WebAssembly app or ~/Pages/_Host.cshtml page in Blazor Server app.

<head>
    <link href="_content/Syncfusion.Blazor/styles/bootstrap4.css" rel="stylesheet" />
</head>
<head>
    <link href="https://cdn.syncfusion.com/blazor/19.2.49/styles/bootstrap4.css" rel="stylesheet" />
</head>

For Internet Explorer 11 kindly refer the polyfills. Refer the documentation for more information.

<head>
    <link href="_content/Syncfusion.Blazor/styles/bootstrap4.css" rel="stylesheet" />
    <script src="https://github.com/Daddoon/Blazor.Polyfill/releases/download/3.0.1/blazor.polyfill.min.js"></script>
</head>

Add Syncfusion Blazor service in Startup.cs (Server-side application)

Open the Startup.cs file and add services required by Syncfusion components using services.AddSyncfusionBlazor() method. Add this method in the ConfigureServices function as follows.

using Syncfusion.Blazor;

namespace BlazorApplication
{
    public class Startup
    {
        ....
        ....
        public void ConfigureServices(IServiceCollection services)
        {
            ....
            ....
            services.AddSyncfusionBlazor();
        }
    }
}

Add Syncfusion Blazor service in Program.cs (Client-side application)

Open the Program.cs file and add services required by Syncfusion components using builder.Services.AddSyncfusionBlazor() method. Add this method in the Main function as follows.

namespace BlazorApplication
{
    public class Program
    {
        ....
        ....
        public static async Task Main(string[] args)
            {
            ....
            ....
            builder.Services.AddSyncfusionBlazor();
        }
    }
}

Adding component package to the application

Open ~/_Imports.razor file and import the Syncfusion.Blazor.Navigations packages.

@using Syncfusion.Blazor
@using Syncfusion.Blazor.Navigations

Adding TreeView component to the application

Now, add the Syncfusion Blazor TreeView component in any web page razor in the Pages folder. For example, the Blazor TreeView component is added in the ~/Pages/Index.razor page.

@using Syncfusion.Blazor.Navigations
<SfTreeView TValue="MailItem">
    <TreeViewFieldsSettings TValue="MailItem" Id="Id" DataSource="@MyFolder" Text="FolderName" ParentID="ParentId" HasChildren="HasSubFolders" Expanded="Expanded"></TreeViewFieldsSettings>
</SfTreeView>

@code{
    public class MailItem
    {
        public string Id { get; set; }
        public string ParentId { get; set; }
        public string FolderName { get; set; }
        public bool Expanded { get; set; }
        public bool HasSubFolders { get; set; }
    }
    List<MailItem> MyFolder = new List<MailItem>();
    protected override void OnInitialized()
    {
        base.OnInitialized();
        MyFolder.Add(new MailItem
        {
            Id = "1",
            FolderName = "Inbox",
            HasSubFolders = true,
            Expanded = true
        });
        MyFolder.Add(new MailItem
        {
            Id = "2",
            ParentId = "1",
            FolderName = "Categories",
            Expanded = true,
            HasSubFolders = true
        });
        MyFolder.Add(new MailItem
        {
            Id = "3",
            ParentId = "2",
            FolderName = "Primary"
        });
        MyFolder.Add(new MailItem
        {
            Id = "4",
            ParentId = "2",
            FolderName = "Social"
        });
        MyFolder.Add(new MailItem
        {
            Id = "5",
            ParentId = "2",
            FolderName = "Promotions"
        });
    }
}

Run the application

After successful compilation of the application, simply press F5 to run the application.

TreeView Sample

Refer to the Blazor TreeView feature tour page for its groundbreaking feature representations. The Blazor TreeView example can also be explored to understand how to present and manipulate data.

See Also