Getting Started with Blazor DatePicker Component in Web App

31 Oct 20258 minutes to read

This section explains how to include the Blazor DatePicker component in a Blazor Web App using Visual Studio and Visual Studio Code.

Prerequisites

Create a new Blazor Web App in Visual Studio

Create a Blazor Web App using Visual Studio 2022 via Microsoft Templates or the Syncfusion® Blazor Extension.

Configure the appropriate Interactive render mode and Interactivity location when creating the application.

Install Syncfusion® Blazor Calendars and Themes NuGet in the Blazor Web App

To add the Blazor DatePicker component, open the NuGet Package Manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), then search for and install Syncfusion.Blazor.Calendars and Syncfusion.Blazor.Themes.

If using WebAssembly or Auto render modes, install the Syncfusion® Blazor packages in the client project of the Blazor Web App.

Alternatively, use the following Package Manager commands:

Install-Package Syncfusion.Blazor.Calendars -Version 31.2.2
Install-Package Syncfusion.Blazor.Themes -Version 31.2.2

NOTE

Syncfusion® Blazor components are available on NuGet. For the full package list and component details, see NuGet packages.

Prerequisites

Create a new Blazor Web App in Visual Studio Code

Create a Blazor Web App using Visual Studio Code via Microsoft Templates or the Syncfusion® Blazor Extension.

Configure the appropriate Interactive render mode and Interactivity location when creating the application.

For example, for a Blazor Web App with the Auto interactive render mode, use the following commands:

dotnet new blazor -o BlazorWebApp -int Auto
cd BlazorWebApp
cd BlazorWebApp.Client

NOTE

For details on creating a Blazor Web App with various interactive modes and locations, refer to the render interactive modes topic.

Install Syncfusion® Blazor Calendars and Themes NuGet in the App

If using WebAssembly or Auto render modes, install the Syncfusion® Blazor component NuGet packages in the client project.

dotnet add package Syncfusion.Blazor.Calendars -v 31.2.2
dotnet add package Syncfusion.Blazor.Themes -v 31.2.2
dotnet restore

NOTE

Syncfusion® Blazor components are available on NuGet. For the full package list and component details, see NuGet packages.

Register Syncfusion® Blazor Service

Interactive Render Mode Description
WebAssembly or Auto Open ~/_Imports.razor from the client project.
Server Open ~/_Imports.razor in the Components folder.

Import the Syncfusion.Blazor and Syncfusion.Blazor.Calendars namespaces.

@using Syncfusion.Blazor
@using Syncfusion.Blazor.Calendars

Now, register the Syncfusion® Blazor service in the ~/Program.cs file of the Blazor Web App.

If the Interactive Render Mode is set to WebAssembly or Auto, register the Syncfusion® Blazor service in both ~/Program.cs files (server and client) of the Blazor Web App.

...
...
using Syncfusion.Blazor;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorComponents()
    .AddInteractiveServerComponents()
    .AddInteractiveWebAssemblyComponents();
builder.Services.AddSyncfusionBlazor();

var app = builder.Build();
....
...
using Syncfusion.Blazor;

var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.Services.AddSyncfusionBlazor();

await builder.Build().RunAsync();

If the Interactive Render Mode is set to Server, the project contains a single ~/Program.cs file. In this case, register the Syncfusion® Blazor service only in that file.

...
using Syncfusion.Blazor;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorComponents()
    .AddInteractiveServerComponents();
builder.Services.AddSyncfusionBlazor();

var app = builder.Build();
....

NOTE

A valid Syncfusion license is required. For details on generating and registering a license, refer to the License key registration documentation.

Add stylesheet and script resources

The theme stylesheet and script can be accessed from NuGet through Static Web Assets. Include the stylesheet reference in the <head> section and the script reference at the end of the <body> in the ~/Components/App.razor file as shown below:

<head>
    ....
    <link href="_content/Syncfusion.Blazor.Themes/bootstrap5.css" rel="stylesheet" />
</head>
....
<body>
    ....
    <script src="_content/Syncfusion.Blazor.Core/scripts/syncfusion-blazor.min.js" type="text/javascript"></script>
</body>

NOTE

See Blazor Themes for different ways to reference themes (Static Web Assets, CDN, and CRG). For script reference options, see Adding Script Reference.

Add Syncfusion® Blazor DatePicker component

Add the Syncfusion® Blazor DatePicker component in a .razor file inside the Pages folder. If the interactivity location is set to Per page/component, define a render mode at the top of the component as follows:

Interactivity location RenderMode Code
Per page/component Auto @rendermode InteractiveAuto
  WebAssembly @rendermode InteractiveWebAssembly
  Server @rendermode InteractiveServer
  None

NOTE

If the Interactivity Location is set to Global and the Render Mode is Auto, WebAssembly, or Server, the render mode is configured in the App.razor file by default.

@* desired render mode define here *@
@rendermode InteractiveAuto
<SfDatePicker TValue="DateTime?" Placeholder='Choose a Date'></SfDatePicker>
  • Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This renders the Syncfusion® Blazor DatePicker component in the default web browser.
Blazor DatePicker Component

Setting the Value and Min and Max dates

The following example demonstrates how to set the Value, Min, and Max dates when initializing the DatePicker. In this example, a date can be selected within the range from the 5th to the 27th of the current month. TValue specifies the type of the DatePicker component.

<SfDatePicker TValue="DateTime?" Value='@DateValue' Min='@MinDate' Max='@MaxDate'></SfDatePicker>

@code {
    public DateTime? DateValue {get;set;} = new DateTime(DateTime.Now.Year,DateTime.Now.Month,10);
    public DateTime MinDate {get;set;} = new DateTime(DateTime.Now.Year,DateTime.Now.Month,05);
    public DateTime MaxDate {get;set;} = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 27);
}
Setting Minimum and Maximum Dates in Blazor DatePicker

NOTE

View Sample in GitHub.

See also

  1. Getting Started with Syncfusion® Blazor for client-side in .NET Core CLI
  2. Getting Started with Syncfusion® Blazor for client-side in Visual Studio
  3. Getting Started with Syncfusion® Blazor for server-side in .NET Core CLI