Essential Studio for Blazor Release Notes
Common
Features
- Syncfusion Blazor components are now compatible with latest .NET 10 preview versions.
-
SpreadSheet
component has been added newly in Syncfusion Blazor Library. -
SpeechToText
component has been developed to meet industry standards and are now marked production-ready. - The
Syncfusion.Blazor.AI
package 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.Web
upgraded from8.0.10
to8.0.15
.
-
- Target Framework
.NET 9.0
:-
Microsoft.AspNetCore.Components.Web
upgraded from9.0.0
to9.0.4
. -
System.Text.Json
upgraded from9.0.0
to9.0.4
.
-
-
Microsoft.Extensions.AI.OpenAI
upgraded from9.0.0-preview.9.24525.1
to9.5.0-preview.1.25265.7
. - Replaced the deprecated
Microsoft.Extensions.AI.Ollama
package withOllamaSharp
.
- Target Framework
Accumulation Chart
Features
-
#I709810
- The border radius feature for accumulation charts can now be added using theBorderRadius
property 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 theHoverTextFormat
property.
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
Enable
property and can be further customized through theAttachmentSettings
configuration. -
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
Position
property 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 theChartZoomToolbarPosition
property 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 theColumnWidthInPixel
property 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
StatusIconCss
property, allowing visual representation of user presence. -
Chat UI now supports the compact mode by using the
EnableCompactMode
property 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
, andIsForwarded
in the message model to enable pinning, replying, and forwarding functionalities. Which can be further customized using theMessageToolbar
&MessageToolbarItem
tags, which by default includes actions likeCopy
,Reply
,Pin
, andDelete
for 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+Tab
andTab
keys.
Dashboard Layout
Features
- Removed the obsolete
Col
property from the Dashboard Layout component. UseColumn
instead 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 theFilterEditorSettings
property 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 anIEnumerable
data 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 theAllowEmptyAreaDrop
property. 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
AllowEmptyAreaDrop
property inGridRowDropSettings
to 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.
Dialog
Bug Fixes
-
#F196892
- Resolved a console error that occurred when theResize
property was enabled in the customDialog
component.
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.
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) |
File Manager
Features
- Added support for authorization headers in image retrieval: Custom authorization headers can now be set for image requests, allowing secure access to image files. This enhancement helps protect sensitive data during transfers and supports compliance with specific security and data protection standards without requiring complex configurations.
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. -
#I729587
- Fixed the error popup issue that appeared when renaming a folder via the context menu in the navigation pane of the Blazor File Manager component. -
#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
Units
field inGanttAssignmentFields
has 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 theGanttDialogClosing
event, 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
ResourceInfo
property from theGanttTaskFields
class and theGanttResourceFields
Razor 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
OpenAsync
method. This enhancement introduces optional parameters:width
,height
, andisAspectRatio
, allowing precise control over image dimensions while optionally maintaining the original aspect ratio. -
Provided
Underline
andStrikethrough
formatting 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
OpenAsync
method. -
Introduced the
EnableImageSmoothing
property 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
ExportToExcelAsync
method parameters for the pivot table export have now been changed -Previous
Parameter Type Description excelExportProperties ExcelExportProperties
Specifies 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 Workbook
An instance of the workbook to export. isBlob Nullable<bool>
Specifies whether to export as a blob instead of writing to the response. isServerExport bool
Specifies whether server-side Excel export is enabled. Now
Parameter Type Description asMemoryStream bool
Specifies whether to save the exported Excel document as memory rather than exporting the Pivot Table as a downloadable file. excelExportProperties ExcelExportProperties
Specifies the export properties for customizing the table, such as custom columns, data source, and theme. isServerExport bool
Specifies whether server-side Excel export is enabled. -
The
ExportToCsvAsync
method parameters for the pivot table export have now been changed -Previous
Parameter Type Description excelExportProperties ExcelExportProperties
Specifies 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 Workbook
An instance of the workbook to export. isBlob Nullable<bool>
Specifies whether to export as a blob instead of writing to the response. isServerExport bool
Specifies whether server-side CSV export is enabled. Now
Parameter Type Description asMemoryStream bool
Specifies whether to save the exported CSV document as memory rather than exporting the Pivot Table as a downloadable file. excelExportProperties ExcelExportProperties
Specifies the export properties for customizing the table, such as custom columns, data source, and theme. isServerExport bool
Specifies 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.
Ribbon
Features
-
#I736349
- Now we have provided two-way binding support for the Ribbon itemDisabled
property.
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+B
shortcut. 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, addHorizontalLine
to 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.Top
orToolbarPosition.Bottom
enums 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 theToolbarItems
array 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 ofSlashMenuItemModel
items likeParagraph
,Heading1
, andHeading2
. Additionally, theSlashMenuItemSelecting
event 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
true
enabling 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.
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
TargetContainer
property. By default, this property isnull
. This enhancement eliminates the need to manually refresh the tooltip when new elements are added to the DOM.
Bug Fixes
-
#I723090
- The issue with the tooltip not closing correctly when passingargs.IsInteracted
as 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
LoadChildOnDemand
feature 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
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.
- #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.
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 |