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.2NOTE
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.ClientNOTE
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.
- Press Ctrl+` to open the integrated terminal in Visual Studio Code.
- Ensure the command is run in the project directory that contains the
.csprojfile. - Run the following commands to install Syncfusion.Blazor.Calendars and Syncfusion.Blazor.Themes:
dotnet add package Syncfusion.Blazor.Calendars -v 31.2.2
dotnet add package Syncfusion.Blazor.Themes -v 31.2.2
dotnet restoreNOTE
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.CalendarsNow, 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
Globaland the Render Mode isAuto,WebAssembly, orServer, the render mode is configured in theApp.razorfile 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.
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);
}
NOTE