Essential Studio for Blazor Release Notes
Common
Features
- Syncfusion Blazor components are now compatible with latest .NET 10 preview versions.
-
SpreadSheetcomponent has been added newly in Syncfusion Blazor Library. -
SpeechToTextcomponent has been developed to meet industry standards and is now marked production-ready. - The
Syncfusion.Blazor.AIpackage has been added newly in Syncfusion Blazor Library. It provides AI integration capabilities for Blazor Server applications, supporting various AI services includingOpenAI,Azure OpenAI,Ollama, and custom AI providers.
Breaking Changes
- Below TargetFrameWork’s dependent packages version have been upgraded to resolve the vulnerability issues.
- Target Framework
.NET 8.0:-
Microsoft.AspNetCore.Components.Webupgraded from8.0.10to8.0.15.
-
- Target Framework
.NET 9.0:-
Microsoft.AspNetCore.Components.Webupgraded from9.0.0to9.0.4. -
System.Text.Jsonupgraded from9.0.0to9.0.4.
-
-
Microsoft.Extensions.AI.OpenAIupgraded from9.0.0-preview.9.24525.1to9.5.0-preview.1.25265.7. - Replaced the deprecated
Microsoft.Extensions.AI.Ollamapackage withOllamaSharp.
- Target Framework
-
The Syncfusion Blazor AI integration has undergone significant API changes. The main configuration class
OpenAIConfigurationhas been renamed toSyncfusionAIServiceand moved to theSyncfusion.Blazor.AInamespace, and the primary methodGenerateResponseAsynchas been renamed toGetChatResponseAsyncfor better clarity and consistency.Before 30.1.37 From 30.1.37 Description Example OpenAIConfigurationSyncfusionAIServiceClass used to configure and connect with OpenAI, Azure OpenAI, and Ollama local models. Now moved to the Syncfusion.Blazor.AInamespace.Service Registration:
Before:
builder.Services.AddSingleton<OpenAIConfiguration>();
After:
builder.Services.AddSingleton<SyncfusionAIService>();
Constructor Injection:
Before:
private OpenAIConfiguration _openAIConfiguration;public AzureAIService(OpenAIConfiguration openAIConfiguration)
After:
private SyncfusionAIService _openAIConfiguration;public AzureAIService(SyncfusionAIService openAIConfiguration)GenerateResponseAsyncGetChatResponseAsyncMethod that sends a request to the AI service and returns the chat response based on the input provided. Before:
await _openAIConfiguration.GenerateResponseAsync(chatParameters);
After:
await _openAIConfiguration.GetChatResponseAsync(chatParameters);
Accumulation Chart
Features
-
#I709810- The border radius feature for accumulation charts can now be added using theBorderRadiusproperty of the AccumulationChartSeries.
Explore the demo here -
Added support for displaying a desired label at the center of pie and donut charts in the Accumulation chart using the
AccumulationChartCenterLabel. This center label can dynamically change based on the data points when hovering over them, utilizing theHoverTextFormatproperty.
Explore the demo here
AI AssistView
Features
-
Now the AI Assistview supports div based text input instead of traditional textarea, offering a more intuitive and flexible user experience for prompt entry.
-
Now we have provided attachment support in the AI AssistView, enabling users to attach files to their prompts for enhanced AI interactions. This functionality is controlled using the
Enableproperty and can be further customized through theAttachmentSettingsconfiguration. -
Additionally, the following events have newly been added to provide control over the attachments:
-
AttachmentUploadStart: Triggered before the attached file upload begins. -
AttachmentUploadSuccess: Triggered when the attached file is successfully uploaded. -
AttachmentUploadFailed: Triggered when the attached file upload fails. -
AttachmentRemoved: Triggered when an attached file is removed.
-
Explore the demohere
AutoComplete
Features
To enhance the performance of the AutoComplete component, we have removed the id attributes from the li elements rendered within the popup list. Additionally, we have optimized the underlying code logic to further improve the initial rendering speed and filtering performance, particularly when handling large datasets. These changes contribute to a more efficient and responsive user experience.
| Component | Scenario | Performance Improvement |
|---|---|---|
| AutoComplete | Initial Rendering | 1.2X Faster (Server) |
| AutoComplete | Pop-Up Opening | 1.7X Faster (Server) |
| AutoComplete | Filtering | 1.1X Faster (WASM) |
| AutoComplete | Two-Way Value Binding | 1.3X Faster (Server) |
| AutoComplete | Virtualization | 4X Faster (WASM) |
Chart
Features
-
Users can now display the total value of each section in stacked column or bar charts using the
ChartStackLabelSettings, which makes it easier to read and understand data series.
Explore the demo here -
The position of the scrollbar in the chart can now be customized using the
Positionproperty in the ChartAxisScrollbarSettings. The vertical scrollbar can be placed on either the left or right, and the horizontal scrollbar can be positioned at the top or bottom of the chart.
Explore the demo here -
#F194134- The position of the zooming toolbar in the chart can be customized using theChartZoomToolbarPositionproperty within the ChartZoomSettings. The toolbar can be placed on the left, right, top, or bottom of the chart. Offset positions can also be specified for precise placement.
Explore the demo here -
#I640716,#I686321- Users can now specify column width in exact pixel values for column series types in the Blazor Chart component using theColumnWidthInPixelproperty in the ChartSeries.
Chat UI
Features
-
Now the Chat UI supports div based text input instead of traditional textarea, offering a more intuitive and flexible user experience for prompt entry.
-
Now we have provided support for displaying user status icons in the Chat UI, by using the
StatusIconCssproperty, allowing visual representation of user presence. -
Chat UI now supports the compact mode by using the
EnableCompactModeproperty to align all messages to the left, creating a cleaner layout ideal for group chats and compact displays. -
Now we have provided support for message options in the Chat UI component, including new properties like
IsPinned,RepliedTo, andIsForwardedin the message model to enable pinning, replying, and forwarding functionalities. Which can be further customized using theMessageToolbar&MessageToolbarItemtags, which by default includes actions likeCopy,Reply,Pin, andDeletefor a richer chat experience.
Explore the demohere
ComboBox
Features
To enhance the performance of the ComboBox component, we have removed the id attributes from the li elements rendered within the popup list. Additionally, we have optimized the underlying code logic to further improve the initial rendering speed and filtering performance, particularly when handling large datasets. These changes contribute to a more efficient and responsive user experience.
| Component | Scenario | Performance Improvement |
|---|---|---|
| ComboBox | Initial Rendering | 1.1X Faster (Server) |
| ComboBox | Pop-Up Opening | Significant (WASM) |
| ComboBox | Filtering | 16X Faster (Server) |
| ComboBox | Two-Way Value Binding | 5X Faster (WASM) |
| ComboBox | Virtualization | 4X Faster (WASM) |
Bug Fixes
-
#I734149- Fixed an issue where the focusing items when typing matched words and pressing the tab key in the combo box with filtering enabled. -
#I726051- Fixed an issue where values were not being selected when using theShift+TabandTabkeys.
Context Menu
Bug Fixes
-
#I723303- An issue with context menu popup while enabling theEnableScrollingproperty has been resolved.
Dashboard Layout
Features
- Removed the obsolete
Colproperty from the Dashboard Layout component. UseColumninstead ofCol. -
#FB18538- Improved the initial rendering performance of the Dashboard Layout component, especially when using multiple panels with nested child components. -
#FB28809- Created event enhancement: The Created event is now triggered after all panels have been completely rendered, allowing actions to be performed once the layout is fully initialized.
Data Grid
Bug fixes
-
#I736879- Resolved a JavaScript error that occurred when selecting input text within the Row Detail Template while Row Drag And Drop was enabled in the DataGrid. -
#I731432- Fixed an issue where the FilterDialogOpened event was triggered even when the filter dialog was cancelled within the FilterDialogOpening event. -
#I726622- Addressed an issue where the SetAttribute method failed to apply inline styles from the data during the QueryCellInfo event execution.
Features
-
#I681678- Provided support for dropping rows anywhere within the DataGrid content area when performing Row Drag And Drop, offering a more flexible and intuitive reordering experience. Explore the demo here -
#I678945- Provided support to customize built-in filter editors on a GridColumn using theFilterEditorSettingsproperty in the DataGrid. Explore the demo hereCode Example:
<SfGrid DataSource="@GridData" AllowFiltering="true" AllowPaging="true"> <GridFilterSettings Type="Syncfusion.Blazor.Grids.FilterType.Menu"></GridFilterSettings> <GridPageSettings PageCount="5"></GridPageSettings> <GridColumns> <GridColumn Field=@nameof(Orders.OrderID) HeaderText="Order ID" TextAlign="TextAlign.Right" Width="120" FilterEditorSettings="OrderIdFilterSettings"></GridColumn> </GridColumns> </SfGrid> @code { public IFilterSettings OrderIdFilterSettings = new NumericFilterParams { NumericTextBoxParams = new NumericTextBoxModel<object> { ShowClearButton = true, Min = 10000, } }; } -
#FB17262- Provided enhanced support for the IgnoreAccent property in GridSearchSettings to enable accent-insensitive searching and filtering when using anIEnumerabledata source, allowing users to match records regardless of diacritic marks or special characters in the text. Explore the demo hereCode Example:
<SfGrid DataSource="@GridData" Toolbar="@(new List<string>() { "Search" })" AllowPaging="true"> <GridSearchSettings IgnoreAccent="true"></GridSearchSettings> </SfGrid> -
I648184- Enhanced keyboard navigation support for Column Virtualization in the DataGrid.
Breaking changes
-
#I681678- Added support to drop rows onto the empty area of the DataGrid using theAllowEmptyAreaDropproperty. This option is enabled by default and works in both within and outside grid drag-and-drop scenarios.Previous:
Dropping was only allowed when the target element was a row. If the DataGrid had any empty space while rows were present, dropping was not permitted on that empty area.
Now:
Rows can be dropped onto the empty area of the target DataGrid, even if the grid contains data rows. To disable this behavior, set the
AllowEmptyAreaDropproperty inGridRowDropSettingsto false.Code Example:
<SfGrid ID="Grid" DataSource="@GridData" AllowRowDragAndDrop="true"> <GridRowDropSettings TargetID="DestGrid" AllowEmptyAreaDrop="false"></GridRowDropSettings> </SfGrid>
Diagram
Features
Avoid Connector Overlapping support - This AvoidLineOverlapping feature ensures that connectors adjust dynamically to avoid overlapping with neighboring connectors, maintaining a clear and organized diagram. By automatically updating the connector geometry, it eliminates visual clutter and enhances the readability of connection paths, resulting in a more structured and comprehensible diagram. You can check out the documentation link here.
Ports support for connectors (#I410216) - This ConnectorPort feature allows users to define ports (connection points) on connectors. These ports can be used to create precise connections between connectors or shapes.You can check out the documentation link here.
Automatic generation of UML sequence diagrams from model data - A UML sequence diagram visually represents how a set of objects interact in a process over time. With this feature, you can automatically generate these diagrams from model data, streamlining the visualization of interactions between objects in a system. It dynamically creates lifelines, messages, and activation boxes based on the provided data, reducing manual effort and ensuring accuracy. You can check out the documentation link here.
Import and export UML sequence in Mermaid-syntax - Mermaid syntax is a Markdown-inspired text-based language designed to define diagrams through simple, readable commands. This feature allows users to create UML sequence diagrams from Mermaid syntax and export them back, simplifying visualization, sharing, editing, and cross-platform use. Users can also use AI assistants to generate Mermaid syntax for these diagrams and directly import it into the Blazor Diagram component. You can check out the documentation link here.
Performance Improvements - The performance of the Diagram component is now significantly faster when working with nodes containing annotations and connectors. The following updates enhance the initial loading time and optimize various interactions, resulting in a more efficient user experience:
| Feature | Scenario | Server Improvement (%) | WASM Improvement (%) |
|---|---|---|---|
| Initial Loading | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 42.1 | 39.1 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 11.8 | 56.6 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 24.4 | 72.2 | |
| Resize | 100 Nodes, 100 Connectors, 100 Annotations | 66.67 | 33.33 |
| 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 48.65 | 54.55 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 73.33 | 64 | |
| Rotate | 100 Nodes, 100 Connectors, 100 Annotations | 49.90 | 50 |
| 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 26.09 | 55.93 | |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 67.65 | 53.13 | |
| Drag | 100 Nodes, 100 Connectors, 100 Annotations | 60 | 52.38 |
| 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 66.67 | 56 | |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 81.48 | 64.29 | |
| Selection of all elements using keyboard | 100 Nodes, 100 Connectors, 100 Annotations | 73.08 | 99.69 |
| 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 98.48 | 99.78 | |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 99.80 | 98.37 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 99.63 | 96.5 | |
| Selection of all elements using mouse | 100 Nodes, 100 Connectors, 100 Annotations | 71.43 | 70 |
| 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 99.49 | 99.56 | |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 99.78 | 98.67 | |
| Cut | 100 Nodes, 100 Connectors, 100 Annotations | 30 | 70 |
| 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 18.18 | 87.72 | |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 41.38 | 42.86 | |
| Paste | 100 Nodes, 100 Connectors, 100 Annotations | 64.29 | 75.19 |
| 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 57.32 | 87.74 | |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 70.68 | 50 | |
| Delete | 100 Nodes, 100 Connectors, 100 Annotations | 68.42 | 58.33 |
| 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 49.04 | 94.44 | |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 53.85 | 75.33 | |
| Undo/Redo | 100 Nodes, 100 Connectors, 100 Annotations | 40 | 68.60 |
| 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 30.65 | 46.15 | |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 61.70 | 64.67 | |
| Symbols loading in Symbol palette | 100 nodes | 83.33 | 88.83 |
| 500 nodes | 77.78 | 87.37 | |
| 1000 nodes | 86.96 | 86.92 | |
| 5000 nodes | 85.71 | 92.16 | |
| 10000 nodes | 84.24 | 90.48 | |
| Organization chart - Using Collection | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 58.62 | 11.11 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 42.11 | 67.89 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 72.82 | 84.81 | |
| Hierarchical - Using Collection | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 53.75 | 3.63 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 48.15 | 65.16 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 44.62 | 87.50 | |
| Complex Hierarchical - Using Collection | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 65.54 | 11.11 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 22.22 | 50.62 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 62 | 69.57 | |
| Mind map - Using Collection | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 28.39 | 13.89 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 28.57 | 40 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 64.71 | 64.31 | |
| Radial tree - Using Collection | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 46.90 | 16.56 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 26.35 | 55.60 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 70.59 | 78.04 | |
| Flowchart - Using Collection | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 42.07 | 8.21 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 18.75 | 62.31 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 65.05 | 71.76 | |
| Organization chart - Using Data source | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 51.29 | 12.78 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 40.09 | 65.45 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 71.82 | 73.60 | |
| Hierarchical - Using Data source | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 45.58 | 14.30 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 42.66 | 55.26 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 67.92 | 69.85 | |
| Complex Hierarchical - Using Data source | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 39.93 | 49.32 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 43.97 | 47.40 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 33.68 | 69.63 | |
| Mind map - Using Data source | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 8.54 | 13.48 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 41.67 | 42.31 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 25.35 | 60.96 | |
| Radial tree - Using Data source | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 45.51 | 6.10 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 3.8 | 37.44 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 45.33 | 55.62 | |
| Flowchart - Using Data source | 1,000 Nodes, 1,000 Connectors, 1,000 Annotations | 30.24 | 13.49 |
| 5,000 Nodes, 5,000 Connectors, 5,000 Annotations | 37.24 | 44.53 | |
| 10,000 Nodes, 10,000 Connectors, 10,000 Annotations | 30 | 57.71 |
Bug fixes
-
#I728422- Diagram now supports port-to-port connections for container elements.
DocIO
Features
-
#I84570,#I149806,#I73532,#I104716,#I105049,#I109548,#I119864,#I124725,#I130014,#I137039,#I137196,#I323992,F165479,F168737,#I652765,#I658111- Provided support to create and remove editable ranges in protected DOCX format documents. -
#I635778,#I214139,#I665210,#I624912,#I583370,#F141869,#FB26929- Added support to create list number formats including Arabic, Hebrew, Chinese, and Thai in DOCX format documents and preserve them during Word-to-PDF and image conversions. -
#I376950,#I411898,#I465126,#I679498,#I297755,#I301645,#I307279,#I349118,#I176036,#I184228,#I216695,#I331649,#I680106,#I86205,#I107655,#I182993,#I201718,#I209411,#I225246,#I311779,#I317812,#I345122- Added support to preserve shape fill formats such as gradients, transparency, and pattern fills during Word-to-PDF and image conversions. -
#I70284,#I144361,#I160658,#I188244,#I201718,#I202261,#I206374,#I212424,#F137571- Recolor effects like grayscale, sepia, and color tone adjustments are now preserved during Word-to-PDF and image conversions. -
#I293751,#I310315,#I337547,#I367467,#I469762,#I496627,#I650620,#F176420- Drawing canvas and its contents are now preserved when converting Word documents to PDFs and images. - Font substitution is now supported inside charts, allowing users to configure fallback fonts when the original fonts are unavailable during Word to PDF and image conversions.
- Provided fallback font support for Unicode characters in charts to preserve multilingual content during Word-to-PDF and image conversions.
- Improved preservation of EMF and WMF metafile images as searchable content during Word-to-PDF conversions.
Breaking Changes
- Changed the assemblies name of “Syncfusion.MetafileRenderer.NET.dll” into “Syncfusion.MetafileRenderer.Portable.dll” in the build and NuGet package.
- Added the assembly of “Syncfusion.PDF.Portable.dll” as a dependency of “Syncfusion.MetafileRenderer.Portable.dll” in the build and NuGet package.
DropDown List
Features
To enhance the performance of the Dropdown List component, we have removed the id attributes from the li elements rendered within the popup list. Additionally, we have optimized the underlying code logic to further improve the initial rendering speed and filtering performance, particularly when handling large datasets. These changes contribute to a more efficient and responsive user experience.
| Component | Scenario | Performance Improvement |
|---|---|---|
| Dropdown List | Initial Rendering | 1.2X Faster (WASM) |
| Dropdown List | Pop-Up Opening | Significant (WASM) |
| Dropdown List | Filtering | Significant (WASM) |
| Dropdown List | Two-Way Value Binding | Significant (WASM) |
| Dropdown List | Virtualization | 1.5X Faster (Server) |
DropDownTree
Bug Fixes
-
#FB61050- Enhanced the performance of checkbox selection and filtering actions in Blazor WASM Dropdown Tree component.
File Manager
Bug Fixes
-
#I733818- The crash issue on refresh in a subfolder when using the SharePoint file provider in the Blazor File Manager component has been resolved. -
#I715002- Resolved file selection issue when two files have the same name but different unique IDs in the Blazor File Manager component.
Gantt Chart
Bug fix
-
#I733124- Fixed issue where taskbar duration was not updating correctly during editing in localized time zones. -
An issue with the
Unitsfield inGanttAssignmentFieldshas been resolved by updating its type to double?. Previously, a double value of 0 was incorrectly interpreted as a resource unit value of 100 in the Gantt chart component. This update ensures that the correct default value is displayed, improving accuracy in resource management. Now, the double? type allows distinction between an unset default value and a specified value of 0.
Feature
-
#FB67303- Added theGanttDialogClosingevent, which triggers when the edit dialog is closed whether by clicking the Cancel button, Close icon, pressing the Escape key, or saving using the Save button or Enter key. This event provides enhanced control over dialog closure behavior in the Gantt Chart.
Breaking changes
-
Removed the
ResourceInfoproperty from theGanttTaskFieldsclass and theGanttResourceFieldsRazor component, as it was marked deprecated three releases ago.<SfGantt> <GanttTaskFields Id="TaskId" Name="TaskName" StartDate="StartDate" EndDate="EndDate" Duration="Duration" Progress="Progress" ParentID="ParentId" Work="Work" ResourceInfo="Resources" TaskType="TaskType"> </GanttTaskFields> <GanttResourceFields Resources="GetResources" Id="ResourceId" ResourceInfoName="ResourceName" Unit="Unit" TResources="ResourceData"> </GanttResourceFields> </SfGantt> @code { public class ResourceData { public int ResourceId { get; set; } public string ResourceName { get; set; } public double Unit { get; set; } } List<ResourceData> GetResources = new List<ResourceData>() { new ResourceData() { ResourceId= 1, ResourceName= "Martin Tamer" ,Unit=70}, new ResourceData() { ResourceId= 2, ResourceName= "Rose Fuller" }, new ResourceData() { ResourceId= 3, ResourceName= "Margaret Buchanan" }, new ResourceData() { ResourceId= 4, ResourceName= "Fuller King" }, new ResourceData() { ResourceId= 5, ResourceName= "Davolio Fuller" }, new ResourceData() { ResourceId= 6, ResourceName= "Van Jack" }, new ResourceData() { ResourceId= 7, ResourceName= "Fuller Buchanan" }, new ResourceData() { ResourceId= 8, ResourceName= "Jack Davolio" }, new ResourceData() { ResourceId= 9, ResourceName= "Tamer Vinet" }, new ResourceData() { ResourceId= 10, ResourceName= "Vinet Fuller" }, new ResourceData() { ResourceId= 11, ResourceName= "Bergs Anton" }, new ResourceData() { ResourceId= 12, ResourceName= "Construction Supervisor" } }; }<SfGantt> <GanttTaskFields Id="TaskId" Name="TaskName" StartDate="StartDate" EndDate="EndDate" Duration="Duration" Progress="Progress" ParentID="ParentId" Work="Work" TaskType="TaskType"> </GanttTaskFields> <GanttResource DataSource="GetResources" Id="Id" Name="Name" TValue="TaskInfoModel" TResources="ResourceInfoModel"></GanttResource> <GanttAssignmentFields DataSource="GetAssignments" PrimaryKey="PrimaryId" TaskID="TaskId" ResourceID="ResourceId" Units="Unit" TValue="TaskInfoModel" TAssignment="AssignmentModel"> </GanttAssignmentFields> </SfGantt> @code { public class ResourceInfoModel { public int Id { get; set; } public string? Name { get; set; } } public class AssignmentModel { public int PrimaryId { get; set; } public int TaskId { get; set; } public int ResourceId { get; set; } public double? Unit { get; set; } } List<ResourceInfoModel> GetResources = new List<ResourceInfoModel>() { new ResourceInfoModel() { Id= 1, Name= "Martin Tamer"}, new ResourceInfoModel() { Id= 2, Name= "Rose Fuller" }, new ResourceInfoModel() { Id= 3, Name= "Margaret Buchanan" }, new ResourceInfoModel() { Id= 4, Name= "Fuller King" }, }; List<AssignmentModel> GetAssignments = new List<AssignmentModel>() { new AssignmentModel() { PrimaryId = 1, TaskId = 2, ResourceId = 1, Unit = 70 }, new AssignmentModel() { PrimaryId = 2, TaskId = 2, ResourceId = 6 }, new AssignmentModel() { PrimaryId = 3, TaskId = 3, ResourceId = 2 }, new AssignmentModel() { PrimaryId = 4, TaskId = 3, ResourceId = 3 } }; }
For detailed guidance, refer to the Resource Assignment documentation.
Image Editor
Features
-
Added support to open images with specific width and height using the
OpenAsyncmethod. This enhancement introduces optional parameters:width,height, andisAspectRatio, allowing precise control over image dimensions while optionally maintaining the original aspect ratio. -
Provided
UnderlineandStrikethroughformatting options for text annotations, enhancing the text styling capabilities in the Image Editor. -
Added support to load BMP (Bitmap) image files via both the file uploader UI and programmatically through the
OpenAsyncmethod. -
Introduced the
EnableImageSmoothingproperty to control the smoothing of high-resolution images. When enabled, the Image Editor applies smoothing during rendering to reduce distortion and jagged edges, particularly in scaled or rotated images
MultiSelect
Features
To enhance the performance of the MultiSelect component, we have optimized the underlying code logic to further improve the initial rendering speed and filtering performance, particularly when handling large datasets. These changes contribute to a more efficient and responsive user experience.
| Component | Scenario | Performance Improvement |
|---|---|---|
| MultiSelect Dropdown | Initial Rendering | 1.3X Faster (Server) |
| MultiSelect Dropdown | Pop-Up Opening | Significant (WASM) |
| MultiSelect Dropdown | Filtering | Significant (WASM) |
| MultiSelect Dropdown | Two-Way Value Binding | Significant (WASM) |
| MultiSelect Dropdown | Virtualization | 4X Faster (WASM) |
Features
-
#I548470– Added font subsetting support during PDF to PDF/A conversion. -
#I614304– Added support for form field grouping in PDF documents. - Added AES GCM encryption and decryption support in PDF documents.
- Added customization support for unison selection behavior in radio button fields.
- Added export value support for checkbox fields in PDF documents.
- Added appearance fill color support for redaction annotations.
- Added comment and review history support for redaction annotations.
PDF Viewer
Bug Fixes
-
#I724983- Resolved an issue where the download failed when multiple form fields were present, and EnableChunkMessages was enabled. -
#I728696- Resolved an issue where Ink Annotations were not visible when loading a specific PDF document in the PDF Viewer. -
#I724366- Resolved an issue where the Mail to link in the provided PDF document did not open an email window in the Blazor PDF Viewer. -
#I722319- Resolved an issue where multiple Stamp Annotations were added upon a single button click in the PDF Viewer.
Features
-
#I665791- Introduced a public API to customize the MinZoomValue and MaxZoomValue in the Blazor PDF Viewer. -
#I417456- Added support for redacting content in PDF documents using the Blazor PDF Viewer.
Pivot Table
Features
- Support has been added for performing value sorting simultaneously on both the row and column axes, independent of the value axis - This enhancement allows for more flexible and accurate data analysis across dimensions. Explore the demo here.
- Support has been added for including headers and footers during Excel exporting with the server-side engine in the pivot table - Explore the demo here.
- Support has been introduced for exporting the pivot table as a native Excel PivotTable, preserving the pivot structure in the exported file. Users can continue interacting with and customizing the pivot data directly within Excel. This functionality can be accessed through the ‘ExportAsPivotAsync’ method.
- Provided support to save the exported Excel document as a memory stream instead of exporting the Pivot Table as a downloadable file. The resulting memory stream can be further processed and customized by the user before being exported as a document. This feature can be utilized by specifying the ‘asMemoryStream’ parameter as ‘true’ when calling the method ‘ExportAsExcelAsync’.
Breaking Changes
-
The
ExportToExcelAsyncmethod parameters for the pivot table export have now been changed -Previous
Parameter Type Description excelExportProperties ExcelExportPropertiesSpecifies the export properties for customizing the table, such as custom columns, data source, and theme. isMultipleExport Nullable<bool>Specifies whether multiple exports are enabled. workbook WorkbookAn instance of the workbook to export. isBlob Nullable<bool>Specifies whether to export as a blob instead of writing to the response. isServerExport boolSpecifies whether server-side Excel export is enabled. Now
Parameter Type Description asMemoryStream boolSpecifies whether to save the exported Excel document as memory rather than exporting the Pivot Table as a downloadable file. excelExportProperties ExcelExportPropertiesSpecifies the export properties for customizing the table, such as custom columns, data source, and theme. isServerExport boolSpecifies whether server-side Excel export is enabled. -
The
ExportToCsvAsyncmethod parameters for the pivot table export have now been changed -Previous
Parameter Type Description excelExportProperties ExcelExportPropertiesSpecifies the export properties for customizing the table, such as custom columns, data source, and theme. isMultipleExport Nullable<bool>Specifies whether multiple exports are enabled. workbook WorkbookAn instance of the workbook to export. isBlob Nullable<bool>Specifies whether to export as a blob instead of writing to the response. isServerExport boolSpecifies whether server-side CSV export is enabled. Now
Parameter Type Description asMemoryStream boolSpecifies whether to save the exported CSV document as memory rather than exporting the Pivot Table as a downloadable file. excelExportProperties ExcelExportPropertiesSpecifies the export properties for customizing the table, such as custom columns, data source, and theme. isServerExport boolSpecifies whether server-side CSV export is enabled.
Presentation
Features
- Font substitution is now supported inside charts, allowing users to configure fallback fonts when the original fonts are unavailable during PowerPoint to PDF and image conversions.
- Provided fallback font support for Unicode characters in charts to preserve multilingual content during PowerPoint-to-PDF and image conversions.
- Improved preservation of EMF and WMF metafile images as searchable content during PowerPoint-to-PDF conversions.
Breaking Changes
- Changed the assemblies name of “Syncfusion.MetafileRenderer.NET.dll” into “Syncfusion.MetafileRenderer.Portable.dll” in the build and NuGet package.
- Added the assembly of “Syncfusion.PDF.Portable.dll” as a dependency of “Syncfusion.MetafileRenderer.Portable.dll” in the build and NuGet package.
Ribbon
Features
-
#I736349- Now we have provided two-way binding support for the Ribbon itemDisabledproperty.
Rich Text Editor
Features
-
Insert Code Block: The Code Block feature allows users to insert formatted code snippets into the Rich Text Editor using a toolbar button or the
Ctrl+Shift+Bshortcut. A dropdown menu enables language selection for each code block, supporting options like JavaScript, Python, and HTML. This feature is fully customizable via the Languages property an array of objects defining the available programming languages and the DefaultLanguage property, which sets the default language for newly inserted code blocks. Please find the demo here. -
Insert Horizontal Line - The Horizontal Line toolbar item enables users to insert a horizontal rule (
<hr>) element into the Rich Text Editor with a single click on the dedicated toolbar button. This feature renders a divider line that spans the full width of the editor, helping to visually separate content sections and improve readability. To enable this option, addHorizontalLineto the toolbar items configuration. Please find the demo here. -
Bottom Toolbar - The Bottom Toolbar feature introduces a fixed toolbar at the bottom of the Rich Text Editor, offering quick access to frequently used formatting tools. It enhances usability, especially in constrained layouts or on mobile devices, by providing a compact and accessible interface. The toolbar’s position is configurable via the API using the RichTextEditorToolbarSettings.Position property, which accepts
ToolbarPosition.ToporToolbarPosition.Bottomenums to control the toolbar placement. Please find the demo link here. -
Popup Toolbar - The Popup toolbar for the toolbar automatically relocates overflowing toolbar items into a popup container when there isn’t enough space to display them, making it especially useful for constrained layouts or smaller screens. This behavior enhances usability while maintaining a clean and responsive editing experience. It can be configured via the API using the RichTextEditorToolbarSettings.Type property, which accepts the ToolbarType.Popup enum value to enable this mode. Please find the demo link here.
-
MaxFileSize - The MaxFileSize Support feature in the Rich Text Editor allows developers to configure a maximum file size limit for uploaded media files, including images, audio, and video, helping to validate uploads and prevent over sized content. This is achieved through the RichTextEditorImageSettings.MaxFileSize property and similar properties for audio and video uploads. By default, the limit is set to
30MB, but it can be customized per media type to suit specific application requirements. -
Table row and column copy paste - The Table Row or Column Copy, Cut, and Paste Support feature in the Rich Text Editor enhances table functionality by allowing users to efficiently copy, cut, and paste specific rows or columns using standard keyboard shortcuts
Ctrl+C,Ctrl+X,Ctrl+V. This streamlines the editing process and enables quick duplication or reorganization of table data without the need for manual re-entry. Please find the demo here. -
Enhance the quick toolbar - The Enhanced Quick Toolbar offers improved integration with the editor’s workflow by streamlining content creation and ensuring an uninterrupted editing experience. It provides better positioning and responsiveness, allowing users to access contextual tools seamlessly without distracting from the content, thereby enhancing overall usability and productivity. Please find the demo here.
-
Format Painter - The Format Painter feature in the Rich Text Editor introduces a format painter tool that enables users to copy formatting—such as font style, color, and size—from one text selection and apply it to another with a single click, promoting consistent styling and improving productivity. This feature can be configured via the API by adding
"FormatPainter"to theToolbarItemsarray and using the RichTextEditorFormatPainterSettings component, which includesAllowedFormats(e.g.,["font-family", "color", "font-size"]) andDeniedFormats(e.g.,["background-color"]) properties to precisely control which formatting attributes are copied, ensuring seamless integration with the editor’s workflow. Please find the demo link here. -
Slash Menu - The SlashMenu Support feature in the Rich Text Editor introduces a slash command menu, triggered by typing
/, offering a fast and intuitive way to insert elements such as paragraphs, headings, lists, or media directly within the editor. This feature can be enabled using the RichTextEditorSlashMenuSettings.Enable property, with available commands configured through the RichTextEditorSlashMenuSettings.Items collection, which accepts a list ofSlashMenuItemModelitems likeParagraph,Heading1, andHeading2. Additionally, theSlashMenuItemSelectingevent enables customization of item selection behavior. Please find the demo link here. -
Show recent color - The Show Recent Color Support feature in the Rich Text Editor enhances the font color and background color pickers by displaying recently used colors, allowing users to quickly access and reuse them for consistent formatting. This improves efficiency and ensures visual uniformity across content. The feature is configurable via the ShowRecentColors property a boolean that defaults to
trueenabling developers to toggle the recent colors panel in the color pickers to suit application preferences while maintaining an intuitive and streamlined editing experience. Please find the demo here. -
ClearUndoRedo - The Clear undo redo in the Rich Text Editor, allows users to clear the undo and redo history through a dedicated action. This functionality is accessible via the ClearUndoRedoAsync public method, which can be invoked programmatically to reset the history.
Bug fixes
-
#I733542- Now, The issue with the ValueChange event not being triggered when applying background color and styles to a table in the Rich Text Editor has been resolved.
Breaking Changes
Quick Toolbar Positioning Improvements
-
Enhanced positioning logic: The Rich Text Editor’s positioning system has been completely redesigned to prevent content from being hidden when editing tables and images.
-
Default scroll behavior change: The
ActionOnScrollproperty inRichTextEditorQuickToolbarSettingshas been changed fromActionOnScroll.HidetoActionOnScroll.Noneby default. -
Deprecated event arguments: The
PositionXandPositionYarguments in theBeforeQuickToolbarOpenArgsevent have been deprecated and will be removed in future versions. -
Default items: The default order of the items in Table, Image, Audio and Video quick toolbar has been changed. The quick toolbar items will appear on a single line by default.
Sidebar
Bug Fixes
-
#I731399- The issue with theShowBackdropproperty dynamic change has been resolved.
Slider
Bug Fixes
-
#I723850- Fixed an issue where the slider was not functioning correctly when binding custom values.
TextArea
Breaking changes
- The following property has been deprecated in this release. Where applicable, recommended alternatives have been provided to ensure a smooth and seamless transition.
| Class | Deprecated | Type | Recommended Alternative |
|---|---|---|---|
| SfTextArea | Disabled | Property | Enabled - Use this property for enable/disable the component. |
Tooltip
Features
- Enhanced dynamic content support: The Tooltip component now automatically displays tooltip for dynamically created elements by assigning the required CSS selector to the
TargetContainerproperty. By default, this property isnull. This enhancement eliminates the need to manually refresh the tooltip when new elements are added to the DOM.
Breaking changes
-
PProvided support for enhancing the dynamic content capabilities of the Tooltip component. This will be achieved by assigning the required CSS selector to the
TargetContainerproperty.Previous:
When rendering the Tooltip as a non-wrapper element (separate elements), the
Targetproperty is sufficient to display the Tooltip on the targeted element.Now:
Need to provide both the
Targetproperty and theTargetContainerproperty.Code Example:
<span id="a-span">Hover for tooltip</span> <SfTooltip Id="tooltip-test" Target="#a-span" TargetContainer="#a-span" Content="This is tooltip"> </SfTooltip>
Bug Fixes
-
#I723090- The issue with the tooltip not closing correctly when passingargs.IsInteractedas true has been resolved.
Tree Grid
Features
-
Provided support for virtualization with hierarchical data binding, ensuring smooth rendering and better with deeply nested hierarchical data structures.
-
Optimized the performance of the
LoadChildOnDemandfeature in the WASM Tree Grid for remote data sources, resulting in significantly reduced times for both initial rendering and hierarchical row expansion.
Performance Benchmark
The performance improvements observed in the WASM environment are summarized below, based on a dataset containing 10,000 rows, 6 columns, and a page size of 30 records
| Release version | Initial Rendering | Expand |
|---|---|---|
| Volume 1 | ~5116 ms | ~794 ms |
| Volume 2 | ~2742 ms | ~475 ms |
| Performance Improvement | ~46.41% faster | ~40.18% faster |
Testing environment: Chrome 120, Windows 11, Intel i7 processor, 16GB RAM
TreeView
Bug Fixes
-
#I734982- The issue in the Blazor TreeView component, where navigation did not work properly after two navigations, has been resolved.
Visual Studio Code Extensions
Features
- Syncfusion has introduced Controls and Features Selection in the Blazor Template Studio for Visual Studio Code. This enhancement allows users to choose the Syncfusion components they need and customize specific features within each component using an intuitive project wizard. Build high-quality Blazor applications faster and with greater flexibility. Explore this feature to streamline development and tailor your app to your exact needs.
Breaking Changes
- Syncfusion has added Bootstrap 5.3 theme support to the Blazor Template Studio for Visual Studio Code, allowing users to easily style and customize their applications.
Visual Studio Extensions
Breaking Changes
- Syncfusion has added Bootstrap 5.3 theme support to the Blazor Template Studio, allowing users to easily style and customize their applications.
XlsIO
Features
- Auto Fill and Fill Series support is provided to programmatically populate Excel cell ranges based on patterns, sequences, or trends, minimizing manual input.
- Font substitution is supported to allow configuration of fallback fonts when the original fonts are unavailable during chart-to-image conversion, ensuring visual consistency.
- Fallback font handling for Unicode text is implemented during chart-to-image conversion, enabling proper rendering when the default fonts lack the necessary glyphs.
- Preservation of EMF and WMF metafile images as searchable content during Excel to PDF conversion is supported.
Bug Fixes
- #I735455 - Cell value is accurately returned by the Range.Value property when the number contains high-precision digits.
- #I737657 - The IsFiltered property is updated properly when clearing a filter contains equal to operator.
- #I736030 - Hyperlinks are removed properly when performing clear operations in worksheet range.
Breaking Changes
- Changed the assembly name of “Syncfusion.MetafileRenderer.NET.dll” into “Syncfusion.MetafileRenderer.Portable.dll” in build and NuGet package.
- Added the assembly of “Syncfusion.PDF.Portable.dll” as a dependency of “Syncfusion.MetafileRenderer.Portable.dll” in the build and NuGet package.
Test Results
| Component Name | Test Cases | Passed | Failed | Remarks |
|---|---|---|---|---|
| 3DChart | 197 | 197 | 0 | All Passed |
| Accordion | 232 | 232 | 0 | All Passed |
| AiAssistView | 291 | 291 | 0 | All Passed |
| Appbar | 102 | 102 | 0 | All Passed |
| Autocomplete | 458 | 458 | 0 | All Passed |
| Breadcrumb | 137 | 137 | 0 | All Passed |
| Bulletchart | 237 | 237 | 0 | All Passed |
| Button | 255 | 255 | 0 | All Passed |
| Calendar | 146 | 146 | 0 | All Passed |
| Card | 125 | 125 | 0 | All Passed |
| Carousel | 174 | 174 | 0 | All Passed |
| Charts | 3512 | 3512 | 0 | All Passed |
| ChatUI | 102 | 102 | 0 | All Passed |
| Chips | 196 | 196 | 0 | All Passed |
| CircularGauge | 927 | 927 | 0 | All Passed |
| ColorPicker | 113 | 113 | 0 | All Passed |
| ComboBox | 510 | 510 | 0 | All Passed |
| DashboardLayout | 242 | 242 | 0 | All Passed |
| DataForm | 537 | 537 | 0 | All Passed |
| DataGrid | 4717 | 4717 | 0 | All Passed |
| DatePicker | 417 | 417 | 0 | All Passed |
| DateRangePicker | 252 | 252 | 0 | All Passed |
| DateTimePicker | 323 | 323 | 0 | All Passed |
| Diagram | 10093 | 10093 | 0 | All Passed |
| Dialog | 389 | 389 | 0 | All Passed |
| DocumentEditor | 3228 | 3228 | 0 | All Passed |
| DropdownList | 847 | 847 | 0 | All Passed |
| Dropdowntree | 131 | 131 | 0 | All Passed |
| FileManager | 3061 | 3061 | 0 | All Passed |
| FileUpload | 328 | 328 | 0 | All Passed |
| FloatingActionButton | 128 | 128 | 0 | All Passed |
| Gantt | 4394 | 4394 | 0 | All Passed |
| HeatMap | 339 | 339 | 0 | All Passed |
| ImageEditor | 3561 | 3561 | 0 | All Passed |
| InPlaceEditor | 763 | 763 | 0 | All Passed |
| InputMask | 168 | 168 | 0 | All Passed |
| LinearGauge | 799 | 799 | 0 | All Passed |
| ListBox | 138 | 138 | 0 | All Passed |
| ListView | 439 | 439 | 0 | All Passed |
| Maps | 1578 | 1578 | 0 | All Passed |
| Mention | 147 | 147 | 0 | All Passed |
| Menu | 444 | 444 | 0 | All Passed |
| Message | 242 | 242 | 0 | All Passed |
| MultiselectDropdown | 366 | 366 | 0 | All Passed |
| NumericTextbox | 440 | 440 | 0 | All Passed |
| PivotTable | 1358 | 1358 | 0 | All Passed |
| ProgressBar | 198 | 198 | 0 | All Passed |
| progressbutton | 101 | 101 | 0 | All Passed |
| QueryBuilder | 584 | 584 | 0 | All Passed |
| RangeNavigator | 196 | 196 | 0 | All Passed |
| Ribbon | 440 | 440 | 0 | All Passed |
| RichTextEditor | 1584 | 1584 | 0 | All Passed |
| Scheduler | 5161 | 5161 | 0 | All Passed |
| SfPdfViewer2 | 11552 | 11552 | 0 | All Passed |
| Sidebar | 133 | 133 | 0 | All Passed |
| Signature | 106 | 106 | 0 | All Passed |
| Slider | 200 | 200 | 0 | All Passed |
| SmithChart | 212 | 212 | 0 | All Passed |
| SparklineChart | 228 | 228 | 0 | All Passed |
| SpeechToText | 112 | 112 | 0 | All Passed |
| SpeedDial | 278 | 278 | 0 | All Passed |
| Splitter | 440 | 440 | 0 | All Passed |
| Stepper | 724 | 724 | 0 | All Passed |
| StockChart | 211 | 211 | 0 | All Passed |
| Tabs | 276 | 276 | 0 | All Passed |
| TextArea | 165 | 165 | 0 | All Passed |
| Textbox | 155 | 155 | 0 | All Passed |
| TimePicker | 261 | 261 | 0 | All Passed |
| Toast | 150 | 150 | 0 | All Passed |
| Toolbar | 160 | 160 | 0 | All Passed |
| Tooltip | 475 | 475 | 0 | All Passed |
| TreeGrid | 3904 | 3904 | 0 | All Passed |
| TreeMap | 174 | 174 | 0 | All Passed |
| TreeView | 1565 | 1565 | 0 | All Passed |
| DocIO | 16250 | 16250 | 0 | All Passed |
| Metafilerenderer | 1701 | 1701 | 0 | All Passed |
| 12431 | 12431 | 0 | All Passed | |
| Presentation | 55865 | 55865 | 0 | All Passed |
| XlsIO | 17302 | 17302 | 0 | All Passed |