Skip to content

Commit 7c9fa5e

Browse files
Integrated latest changes at 06-04-2024 7:30:28 PM
1 parent 5c23d68 commit 7c9fa5e

File tree

8 files changed

+117
-20
lines changed

8 files changed

+117
-20
lines changed

ej2-react-toc.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2897,7 +2897,7 @@
28972897
</ul>
28982898
</li> <li>Release Notes
28992899
<ul>
2900-
<li>2024 Volume 1 - 25.*<ul><li>Weekly Release<ul><li><a href="/ej2-react/release-notes/25.2.6">25.2.6</a></li><li><a href="/ej2-react/release-notes/25.2.5">25.2.5</a></li><li><a href="/ej2-react/release-notes/25.2.4">25.2.4</a></li><li><a href="/ej2-react/release-notes/25.1.42">25.1.42</a></li><li><a href="/ej2-react/release-notes/25.1.41">25.1.41</a></li><li><a href="/ej2-react/release-notes/25.1.40">25.1.40</a></li><li><a href="/ej2-react/release-notes/25.1.39">25.1.39</a></li><li><a href="/ej2-react/release-notes/25.1.38">25.1.38</a></li><li><a href="/ej2-react/release-notes/25.1.37">25.1.37</a></li></ul></li><li><a href="/ej2-react/release-notes/25.2.3">25.2.3 Service Pack Release</a></li><li><a href="/ej2-react/release-notes/25.1.35">25.1.35 Main Release</a></li></ul></li>
2900+
<li>2024 Volume 1 - 25.*<ul><li>Weekly Release<ul><li><a href="/ej2-react/release-notes/25.2.7">25.2.7</a></li><li><a href="/ej2-react/release-notes/25.2.6">25.2.6</a></li><li><a href="/ej2-react/release-notes/25.2.5">25.2.5</a></li><li><a href="/ej2-react/release-notes/25.2.4">25.2.4</a></li><li><a href="/ej2-react/release-notes/25.1.42">25.1.42</a></li><li><a href="/ej2-react/release-notes/25.1.41">25.1.41</a></li><li><a href="/ej2-react/release-notes/25.1.40">25.1.40</a></li><li><a href="/ej2-react/release-notes/25.1.39">25.1.39</a></li><li><a href="/ej2-react/release-notes/25.1.38">25.1.38</a></li><li><a href="/ej2-react/release-notes/25.1.37">25.1.37</a></li></ul></li><li><a href="/ej2-react/release-notes/25.2.3">25.2.3 Service Pack Release</a></li><li><a href="/ej2-react/release-notes/25.1.35">25.1.35 Main Release</a></li></ul></li>
29012901
<li>2023 Volume 4 - 24.*<ul><li>Weekly Release<ul><li><a href="/ej2-react/release-notes/24.2.9">24.2.9</a></li><li><a href="/ej2-react/release-notes/24.2.8">24.2.8</a></li><li><a href="/ej2-react/release-notes/24.2.7">24.2.7</a></li><li><a href="/ej2-react/release-notes/24.2.6">24.2.6</a></li><li><a href="/ej2-react/release-notes/24.2.5">24.2.5</a></li><li><a href="/ej2-react/release-notes/24.2.4">24.2.4</a></li><li><a href="/ej2-react/release-notes/24.1.47">24.1.47</a></li><li><a href="/ej2-react/release-notes/24.1.46">24.1.46</a></li><li><a href="/ej2-react/release-notes/24.1.45">24.1.45</a></li><li><a href="/ej2-react/release-notes/24.1.44">24.1.44</a></li><li><a href="/ej2-react/release-notes/24.1.43">24.1.43</a></li></ul></li><li><a href="/ej2-react/release-notes/24.2.3">24.2.3 Service Pack Release</a></li><li><a href="/ej2-react/release-notes/24.1.41">24.1.41 Main Release</a></li></ul></li>
29022902
<li>2023 Volume 3 - 23.*<ul><li> Weekly Release<ul><li><a href="/ej2-react/release-notes/23.2.7">23.2.7</a></li><li><a href="/ej2-react/release-notes/23.2.6">23.2.6</a></li><li><a href="/ej2-react/release-notes/23.2.5">23.2.5</a></li><li><a href="/ej2-react/release-notes/23.1.44">23.1.44</a></li><li><a href="/ej2-react/release-notes/23.1.43">23.1.43</a></li><li><a href="/ej2-react/release-notes/23.1.42">23.1.42</a></li><li><a href="/ej2-react/release-notes/23.1.41">23.1.41</a></li><li><a href="/ej2-react/release-notes/23.1.40">23.1.40</a></li><li><a href="/ej2-react/release-notes/23.1.39">23.1.39</a></li><li><a href="/ej2-react/release-notes/23.1.38">23.1.38</a></li></ul></li><li><a href="/ej2-react/release-notes/23.2.4">23.2.4 Service Pack Release</a></li><li><a href="/ej2-react/release-notes/23.1.36">23.1.36 Main Release</a></li></ul></li>
29032903
<li>2023 Volume 2 - 22.*

ej2-react/Release-notes/25.2.7.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: Essential Studio for React Weekly Nuget Release Release Notes
3+
description: Essential Studio for React Weekly Nuget Release Release Notes
4+
platform: ej2-react
5+
documentation: ug
6+
---
7+
8+
# Essential Studio for React Release Notes
9+
10+
{% include release-info.html date="June 04, 2024" version="v25.2.7" %}
11+
12+
{% directory path: _includes/release-notes/v25.2.7 %}
13+
14+
{% include {{file.url}} %}
15+
16+
{% enddirectory %}

ej2-react/code-snippet/rich-text-editor/file-browser-cs1/app/App.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ class App extends React.Component {
88
enable: true,
99
path: '/Pictures/Food',
1010
ajaxSettings: {
11-
url: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/FileOperations',
12-
getImageUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/GetImage',
13-
uploadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Upload',
14-
downloadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Download'
11+
url: 'https://services.syncfusion.com/react/production/api/FileManager/FileOperations',
12+
getImageUrl: 'https://services.syncfusion.com/react/production/api/FileManager/GetImage',
13+
uploadUrl: 'https://services.syncfusion.com/react/production/api/FileManager/Upload',
14+
downloadUrl: 'https://services.syncfusion.com/react/production/api/FileManager/Download'
1515
}
1616
};
1717
toolbarSettings = {

ej2-react/code-snippet/rich-text-editor/file-browser-cs1/app/App.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ class App extends React.Component<{},{}> {
1212
enable: true,
1313
path: '/Pictures/Food',
1414
ajaxSettings: {
15-
url: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/FileOperations',
16-
getImageUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/GetImage',
17-
uploadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Upload',
18-
downloadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Download'
15+
url: 'https://services.syncfusion.com/react/production/api/FileManager/FileOperations',
16+
getImageUrl: 'https://services.syncfusion.com/react/production/api/FileManager/GetImage',
17+
uploadUrl: 'https://services.syncfusion.com/react/production/api/FileManager/Upload',
18+
downloadUrl: 'https://services.syncfusion.com/react/production/api/FileManager/Download'
1919
}
2020
}
2121

ej2-react/code-snippet/rich-text-editor/file-browser-cs2/app/App.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ function App() {
88
enable: true,
99
path: '/Pictures/Food',
1010
ajaxSettings: {
11-
url: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/FileOperations',
12-
getImageUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/GetImage',
13-
uploadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Upload',
14-
downloadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Download'
11+
url: 'https://services.syncfusion.com/react/production/api/FileManager/FileOperations',
12+
getImageUrl: 'https://services.syncfusion.com/react/production/api/FileManager/GetImage',
13+
uploadUrl: 'https://services.syncfusion.com/react/production/api/FileManager/Upload',
14+
downloadUrl: 'https://services.syncfusion.com/react/production/api/FileManager/Download'
1515
}
1616
};
1717
let toolbarSettings = {

ej2-react/code-snippet/rich-text-editor/file-browser-cs2/app/App.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ function App(){
1212
enable: true,
1313
path: '/Pictures/Food',
1414
ajaxSettings: {
15-
url: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/FileOperations',
16-
getImageUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/GetImage',
17-
uploadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Upload',
18-
downloadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Download'
15+
url: 'https://services.syncfusion.com/react/production/api/FileManager/FileOperations',
16+
getImageUrl: 'https://services.syncfusion.com/react/production/api/FileManager/GetImage',
17+
uploadUrl: 'https://services.syncfusion.com/react/production/api/FileManager/Upload',
18+
downloadUrl: 'https://services.syncfusion.com/react/production/api/FileManager/Download'
1919
}
2020
}
2121

ej2-react/grid/connecting-to-adaptors/odatav4-adaptor.md

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,4 +544,83 @@ public IActionResult Delete(int key)
544544
}
545545
```
546546

547-
![ODataV4Adaptor-Delete-record](../images/odatav4-adaptor-delete-record.png)
547+
![ODataV4Adaptor-Delete-record](../images/odatav4-adaptor-delete-record.png)
548+
549+
## Odata with custom url
550+
551+
The Syncfusion ODataV4 adaptor extends support for calling customized URLs to accommodate data retrieval and CRUD actions as per your application's requirements. However, when utilizing a custom URL with the ODataV4 adaptor, it's essential to modify the routing configurations in your application's route configuration file to align with your custom URL. You can invoke the custom URL by the following methods in the Datamanager
552+
553+
**Configuring Custom URLs**
554+
555+
To work with custom URLs for CRUD operations in the Syncfusion Grid, you can use the following properties:
556+
557+
* insertUrl: Specifies the custom URL for inserting new records.
558+
* removeUrl: Specifies the custom URL for deleting records.
559+
* updateUrl: Specifies the custom URL for updating records.
560+
* batchUrl: Specifies the custom URL for batch editing operations.
561+
562+
> Ensure that the routing configurations on the server-side are properly updated to handle these custom URLs.
563+
564+
The following code example describes the above behavior.
565+
566+
{% tabs %}
567+
{% highlight ts tabtitle="App.tsx" %}
568+
import { ColumnDirective, ColumnsDirective, GridComponent, ToolbarItems, EditSettingsModel, Toolbar, Edit, Inject } from '@syncfusion/ej2-react-grids';
569+
import { DataManager, ODataV4Adaptor } from '@syncfusion/ej2-data';
570+
571+
function App() {
572+
const data = new DataManager({
573+
url: 'https://localhost:xxxx/odata/Orders', // xxxx denotes port number
574+
updateUrl: 'https://localhost:xxxx/odata/Orders/Update', // custom URL to update the record
575+
insertUrl: 'https://localhost:xxxx/odata/Orders/Insert', // custom URL to insert new record
576+
removeUrl: 'https://localhost:xxxx/odata/Orders/Delete', // custom URL to delete the record
577+
adaptor: new ODataV4Adaptor()
578+
});
579+
const editSettings: EditSettingsModel = { allowEditing: true, allowAdding: true, allowDeleting: true, mode: 'Normal' };
580+
const toolbar: ToolbarItems[] = ['Add', 'Edit', 'Delete', 'Update', 'Cancel', 'Search'];
581+
const orderIDRules: object = {required: true};
582+
const customerIDRules: object = {required: true, minLength: 3};
583+
return <GridComponent dataSource={data} editSettings={editSettings} toolbar={toolbar} height={320}>
584+
<ColumnsDirective>
585+
<ColumnDirective field='OrderID' headerText='Order ID' isPrimaryKey={true} width='150' textAlign='Right' validationRules={orderIDRules}></ColumnDirective>
586+
<ColumnDirective field='CustomerID' headerText='Customer ID' width='150' validationRules={customerIDRules}></ColumnDirective>
587+
<ColumnDirective field='EmployeeID' headerText='Employee ID' width='150'/>
588+
<ColumnDirective field='ShipCountry' headerText='Ship Country' width='150'/>
589+
</ColumnsDirective>
590+
<Inject services={[Toolbar,Edit]} />
591+
</GridComponent>
592+
};
593+
export default App;
594+
{% endhighlight %}
595+
{% endtabs %}
596+
597+
For batch editing, you can specify a custom batch URL as follows:
598+
599+
{% tabs %}
600+
{% highlight ts tabtitle="App.tsx" %}
601+
import { ColumnDirective, ColumnsDirective, GridComponent, ToolbarItems, EditSettingsModel, Toolbar, Edit, Inject } from '@syncfusion/ej2-react-grids';
602+
import { DataManager, ODataV4Adaptor } from '@syncfusion/ej2-data';
603+
604+
function App() {
605+
const data = new DataManager({
606+
url: 'https://localhost:xxxx/odata/Orders', // xxxx denotes port number
607+
BatchUrl: 'https://localhost:xxxx/odata/Orders/BatchUpdate', // custom URL for batch update
608+
adaptor: new ODataV4Adaptor()
609+
});
610+
const editSettings: EditSettingsModel = { allowEditing: true, allowAdding: true, allowDeleting: true, mode: 'Batch' };
611+
const toolbar: ToolbarItems[] = ['Add', 'Edit', 'Delete', 'Update', 'Cancel', 'Search'];
612+
const orderIDRules: object = {required: true};
613+
const customerIDRules: object = {required: true, minLength: 3};
614+
return <GridComponent dataSource={data} editSettings={editSettings} toolbar={toolbar} height={320}>
615+
<ColumnsDirective>
616+
<ColumnDirective field='OrderID' headerText='Order ID' isPrimaryKey={true} width='150' textAlign='Right' validationRules={orderIDRules}></ColumnDirective>
617+
<ColumnDirective field='CustomerID' headerText='Customer ID' width='150' validationRules={customerIDRules}></ColumnDirective>
618+
<ColumnDirective field='EmployeeID' headerText='Employee ID' width='150'/>
619+
<ColumnDirective field='ShipCountry' headerText='Ship Country' width='150'/>
620+
</ColumnsDirective>
621+
<Inject services={[Toolbar,Edit]} />
622+
</GridComponent>
623+
};
624+
export default App;
625+
{% endhighlight %}
626+
{% endtabs %}

ej2-react/grid/grouping/lazy-load-grouping.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public IActionResult UrlDatasource([FromBody] DataManagerRequest dm)
6868
DataSource = operation.PerformFiltering(DataSource, dm.Where, dm.Where[0].Operator);
6969
}
7070
int count = DataSource.Cast<Customers>().Count();
71-
if (dm.Sorted != null && dm.Sorted.Count > 0) //Sorting
71+
if (dm.IsLazyLoad == false && dm.Sorted != null && dm.Sorted.Count > 0) //Sorting for grouping
7272
{
7373
DataSource = operation.PerformSorting(DataSource, dm.Sorted);
7474
}
@@ -83,6 +83,7 @@ public IActionResult UrlDatasource([FromBody] DataManagerRequest dm)
8383
if (dm.IsLazyLoad)
8484
{
8585
groupedData = operation.PerformGrouping<Customers>(DataSource, dm); // Lazy load grouping
86+
groupedData = operation.PerformSorting(groupedData, dm); // Sorting with Lazy load grouping
8687
if (dm.OnDemandGroupInfo != null && dm.Group.Count() == dm.OnDemandGroupInfo.Level)
8788
{
8889
count = groupedData.Cast<Customers>().Count();
@@ -96,9 +97,10 @@ public IActionResult UrlDatasource([FromBody] DataManagerRequest dm)
9697
}
9798
return dm.RequiresCounts ? Json(new { result = groupedData == null ? DataSource : groupedData, count = count }) : Json(DataSource);
9899
}
99-
100100
```
101101

102+
> For optimal performance, especially when dealing with lazy loading grouping, it is recommended to perform sorting after the grouping action.
103+
102104
## Lazy load grouping with infinite scrolling
103105

104106
Lazy loading grouping with infinite scrolling is a valuable feature in scenarios where there is a need to present grouped data, efficiently handle large datasets, and ensure a seamless experience. This feature enables loading data on demand as the interface is interacted with, ensuring optimal performance and responsiveness while effectively managing and presenting large grouped datasets

0 commit comments

Comments
 (0)