Smart.Blazor 9.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Smart.Blazor --version 9.1.0
                    
NuGet\Install-Package Smart.Blazor -Version 9.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Smart.Blazor" Version="9.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Smart.Blazor" Version="9.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Smart.Blazor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Smart.Blazor --version 9.1.0
                    
#r "nuget: Smart.Blazor, 9.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Smart.Blazor@9.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Smart.Blazor&version=9.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Smart.Blazor&version=9.1.0
                    
Install as a Cake Tool

Smart.Blazor Component Library

Smart Blazor Components is a commercial set of 60+ Blazor UI controls. Both server-side and client-side.

Getting Started

Create a new Blazor App

To start building .NET apps, download and install the .NET SDK (Software Development Kit).

  • Check everything installed correctly

Once you've installed, open a new command prompt and run the following command:

dotnet

If the command runs, printing out information about how to use dotnet, you're good to go.

  • Got an error?

If you receive a 'dotnet' is not recognized as an internal or external command error, make sure you opened a new command prompt

  • The Blazor framework provides templates to develop apps for each of the Blazor hosting models:

Blazor WebAssembly (blazorwasm)

dotnet new blazorwasm -o BlazorApp

Blazor Server (blazorserver)

dotnet new blazorserver -o BlazorServerApp

Installation

Smart.Blazor Components are distributed as the Smart.Blazor Nuget package. You can use any of the following options:

  • Install the package from command line by running dotnet add package Smart.Blazor.

  • Alternatively, you can add the project from the Visual Nuget Package Manager.

  • Edit the .csproj file and add a project reference

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <RootNamespace>BlazorApp</RootNamespace>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Smart.Blazor" Version="8.1.3" />
  </ItemGroup>

</Project>

Import the Smart.Blazor namespace.

Open the _Imports.razor file of your Blazor application and add @using Smart.Blazor

Set a Theme

Open the _Host.cshtml file (server-side Blazor) or wwwroot/index.html (client-side WebAssembly Blazor) and include a theme CSS file by adding this snippet

<link href="_content/Smart.Blazor/css/smart.default.css" rel="stylesheet" />

You can include 14+ additional CSS themes for the Controls - 7 dark and 7 light themes.

Source files

Open the _Host.cshtml file (server-side Blazor) or wwwroot/index.html (client-side WebAssembly Blazor) and include this snippet

<script src="_content/Smart.Blazor/js/smart.blazor.js"></script>
<script src="_content/Smart.Blazor/js/smart.elements.js"></script>

If you would like to use only a specific component, instead of referring the smart.elements.js, you can refer the component like that:

<script type="module" src="_content/Smart.Blazor/js/modules/smart.table.js"></script>

Registrations

Blazor WebAssembly

This step is mandatory for Blazor WebAssembly(client-side) and also for ASP.NET Core hosted project types. You should place the code into the Program.cs of your client project

using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Smart.Blazor;

namespace BlazorApp
{
    public class Program
    {
	public static async Task Main(string[] args)
	{
	    var builder = WebAssemblyHostBuilder.CreateDefault(args);
	    builder.RootComponents.Add<App>("#app");

	    builder.Services.AddSmart();
	    builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

	    await builder.Build().RunAsync();
	}
    }
}
Blazor Server

This step is going only into the Startup.cs of your Blazor Server project. You will need to add services.AddSmart(); in the ConfigureServices method and using Smart.Blazor; in the using statements.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using BlazorApp.Data;
using Smart.Blazor;

namespace BlazorApp
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();
            services.AddServerSideBlazor();
            services.AddSingleton<WeatherForecastService>();
	    services.AddSmart();
	   }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapBlazorHub();
                endpoints.MapFallbackToPage("/_Host");
            });
        }
    }
}

Using Smart.Blazor Components

Use any Smart Blazor component by typing its tag name in a Blazor page e.g. <Button>Click Me</Button> If you are using client-side WebAssembly Blazor also add the following code to your .csproj file (after the closing RazorLangVersion element): <BlazorLinkOnBuild>false</BlazorLinkOnBuild>

Data binding a property

<Input Value="@text"></Input>
@code {
	string text = " Hi from Smart!";
}

Events Handing

<Calendar id="calendar" OnChange=@OnChange></Calendar>
<div class="options">
	<div class="caption">Events</div>
	<div class="option" id="log">
	@eventLog
	</div>
</div>

@code {
	private string eventLog;

	private void OnChange(Event eventObj)
	{
		CalendarChangeEventDetail detail = eventObj\[" Detail & quot;\];

		eventLog = detail.Value\[0\].ToString();
	}
}

Alternatively you can do that:

@page "/calendar"

<Calendar OnReady="OnReady" id="calendar" ></Calendar>
<div class="options">
	<div class="caption">Events</div>
	<div class="option" id="log">
	@eventLog
	</div>
</div>


@code {
	private string eventLog;

	private void OnReady(Calendar calendar)
	{
		calendar.Changed += delegate (object sender, CalendarChangedEventArgs args)
		{
			string value = args.Value\[0\].ToString();
			eventLog = value;
			StateHasChanged();
		};
	}
}

OnReady callback is called for each Blazor component, after it is initialized and rendered.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
23.0.9 2,581 5/14/2025
22.0.1 1,082 1/30/2025
22.0.0 318 1/29/2025
21.0.51 289 1/29/2025
20.0.64 1,994 10/28/2024
20.0.62 506 10/25/2024
20.0.60 306 10/24/2024
20.0.59 328 10/24/2024
20.0.58 309 10/23/2024
20.0.57 333 10/22/2024
20.0.56 295 10/22/2024
20.0.4 2,751 9/9/2024
19.0.5 8,425 4/25/2024
18.0.6 3,929 1/19/2024
18.0.0 1,031 1/16/2024
17.0.89 922 1/16/2024
17.0.35 1,576 12/1/2023
17.0.6 2,712 10/26/2023
16.0.2 6,204 8/4/2023
15.2.1 3,585 5/17/2023
15.1.1 3,238 4/1/2023
15.1.0 2,034 3/31/2023
15.0.63 2,430 3/20/2023
15.0.60 2,037 3/31/2023
14.4.136 4,032 1/18/2023
14.4.39 4,322 10/28/2022
14.2.18 4,832 7/21/2022
14.2.12 2,211 7/18/2022
14.1.1 3,014 7/5/2022
14.1.0 2,216 7/5/2022
14.0.94 2,542 6/15/2022
14.0.75 2,585 6/3/2022
14.0.51 3,512 5/17/2022
14.0.45 2,384 5/14/2022
13.1.29 3,835 4/7/2022
13.1.27 2,267 4/5/2022
13.1.25 2,305 4/4/2022
13.1.21 2,359 4/2/2022
13.1.20 1,968 4/1/2022
13.1.17 2,280 3/31/2022
13.1.12 2,069 3/29/2022
13.1.2 2,299 3/23/2022
13.0.20 2,215 3/8/2022
13.0.10 2,087 2/22/2022
13.0.8 2,334 2/21/2022
12.0.35 2,301 2/15/2022
12.0.20 2,036 2/4/2022
12.0.8 3,467 1/24/2022
12.0.1 2,089 1/20/2022
11.0.46 2,145 1/4/2022
11.0.38 1,945 12/29/2021
11.0.36 1,884 12/29/2021
11.0.35 1,924 12/29/2021
11.0.16 2,123 12/9/2021
11.0.7 2,027 12/3/2021
11.0.6 2,539 12/3/2021
11.0.4 1,924 12/2/2021
11.0.3 1,894 12/2/2021
11.0.0 1,899 11/29/2021
10.2.2 4,638 10/19/2021
10.2.1 1,886 10/19/2021
10.2.0 1,955 10/19/2021
10.0.83 1,987 10/18/2021
10.0.81 1,993 10/17/2021
10.0.77 2,040 10/14/2021
10.0.74 1,938 10/13/2021
10.0.73 1,877 10/13/2021
10.0.48 2,256 9/29/2021
10.0.45 1,904 9/27/2021
10.0.44 1,982 9/26/2021
10.0.41 1,930 9/23/2021
10.0.37 1,886 9/22/2021
10.0.36 2,005 9/22/2021
10.0.35 1,907 9/22/2021
10.0.31 2,101 9/17/2021
10.0.18 2,014 8/27/2021
10.0.15 1,887 8/26/2021
10.0.14 1,920 8/24/2021
10.0.1 2,118 8/16/2021
9.4.18 2,237 7/28/2021
9.4.15 1,930 7/16/2021
9.4.13 2,012 7/15/2021
9.4.8 1,803 7/12/2021
9.4.1 2,061 7/5/2021
9.4.0 2,099 6/30/2021
9.3.115 2,046 7/2/2021
9.3.113 1,933 6/25/2021
9.3.108 2,005 6/21/2021
9.3.97 1,929 6/8/2021
9.3.92 2,016 6/3/2021
9.3.82 1,966 5/26/2021
9.3.80 1,962 5/26/2021
9.3.66 1,931 5/19/2021
9.3.54 2,010 5/10/2021
9.3.45 2,146 5/6/2021
9.3.42 6,633 5/5/2021
9.3.39 2,193 5/1/2021
9.3.38 1,950 4/30/2021
9.3.36 1,903 4/30/2021
9.3.35 2,069 4/30/2021
9.3.34 2,032 4/29/2021
9.3.33 2,012 4/29/2021
9.3.32 1,925 4/28/2021
9.3.31 1,931 4/28/2021
9.3.30 2,102 4/27/2021
9.3.29 1,915 4/27/2021
9.3.25 1,853 4/26/2021
9.3.23 1,960 4/24/2021
9.3.22 1,958 4/23/2021
9.3.21 1,969 4/23/2021
9.3.20 1,902 4/22/2021
9.3.19 1,933 4/22/2021
9.3.18 1,939 4/22/2021
9.3.17 1,963 4/22/2021
9.3.16 1,899 4/22/2021
9.3.15 1,935 4/22/2021
9.3.14 2,011 4/22/2021
9.3.12 2,025 4/22/2021
9.3.11 1,978 4/21/2021
9.3.10 1,920 4/21/2021
9.3.9 2,058 4/21/2021
9.3.8 1,957 4/20/2021
9.3.6 2,008 4/20/2021
9.3.5 2,027 4/20/2021
9.3.4 1,956 4/19/2021
9.3.3 1,984 4/18/2021
9.3.2 1,970 4/17/2021
9.2.7 2,037 4/17/2021
9.2.5 1,941 4/16/2021
9.2.2 1,872 4/15/2021
9.2.1 2,005 4/13/2021
9.2.0 2,068 4/10/2021
9.1.6 1,911 4/7/2021
9.1.5 2,160 3/25/2021
9.1.4 2,195 3/5/2021
9.1.3 2,234 2/26/2021
9.1.1 2,252 2/3/2021
9.1.0 2,109 2/3/2021
9.0.6 2,147 2/2/2021
9.0.5 2,114 1/15/2021
9.0.4 2,252 1/14/2021
9.0.3 2,135 1/11/2021
9.0.2 2,323 12/27/2020
9.0.1 2,351 12/27/2020
9.0.0 2,178 12/27/2020
8.2.0 4,085 12/22/2020
8.1.17 2,293 12/9/2020
8.1.14 2,171 12/8/2020
8.1.13 2,279 12/2/2020
8.1.12 2,237 11/26/2020
8.1.10 2,299 11/25/2020
8.1.9 2,160 11/25/2020
8.1.8 2,150 11/24/2020
8.1.7 2,300 11/5/2020
8.1.6 2,164 11/3/2020
8.1.5 2,271 11/1/2020
8.1.4 2,200 10/29/2020
8.1.3 2,143 10/13/2020
8.1.2 430 10/13/2020
8.1.1 420 10/13/2020
8.1.0 531 10/13/2020

New Scheduler features:

Undo/Redo
Filtering
Legends
Google Calendar Sync

Grid bug fixes