Skip to main content
A newer version of this page is available. .
All docs
V21.2
.NET Standard 2.0+

Customize the Dashboard Configurator (ASP.NET Core Blazor)

  • 2 minutes to read

The dashboard configurator allows you to manage global dashboard options. For example, you can use its properties to change dashboard storage or set a connection string provider for SQL data sources. This topic describes how to access and customize the dashboard configurator.

Customize the Default Configurator

You can access the dashboard configurator in the AddXafDashboards extension method. The following example demonstrates how to specify a connection string provider to allow users to create new SQL data sources based on connection strings from the MySolution.Blazor.Server\appsettings.json file:

File: MySolution.Blazor.Server\Startup.cs.

using DevExpress.ExpressApp.Dashboards.Blazor;
using DevExpress.DashboardAspNetCore;
// ...
public class Startup {
    // ...
    public void ConfigureServices(IServiceCollection services) {
        // ...
        services.AddXafDashboards((dashboardConfigurator, services) => {
            var configuration = services.GetRequiredService<IConfiguration>();
            dashboardConfigurator.SetConnectionStringsProvider(new DashboardConnectionStringsProvider(configuration));
        });
        // ...
    }
    // ...
}

Create a Custom Configurator

  1. In the MySolution.Blazor.Server project, create a BlazorDashboardConfigurator descendant.
  2. In its constructor, request the required services.
  3. Declare a public method (for example, Setup) that initializes the configurator. Do not initialize your configurator in a constructor. After a dashboard configurator instance is created, the service provider initializes it, which potentially can overwrite the logic declared in a constructor.

    File: MySolution.Blazor.Server\Services\CustomDashboardConfigurator.cs.

    using DevExpress.DashboardAspNetCore;
    using DevExpress.ExpressApp.Dashboards.Blazor.Services;
    using Microsoft.Extensions.Configuration;
    
    public class CustomDashboardConfigurator : BlazorDashboardConfigurator {
        private readonly IConfiguration configuration;
        public CustomDashboardConfigurator(IConfiguration configuration) {
            this.configuration = configuration;
        }
        public void Setup() {
            SetConnectionStringsProvider(new DashboardConnectionStringsProvider(configuration));
        }
    }
    
  4. In the AddXafDashboards extension method, register your custom configurator as a scoped service and call the method that initializes this configurator (Setup in this example):

    File: MySolution.Blazor.Server\Startup.cs.

    using DevExpress.ExpressApp.Dashboards.Blazor;
    using DevExpress.ExpressApp.Dashboards.Blazor.Services;
    using DevExpress.DashboardAspNetCore;
    // ...
    public class Startup {
        // ...
        public void ConfigureServices(IServiceCollection services) {
            // ...
            services.AddScoped<BlazorDashboardConfigurator, CustomDashboardConfigurator>();
            services.AddXafDashboards((configurator, services) => {
                ((CustomDashboardConfigurator)configurator).Setup();
            });
        }
        // ...
    }