Getting Started with Blazor DataManager Component in Web App
16 Feb 20248 minutes to read
This section briefly explains about how to include Blazor DataManager
component in your Blazor Web App using Visual Studio.
Prerequisites
Create a new Blazor Web App
You can create a Blazor Web App using Visual Studio 2022 via Microsoft Templates or the Syncfusion Blazor Extension.
You need to configure the corresponding Interactive render mode and Interactivity location while creating a Blazor Web Application.
Install Syncfusion Blazor Datas and Themes NuGet in the Blazor Web App
To add Blazor DataManager component in the app, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), search and install Syncfusion.Blazor.Data and Syncfusion.Blazor.Themes.
If you utilize WebAssembly or Auto
render modes in the Blazor Web App need to be install Syncfusion Blazor components NuGet packages within the client project.
Alternatively, you can utilize the following package manager command to achieve the same.
Install-Package Syncfusion.Blazor.Datas -Version 27.2.2
Install-Package Syncfusion.Blazor.Themes -Version 27.2.2
NOTE
Syncfusion Blazor components are available in nuget.org. Refer to NuGet packages topic for available NuGet packages list with component details.
Register Syncfusion Blazor Service
Open ~/_Imports.razor file and import the Syncfusion.Blazor
and Syncfusion.Blazor.Data
namespace.
@using Syncfusion.Blazor
@using Syncfusion.Blazor.Data
Now, register the Syncfusion Blazor Service in the ~/Program.cs file of your Blazor Web App. For a app with WebAssembly
or Auto (Server and WebAssembly)
interactive render mode, register the Syncfusion Blazor service in both ~/Program.cs files of your web app.
....
using Syncfusion.Blazor;
....
builder.Services.AddSyncfusionBlazor();
....
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
Check out the Blazor Themes topic to discover various methods (Static Web Assets, CDN, and CRG) for referencing themes in your Blazor application. Also, check out the Adding Script Reference topic to learn different approaches for adding script references in your Blazor application.
Add Blazor DataManager component
SfDataManager component should be used in conjunction with Syncfusion Blazor components that supports data binding.
In the following example, SfDataManager
is used with Blazor DataGrid component to depict the usage of DataManager. The DataManager acts as a gateway for both local and remote data to interact with the data source based on the provided query.
Binding to JSON data
Local JSON data can be bound to the DataGrid component by assigning the array of objects to the Json property of the SfDataManager component.
Explore the provided sample code below, which illustrates how to bind local data to the DataGrid component using SfDataManager. To get started with Blazor DataGrid, please refer to this link for more information.
@using Syncfusion.Blazor.Grids
<SfGrid TValue="EmployeeData" ID="Grid">
<SfDataManager Json=@Employees></SfDataManager>
<GridColumns>
<GridColumn Field=@nameof(EmployeeData.EmployeeID) TextAlign="TextAlign.Center" HeaderText="Employee ID" Width="120"></GridColumn>
<GridColumn Field=@nameof(EmployeeData.Name) HeaderText="First Name" Width="130"></GridColumn>
<GridColumn Field=@nameof(EmployeeData.Title) HeaderText="Title" Width="120"></GridColumn>
</GridColumns>
</SfGrid>
@code{
public class EmployeeData
{
public int EmployeeID { get; set; }
public string Name { get; set; }
public string Title { get; set; }
}
public EmployeeData[] Employees = new EmployeeData[]
{
new EmployeeData { EmployeeID = 1, Name = "Nancy Fuller", Title = "Vice President" },
new EmployeeData { EmployeeID = 2, Name = "Steven Buchanan", Title = "Sales Manager" },
new EmployeeData { EmployeeID = 3, Name = "Janet Leverling", Title = "Sales Representative" },
new EmployeeData { EmployeeID = 4, Name = "Andrew Davolio", Title = "Inside Sales Coordinator" },
new EmployeeData { EmployeeID = 5, Name = "Steven Peacock", Title = "Inside Sales Coordinator" },
new EmployeeData { EmployeeID = 6, Name = "Janet Buchanan", Title = "Sales Representative" },
new EmployeeData { EmployeeID = 7, Name = "Andrew Fuller", Title = "Inside Sales Coordinator" },
new EmployeeData { EmployeeID = 8, Name = "Steven Davolio", Title = "Inside Sales Coordinato" },
new EmployeeData { EmployeeID = 9, Name = "Janet Davolio", Title = "Sales Representative" },
new EmployeeData { EmployeeID = 10, Name = "Andrew Buchanan", Title = "Sales Representative" }
};
}
Binding to OData
Remote data can be bound to the DataGrid component by binding the SfDataManager component to it and then assigning the service end point URL to the Url property of the SfDataManager.
The following sample code demonstrates binding OData through the SfDataManager to the DataGrid component,
<SfGrid TValue="Order" ID="Grid" AllowPaging="true">
<SfDataManager Url="https://js.syncfusion.com/demos/ejServices/Wcf/Northwind.svc/Orders" Adaptor="Adaptors.ODataAdaptor"></SfDataManager>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" IsPrimaryKey="true" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(Order.CustomerID) HeaderText="Customer Name" Width="150"></GridColumn>
<GridColumn Field=@nameof(Order.OrderDate) HeaderText=" Order Date" Format="d" Type="ColumnType.Date" TextAlign="TextAlign.Right" Width="130"></GridColumn>
<GridColumn Field=@nameof(Order.Freight) HeaderText="Freight" Format="C2" TextAlign="TextAlign.Right" Width="120"></GridColumn>
</GridColumns>
</SfGrid>
@code{
public class Order {
public int? OrderID { get; set; }
public string CustomerID { get; set; }
public DateTime? OrderDate { get; set; }
public double? Freight { get; set; }
}
}
Component binding
The SfDataManager can be used with Syncfusion components which supports data binding.
In the below example, the SfDataManager
is bound with DropDownList component to demonstrate data binding for the components. In the same way, you can use DataManager
with any other data-bound components of Syncfusion Blazor components.
Local data binding
Local data can be bound to the DropDownList component by assigning the array of objects to the Json property of the SfDataManager component.
The following sample code demonstrates binding local data through the SfDataManager to the DropDownList component,
@using Syncfusion.Blazor.DropDowns
<SfDropDownList Placeholder="e.g. Australia" TItem="Countries" TValue="string">
<SfDataManager Json=@Country></SfDataManager>
<DropDownListFieldSettings Value="Name"></DropDownListFieldSettings>
</SfDropDownList>
@code{
public class Countries
{
public string Name { get; set; }
public string Code { get; set; }
}
public Countries[] Country = new Countries[]
{
new Countries { Name = "Australia", Code = "AU" },
new Countries { Name = "Bermuda", Code = "BM" },
new Countries { Name = "Canada", Code = "CA" },
new Countries { Name = "Cameroon", Code = "CM" }
};
}
Remote data binding
Remote data can be bound to the DropDownList component by binding the SfDataManager component to it and then assigning the service end point URL to the Url property of the SfDataManager.
The following sample code demonstrates binding remote data through the SfDataManager to the DropDownList component,
<SfDropDownList Placeholder="Name" TValue="Contact">
<SfDataManager Url="https://services.odata.org/V4/Northwind/Northwind.svc/Customers" Adaptor="Adaptors.ODataV4Adaptor"></SfDataManager>
<DropDownListFieldSettings Value="CustomerID" Text="ContactName"></DropDownListFieldSettings>
</SfDropDownList>
@code{
public class Contact
{
public string ContactName { get; set; }
public string CustomerID { get; set; }
}
}
NOTE