From 0ea2d15348c70059ef8af786647a10aec739193c Mon Sep 17 00:00:00 2001 From: PrasanthMadhaiyan Date: Tue, 20 May 2025 18:42:39 +0530 Subject: [PATCH 1/4] 959367: Need to resolve the issues in the documentation for the Blazor ListView component. --- blazor/listview/accessibility.md | 260 ++++++++--------- blazor/listview/customizing-templates.md | 10 +- blazor/listview/data-binding.md | 8 +- .../how-to/create-dual-list-from-listview.md | 51 ---- ...ate-mobile-contact-layout-from-listview.md | 30 +- .../customize-listview-as-grid-layout.md | 8 +- ...c-templates-in-listview-based-on-device.md | 10 +- .../get-selected-items-from-listview.md | 4 - .../listview-with-hyper-link-navigation.md | 2 +- .../how-to/trace-events-of-listview.md | 2 - blazor/listview/nested-list.md | 262 +++++++++--------- 11 files changed, 282 insertions(+), 365 deletions(-) diff --git a/blazor/listview/accessibility.md b/blazor/listview/accessibility.md index 72e7936b8d..08cf6e146d 100644 --- a/blazor/listview/accessibility.md +++ b/blazor/listview/accessibility.md @@ -78,155 +78,157 @@ The Blazor ListView component followed the [keyboard interaction](https://www.w3 Id = "01", Category = "Continent", Child = new List() { - new DataModel { - Text = "India", - Id = "1", - Category = "Asia", - Child = new List () { - new DataModel { - Id = "1001", - Text = "Delhi", - Category = "India" - }, - new DataModel { - Text = "Kashmir", - Id = "1002", - Category = "India" - }, - new DataModel { - Text = "Goa", - Id = "1003", - Category = "India" - } - } - }, - new DataModel { - Text = "China", - Id = "2", - Category = "Asia", - Child = new List () { - new DataModel { - Text = "Zhejiang", - Id = "2001", - Category = "China" - }, - new DataModel { - Text = "Hunan", - Id = "2002", - Category = "China" - }, - new DataModel { - Text = "Shandong", - Id = "2003", - Category = "China" - } - } + new DataModel { + Text = "India", + Id = "1", + Category = "Asia", + Child = new List () { + new DataModel { + Id = "1001", + Text = "Delhi", + Category = "India" + }, + new DataModel { + Text = "Kashmir", + Id = "1002", + Category = "India" + }, + new DataModel { + Text = "Goa", + Id = "1003", + Category = "India" + } + } + }, + new DataModel { + Text = "China", + Id = "2", + Category = "Asia", + Child = new List () { + new DataModel { + Text = "Zhejiang", + Id = "2001", + Category = "China" + }, + new DataModel { + Text = "Hunan", + Id = "2002", + Category = "China" + }, + new DataModel { + Text = "Shandong", + Id = "2003", + Category = "China" + } } } + } }); + ListData.Add(new DataModel { Text = "North America", Id = "02", Category = "Continent", Child = new List() { - new DataModel { - Text = "USA", - Id = "3", - Category = "North America", - Child = new List () { - new DataModel { - Text = "California", - Id = "3001", - Category = "USA" - }, - new DataModel { - Text = "New York", - Id = "3002", - Category = "USA" - }, - new DataModel { - Text = "Florida", - Id = "3003", - Category = "USA" - } - } - }, - new DataModel { - Text = "Canada", - Id = "4", - Category = "North America", - Child = new List () { - new DataModel { - Text = "Ontario", - Id = "4001", - Category = "Canada" - }, - new DataModel { - Text = "Alberta", - Id = "4002", - Category = "Canada" - }, - new DataModel { - Text = "Manitoba", - Id = "4003", - Category = "Canada" - } - } + new DataModel { + Text = "USA", + Id = "3", + Category = "North America", + Child = new List () { + new DataModel { + Text = "California", + Id = "3001", + Category = "USA" + }, + new DataModel { + Text = "New York", + Id = "3002", + Category = "USA" + }, + new DataModel { + Text = "Florida", + Id = "3003", + Category = "USA" + } + } + }, + new DataModel { + Text = "Canada", + Id = "4", + Category = "North America", + Child = new List () { + new DataModel { + Text = "Ontario", + Id = "4001", + Category = "Canada" + }, + new DataModel { + Text = "Alberta", + Id = "4002", + Category = "Canada" + }, + new DataModel { + Text = "Manitoba", + Id = "4003", + Category = "Canada" + } } } + } }); + ListData.Add(new DataModel { Text = "Europe", Id = "03", Category = "Continent", Child = new List() { - new DataModel { - Text = "Germany", - Id = "5", - Category = "Europe", - Child = new List () { - new DataModel { - Text = "Berlin", - Id = "5001", - Category = "Germany" - }, - new DataModel { - Text = "Bavaria", - Id = "5002", - Category = "Germany" - }, - new DataModel { - Text = "Hesse", - Id = "5003", - Category = "Germany" - } - } - }, - new DataModel { - Text = "France", - Id = "6", - Category = "Europe", - Child = new List () { - new DataModel { - Text = "Paris", - Id = "6001", - Category = "France" - }, - new DataModel { - Text = "Lyon", - Id = "6002", - Category = "France" - }, - new DataModel { - Text = "Marseille", - Id = "6003", - Category = "France" - } - } + new DataModel { + Text = "Germany", + Id = "5", + Category = "Europe", + Child = new List () { + new DataModel { + Text = "Berlin", + Id = "5001", + Category = "Germany" + }, + new DataModel { + Text = "Bavaria", + Id = "5002", + Category = "Germany" + }, + new DataModel { + Text = "Hesse", + Id = "5003", + Category = "Germany" + } + } + }, + new DataModel { + Text = "France", + Id = "6", + Category = "Europe", + Child = new List () { + new DataModel { + Text = "Paris", + Id = "6001", + Category = "France" + }, + new DataModel { + Text = "Lyon", + Id = "6002", + Category = "France" + }, + new DataModel { + Text = "Marseille", + Id = "6003", + Category = "France" + } } } + } }); } diff --git a/blazor/listview/customizing-templates.md b/blazor/listview/customizing-templates.md index 62cd57cfd0..3ffefeb2d1 100644 --- a/blazor/listview/customizing-templates.md +++ b/blazor/listview/customizing-templates.md @@ -73,11 +73,11 @@ The following built-in CSS classes can be used to customize the list-items. | ------------- |-------------| | e-list-template, e-list-wrapper | These classes are used to differentiate normal and template rendering, which are mandatory for template rendering. The `e-list-template` class should be added to the root of the ListView element and `e-list-wrapper` class should be added to the template element wrapper. | e-list-content | This class is used to align list content and it should be added to the content element.

`
`
`ListItem`
`
`| -| e-list-avatar | This class is used for avatar customization. It should be added to the template element wrapper. After adding it, we can customize our element with **Avatar** classes

`
`
`MR`
`ListItem`
`
`| -| e-list-avatar-right | This class is used to align avatar to right side of the list item. It should be added to the template element wrapper. After adding it, customize the element with **Avatar** classes.

`
`
`ListItem`
`MR`
`
`| -| e-list-badge | This class is used for badge customization. It should be added to the template element wrapper. After adding it, customize the element with **Badge** classes.

`
`
`ListItem`
`MR`
`
`| -| e-list-multi-line | This class is used for multi-line customization. It should be added to the template element wrapper. After adding it, customize List item's header and description.

`
`
`ListItem`
`
`| -| e-list-item-header | This class is used to align a list header and it should be added to the header element along with the multi-line class.

`
`
`ListItem Header`
`ListItem`
`
`| +| e-list-avatar | This class is used for avatar customization. It should be added to the template element wrapper. After adding it, we can customize our element with **Avatar** classes

`
`
`MR`
`ListItem`
`
`| +| e-list-avatar-right | This class is used to align avatar to right side of the list item. It should be added to the template element wrapper. After adding it, customize the element with **Avatar** classes.

`
`
`ListItem`
`MR`
`
`| +| e-list-badge | This class is used for badge customization. It should be added to the template element wrapper. After adding it, customize the element with **Badge** classes.

`
`
`ListItem`
`MR`
`
`| +| e-list-multi-line | This class is used for multi-line customization. It should be added to the template element wrapper. After adding it, customize List item's header and description.

`
`
`ListItem`
`
`| +| e-list-item-header | This class is used to align a list header and it should be added to the header element along with the multi-line class.

`
`
`ListItem Header`
`ListItem`
`
`| ```cshtml diff --git a/blazor/listview/data-binding.md b/blazor/listview/data-binding.md index 510d7847a8..9641543d56 100644 --- a/blazor/listview/data-binding.md +++ b/blazor/listview/data-binding.md @@ -47,7 +47,7 @@ ListView can generate its list items through an array of complex data. To get it protected override void OnInitialized() { base.OnInitialized(); - Data.Add(new DataModel { Text = "Hennessey Venom", Id = "list-01" }); + Data.Add(new DataModel { Text = "Hennessey Venom !", Id = "list-01" }); Data.Add(new DataModel { Text = "Bugatti Chiron", Id = "list-02" }); Data.Add(new DataModel { Text = "Bugatti Veyron Super Sport", Id = "list-03" }); Data.Add(new DataModel { Text = "SSC Ultimate Aero", Id = "list-04" }); @@ -72,7 +72,7 @@ ListView can generate its list items through an array of complex data. To get it ## Bind to remote data -The ListView supports to retrieve the data from remote data services with the help of [`DataManager`](https://blazor.syncfusion.com/documentation/data/getting-started) control. The `Query` property allows to fetch data and return it to the ListView from the database. +The ListView supports to retrieve the data from remote data services with the help of [`DataManager`](https://blazor.syncfusion.com/documentation/data/getting-started) control. The [`Query`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_Query) property allows to fetch data and return it to the ListView from the database. In the following sample, `first 6 products` from the **Product** table of **NorthWind** data service are displayed. @@ -80,7 +80,7 @@ In the following sample, `first 6 products` from the **Product** table of **Nort @using Syncfusion.Blazor.Lists @using Syncfusion.Blazor.Data - + @@ -94,7 +94,7 @@ In the following sample, `first 6 products` from the **Product** table of **Nort Query query = new Query().From("Products").Select(column).Take(6); public class Data { - public string ProductID { get; set; } + public int ProductID { get; set; } public string ProductName { get; set; } } } diff --git a/blazor/listview/how-to/create-dual-list-from-listview.md b/blazor/listview/how-to/create-dual-list-from-listview.md index abe28530a3..370e2e3bd4 100644 --- a/blazor/listview/how-to/create-dual-list-from-listview.md +++ b/blazor/listview/how-to/create-dual-list-from-listview.md @@ -235,21 +235,11 @@ The following example demonstrates how to manipulate data between two ListView c padding: 4px; } - .right__align { - text-align: right; - margin-right: 8px; - padding-right: 8px; - } - .left__align { margin-left: 8px; padding-left: 8px; } - .content__container { - background-color: aliceblue; - } - .flex { display: flex; } @@ -265,47 +255,6 @@ The following example demonstrates how to manipulate data between two ListView c .vertical { flex-direction: column; } - - .flex__order__1 { - order: 1; - } - - .flex__order__2 { - order: 2; - } - - .flex__1 { - flex: 1; - } - - .flex__2 { - flex: 2; - } - - .flex__3 { - flex: 3; - } - - .flex__5 { - flex: 5; - } - - .flex__8 { - flex: 8; - } - - .bold { - font-weight: 500; - } - - .margin { - margin: 10px; - } - - .small__font { - font-size: 13px; - margin: 2px 0; - } ``` diff --git a/blazor/listview/how-to/create-mobile-contact-layout-from-listview.md b/blazor/listview/how-to/create-mobile-contact-layout-from-listview.md index 99ebf4ba26..764fccdfaf 100644 --- a/blazor/listview/how-to/create-mobile-contact-layout-from-listview.md +++ b/blazor/listview/how-to/create-mobile-contact-layout-from-listview.md @@ -43,7 +43,7 @@ ListDataModel item = context as ListDataModel; * Sort the contact names using the [`SortOder`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_SortOrder) property of ListView. -* Enable the [`ShowHeader`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_ShowHeader) property, and set the `HeaderTitle` as `Contacts`. +* Enable the [`ShowHeader`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_ShowHeader) property, and set the [`HeaderTitle`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_HeaderTitle) as `Contacts`. ```cshtml @using Syncfusion.Blazor.Lists @@ -172,34 +172,6 @@ ListDataModel item = context as ListDataModel; justify-content: center; } - .vertical__center { - align-items: center; - } - - .vertical { - flex-direction: column; - } - - .flex__1 { - flex: 1; - } - - .flex__2 { - flex: 2; - } - - .flex__3 { - flex: 3; - } - - .flex__4 { - flex: 4; - } - - .bold { - font-weight: 500; - } - .margin { margin: 10px; width: 350px; diff --git a/blazor/listview/how-to/customize-listview-as-grid-layout.md b/blazor/listview/how-to/customize-listview-as-grid-layout.md index 78cb56100b..152ac0c28f 100644 --- a/blazor/listview/how-to/customize-listview-as-grid-layout.md +++ b/blazor/listview/how-to/customize-listview-as-grid-layout.md @@ -173,9 +173,9 @@ To effectively manage item removal, a delete button is introduced, which becomes @code { - async void Remove(ListDataModel data) + void Remove(ListDataModel data) { - await DataSourceOG.RemoveAt(DataSourceOG.FindIndex(e => e.Id == data.Id)); + DataSourceOG.RemoveAt(DataSourceOG.FindIndex(e => e.Id == data.Id)); DataSource = new List(DataSourceOG); } } @@ -304,9 +304,9 @@ The below code explains adding, removing, searching and sorting within a list of } } - async void Remove(ListDataModel data) + void Remove(ListDataModel data) { - await DataSourceOG.RemoveAt(DataSourceOG.FindIndex(e => e.Id == data.Id)); + DataSourceOG.RemoveAt(DataSourceOG.FindIndex(e => e.Id == data.Id)); DataSource = new List(DataSourceOG); } diff --git a/blazor/listview/how-to/dynamic-templates-in-listview-based-on-device.md b/blazor/listview/how-to/dynamic-templates-in-listview-based-on-device.md index 7c09563307..1246c54dbc 100644 --- a/blazor/listview/how-to/dynamic-templates-in-listview-based-on-device.md +++ b/blazor/listview/how-to/dynamic-templates-in-listview-based-on-device.md @@ -9,7 +9,7 @@ documentation: ug # Use dynamic templates in Blazor ListView based on device -The Syncfusion® Essential® Blazor controls are desktop and mobile-friendly. So, you can use Syncfusion® controls in both modes. The control templates are not always fixed. Applications may need to load various templates depending upon the device. +The Syncfusion® Essential Blazor controls are desktop and mobile-friendly. So, you can use Syncfusion® controls in both modes. The control templates are not always fixed. Applications may need to load various templates depending upon the device. ## Integration @@ -121,10 +121,6 @@ In the ListView control, [`template`](https://help.syncfusion.com/cr/blazor/Sync flex: 2; } - .flex__3 { - flex: 3; - } - .flex__4 { flex: 4; } @@ -182,4 +178,6 @@ In the ListView control, [`template`](https://help.syncfusion.com/cr/blazor/Sync ``` -![Blazor ListView with Dynamic Layout](../images/list/blazor-listview-with-dynamic-layout.png) \ No newline at end of file +![Blazor ListView with Dynamic Layout](../images/list/blazor-listview-with-dynamic-layout.png) + +N> Make sure to register the **builder.Services.AddHttpContextAccessor();** service in the **Program.cs** file. This is required to access the current HTTP context in your application. \ No newline at end of file diff --git a/blazor/listview/how-to/get-selected-items-from-listview.md b/blazor/listview/how-to/get-selected-items-from-listview.md index e051c642f5..d9c8ee19d6 100644 --- a/blazor/listview/how-to/get-selected-items-from-listview.md +++ b/blazor/listview/how-to/get-selected-items-from-listview.md @@ -192,10 +192,6 @@ In scenarios where you build custom templates in Blazor ListView Component, you display: flex; } - .flex__center { - justify-content: center; - } - .margin { margin: 10px; } diff --git a/blazor/listview/how-to/listview-with-hyper-link-navigation.md b/blazor/listview/how-to/listview-with-hyper-link-navigation.md index 31539cfa78..34f4a6ff7c 100644 --- a/blazor/listview/how-to/listview-with-hyper-link-navigation.md +++ b/blazor/listview/how-to/listview-with-hyper-link-navigation.md @@ -9,7 +9,7 @@ documentation: ug # Blazor ListView Component with hyper-link navigation -The `anchor` tag can be used along with `href` attribute in the ListView [`Template`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewTemplates-1.html) property for navigation. +The `anchor` tag can be used along with `href` attribute in the ListView [`Template`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewTemplates-1.html#Syncfusion_Blazor_Lists_ListViewTemplates_1_Template) property for navigation. ```cshtml @using Syncfusion.Blazor.Lists diff --git a/blazor/listview/how-to/trace-events-of-listview.md b/blazor/listview/how-to/trace-events-of-listview.md index 2de4cd64fe..c640f500d1 100644 --- a/blazor/listview/how-to/trace-events-of-listview.md +++ b/blazor/listview/how-to/trace-events-of-listview.md @@ -19,8 +19,6 @@ The ListView control triggers events based on its actions. The events can be use 4. Get the clicked item details from the `ClickEventArgs` in the Clicked event, and display the clicked list item text in the event trace panel while clicking list items. -5. Use clear button to remove event trace information. - ```cshtml @using Syncfusion.Blazor.Lists diff --git a/blazor/listview/nested-list.md b/blazor/listview/nested-list.md index 50b97d9fb7..09b47ee580 100644 --- a/blazor/listview/nested-list.md +++ b/blazor/listview/nested-list.md @@ -17,7 +17,7 @@ The ListView component supports Nested list. For that, the [`Child`](https://hel -@code{ +@code { List ListData = new List(); protected override void OnInitialized() @@ -30,155 +30,157 @@ The ListView component supports Nested list. For that, the [`Child`](https://hel Id = "01", Category = "Continent", Child = new List() { - new DataModel { - Text = "India", - Id = "1", - Category = "Asia", - Child = new List () { - new DataModel { - Id = "1001", - Text = "Delhi", - Category = "India" - }, - new DataModel { - Text = "Kashmir", - Id = "1002", - Category = "India" - }, - new DataModel { - Text = "Goa", - Id = "1003", - Category = "India" - } - } - }, - new DataModel { - Text = "China", - Id = "2", - Category = "Asia", - Child = new List () { - new DataModel { - Text = "Zhejiang", - Id = "2001", - Category = "China" - }, - new DataModel { - Text = "Hunan", - Id = "2002", - Category = "China" - }, - new DataModel { - Text = "Shandong", - Id = "2003", - Category = "China" - } - } + new DataModel { + Text = "India", + Id = "1", + Category = "Asia", + Child = new List () { + new DataModel { + Id = "1001", + Text = "Delhi", + Category = "India" + }, + new DataModel { + Text = "Kashmir", + Id = "1002", + Category = "India" + }, + new DataModel { + Text = "Goa", + Id = "1003", + Category = "India" + } + } + }, + new DataModel { + Text = "China", + Id = "2", + Category = "Asia", + Child = new List () { + new DataModel { + Text = "Zhejiang", + Id = "2001", + Category = "China" + }, + new DataModel { + Text = "Hunan", + Id = "2002", + Category = "China" + }, + new DataModel { + Text = "Shandong", + Id = "2003", + Category = "China" + } } } + } }); + ListData.Add(new DataModel { Text = "North America", Id = "02", Category = "Continent", Child = new List() { - new DataModel { - Text = "USA", - Id = "3", - Category = "North America", - Child = new List () { - new DataModel { - Text = "California", - Id = "3001", - Category = "USA" - }, - new DataModel { - Text = "New York", - Id = "3002", - Category = "USA" - }, - new DataModel { - Text = "Florida", - Id = "3003", - Category = "USA" - } - } - }, - new DataModel { - Text = "Canada", - Id = "4", - Category = "North America", - Child = new List () { - new DataModel { - Text = "Ontario", - Id = "4001", - Category = "Canada" - }, - new DataModel { - Text = "Alberta", - Id = "4002", - Category = "Canada" - }, - new DataModel { - Text = "Manitoba", - Id = "4003", - Category = "Canada" - } - } + new DataModel { + Text = "USA", + Id = "3", + Category = "North America", + Child = new List () { + new DataModel { + Text = "California", + Id = "3001", + Category = "USA" + }, + new DataModel { + Text = "New York", + Id = "3002", + Category = "USA" + }, + new DataModel { + Text = "Florida", + Id = "3003", + Category = "USA" + } + } + }, + new DataModel { + Text = "Canada", + Id = "4", + Category = "North America", + Child = new List () { + new DataModel { + Text = "Ontario", + Id = "4001", + Category = "Canada" + }, + new DataModel { + Text = "Alberta", + Id = "4002", + Category = "Canada" + }, + new DataModel { + Text = "Manitoba", + Id = "4003", + Category = "Canada" + } } } + } }); + ListData.Add(new DataModel { Text = "Europe", Id = "03", Category = "Continent", Child = new List() { - new DataModel { - Text = "Germany", - Id = "5", - Category = "Europe", - Child = new List () { - new DataModel { - Text = "Berlin", - Id = "5001", - Category = "Germany" - }, - new DataModel { - Text = "Bavaria", - Id = "5002", - Category = "Germany" - }, - new DataModel { - Text = "Hesse", - Id = "5003", - Category = "Germany" - } - } - }, - new DataModel { - Text = "France", - Id = "6", - Category = "Europe", - Child = new List () { - new DataModel { - Text = "Paris", - Id = "6001", - Category = "France" - }, - new DataModel { - Text = "Lyon", - Id = "6002", - Category = "France" - }, - new DataModel { - Text = "Marseille", - Id = "6003", - Category = "France" - } - } + new DataModel { + Text = "Germany", + Id = "5", + Category = "Europe", + Child = new List () { + new DataModel { + Text = "Berlin", + Id = "5001", + Category = "Germany" + }, + new DataModel { + Text = "Bavaria", + Id = "5002", + Category = "Germany" + }, + new DataModel { + Text = "Hesse", + Id = "5003", + Category = "Germany" + } + } + }, + new DataModel { + Text = "France", + Id = "6", + Category = "Europe", + Child = new List () { + new DataModel { + Text = "Paris", + Id = "6001", + Category = "France" + }, + new DataModel { + Text = "Lyon", + Id = "6002", + Category = "France" + }, + new DataModel { + Text = "Marseille", + Id = "6003", + Category = "France" + } } } + } }); } From 0ae497b32268a758f4225de6aae0c4e00d5dca55 Mon Sep 17 00:00:00 2001 From: PrasanthMadhaiyan Date: Tue, 20 May 2025 19:30:54 +0530 Subject: [PATCH 2/4] 959367: Need to resolve the issues in the documentation for the Blazor ListView component. --- blazor/listview/customizing-templates.md | 4 ++-- blazor/listview/data-binding.md | 2 +- blazor/listview/getting-started-webapp.md | 2 +- blazor/listview/getting-started.md | 2 +- .../how-to/add-and-remove-list-items-from-listview.md | 2 +- .../how-to/chat-window-user-interface-using-listview.md | 2 +- blazor/listview/how-to/customize-listview-as-grid-layout.md | 2 +- .../how-to/dynamic-templates-in-listview-based-on-device.md | 4 ++-- .../how-to/filter-and-search-list-items-using-listview.md | 2 +- blazor/listview/how-to/trace-events-of-listview.md | 2 +- blazor/listview/style.md | 6 +++--- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/blazor/listview/customizing-templates.md b/blazor/listview/customizing-templates.md index 3ffefeb2d1..b11aa6ce14 100644 --- a/blazor/listview/customizing-templates.md +++ b/blazor/listview/customizing-templates.md @@ -18,7 +18,7 @@ To customize the Blazor ListView component header, items, and group header using ## Header Template -Listview header can be customized with the help of the [`HeaderTemplate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_HeaderTemplate) property. To customize header template in your application, set your customized template string to `HeaderTemplate` property along with [`ShowHeader`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_ShowHeader) property as `true` to display the Listview header. +ListView header can be customized with the help of the [`HeaderTemplate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_HeaderTemplate) property. To customize header template in your application, set your customized template string to `HeaderTemplate` property along with [`ShowHeader`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_ShowHeader) property as `true` to display the ListView header. ```cshtml @using Syncfusion.Blazor.Lists @@ -238,7 +238,7 @@ The following built-in CSS classes can be used to customize the list-items. ListView group header can be customized with the help of the [`GroupTemplate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_GroupTemplate) property. To customize the group template in the application, set the customized template string to `GroupTemplate` property. -In the following example, Listview is grouped based on the category. The category of each list item should be mapped with [`GroupBy`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewFieldSettings-1.html#Syncfusion_Blazor_Lists_ListViewFieldSettings_1_GroupBy) field of the data. The grouped list items have also displayed count in the group list header. +In the following example, ListView is grouped based on the category. The category of each list item should be mapped with [`GroupBy`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewFieldSettings-1.html#Syncfusion_Blazor_Lists_ListViewFieldSettings_1_GroupBy) field of the data. The grouped list items have also displayed count in the group list header. ```cshtml @using Syncfusion.Blazor.Lists diff --git a/blazor/listview/data-binding.md b/blazor/listview/data-binding.md index 9641543d56..e91dcc60c5 100644 --- a/blazor/listview/data-binding.md +++ b/blazor/listview/data-binding.md @@ -72,7 +72,7 @@ ListView can generate its list items through an array of complex data. To get it ## Bind to remote data -The ListView supports to retrieve the data from remote data services with the help of [`DataManager`](https://blazor.syncfusion.com/documentation/data/getting-started) control. The [`Query`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_Query) property allows to fetch data and return it to the ListView from the database. +The ListView supports to retrieve the data from remote data services with the help of [`DataManager`](https://blazor.syncfusion.com/documentation/data/getting-started) component. The [`Query`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_Query) property allows to fetch data and return it to the ListView from the database. In the following sample, `first 6 products` from the **Product** table of **NorthWind** data service are displayed. diff --git a/blazor/listview/getting-started-webapp.md b/blazor/listview/getting-started-webapp.md index 8f58a9d843..7e8c5391a5 100644 --- a/blazor/listview/getting-started-webapp.md +++ b/blazor/listview/getting-started-webapp.md @@ -255,4 +255,4 @@ N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting- * [Getting Started with Syncfusion Blazor Web App in Visual Studio or .NET CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) -N> You can also explore our [Blazor ListView example](https://blazor.syncfusion.com/demos/listview/default-functionalities?theme=bootstrap5) that shows you how to render and configure the Listview. \ No newline at end of file +N> You can also explore our [Blazor ListView example](https://blazor.syncfusion.com/demos/listview/default-functionalities?theme=bootstrap5) that shows you how to render and configure the ListView. \ No newline at end of file diff --git a/blazor/listview/getting-started.md b/blazor/listview/getting-started.md index 68c06a6ca9..2747878427 100644 --- a/blazor/listview/getting-started.md +++ b/blazor/listview/getting-started.md @@ -190,4 +190,4 @@ N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting- * [Getting Started with Syncfusion® Blazor for Server-Side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-dotnet-cli) -N> You can also explore our [Blazor ListView example](https://blazor.syncfusion.com/demos/listview/default-functionalities?theme=bootstrap5) that shows you how to render and configure the Listview. +N> You can also explore our [Blazor ListView example](https://blazor.syncfusion.com/demos/listview/default-functionalities?theme=bootstrap5) that shows you how to render and configure the ListView. diff --git a/blazor/listview/how-to/add-and-remove-list-items-from-listview.md b/blazor/listview/how-to/add-and-remove-list-items-from-listview.md index 0ee5a2bb6d..3b9e4c50aa 100644 --- a/blazor/listview/how-to/add-and-remove-list-items-from-listview.md +++ b/blazor/listview/how-to/add-and-remove-list-items-from-listview.md @@ -9,7 +9,7 @@ documentation: ug # Add and remove list items in Blazor ListView Component -You can add or remove list items from the ListView control using the `ObservableCollection`. +You can add or remove list items from the ListView component using the `ObservableCollection`. Refer to the following steps to add or remove a list item. diff --git a/blazor/listview/how-to/chat-window-user-interface-using-listview.md b/blazor/listview/how-to/chat-window-user-interface-using-listview.md index 79b0450f55..c70b1324d8 100644 --- a/blazor/listview/how-to/chat-window-user-interface-using-listview.md +++ b/blazor/listview/how-to/chat-window-user-interface-using-listview.md @@ -12,7 +12,7 @@ documentation: ug ListView can be customized as chat window. To achieve that, use the ListView [`Template`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewTemplates-1.html). * The ListView template is used to showcase the ListView as chat window. -* Avatar control is used to design the image of contact person. +* Avatar component is used to design the image of contact person. ```cshtml
diff --git a/blazor/listview/how-to/customize-listview-as-grid-layout.md b/blazor/listview/how-to/customize-listview-as-grid-layout.md index 152ac0c28f..750d22c763 100644 --- a/blazor/listview/how-to/customize-listview-as-grid-layout.md +++ b/blazor/listview/how-to/customize-listview-as-grid-layout.md @@ -9,7 +9,7 @@ documentation: ug # Customize Blazor ListView Component to Grid Layout -In Listview, list items can be rendered in grid layout with the following data manipulations. +In ListView, list items can be rendered in grid layout with the following data manipulations. * Add Item * Remove Item diff --git a/blazor/listview/how-to/dynamic-templates-in-listview-based-on-device.md b/blazor/listview/how-to/dynamic-templates-in-listview-based-on-device.md index 1246c54dbc..e7aa3337dd 100644 --- a/blazor/listview/how-to/dynamic-templates-in-listview-based-on-device.md +++ b/blazor/listview/how-to/dynamic-templates-in-listview-based-on-device.md @@ -9,11 +9,11 @@ documentation: ug # Use dynamic templates in Blazor ListView based on device -The Syncfusion® Essential Blazor controls are desktop and mobile-friendly. So, you can use Syncfusion® controls in both modes. The control templates are not always fixed. Applications may need to load various templates depending upon the device. +The Syncfusion® Essential Blazor controls are desktop and mobile-friendly. So, you can use Syncfusion® controls in both modes. The component templates are not always fixed. Applications may need to load various templates depending upon the device. ## Integration -In the ListView control, [`template`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewTemplates-1.html) support is being used. In some cases, the control wrapper is always responsive across all devices, but the template contents are dynamically changed with unspecified (sample side) dimensions. CSS customization is also needed in sample-side to align template content responsively in both mobile and desktop modes. Here, two templates have been loaded for mobile and desktop modes. To check the device mode, use the **Microsoft.AspNetCore.Http** package and check for the **UserAgent** to detect mobile or desktop. +In the ListView component, [`template`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewTemplates-1.html) support is being used. In some cases, the component wrapper is always responsive across all devices, but the template contents are dynamically changed with unspecified (sample side) dimensions. CSS customization is also needed in sample-side to align template content responsively in both mobile and desktop modes. Here, two templates have been loaded for mobile and desktop modes. To check the device mode, use the **Microsoft.AspNetCore.Http** package and check for the **UserAgent** to detect mobile or desktop. ```cshtml @using Syncfusion.Blazor.Lists diff --git a/blazor/listview/how-to/filter-and-search-list-items-using-listview.md b/blazor/listview/how-to/filter-and-search-list-items-using-listview.md index 6597b8fb7c..06d3c72813 100644 --- a/blazor/listview/how-to/filter-and-search-list-items-using-listview.md +++ b/blazor/listview/how-to/filter-and-search-list-items-using-listview.md @@ -9,7 +9,7 @@ documentation: ug # Filter and search list items using Blazor ListView Component -The filtered data can be displayed in the ListView control depending on the user inputs. Refer to the following steps to render the ListView with the filtered data. +The filtered data can be displayed in the ListView component depending on the user inputs. Refer to the following steps to render the ListView with the filtered data. * Render a textbox to get input for filtering data. diff --git a/blazor/listview/how-to/trace-events-of-listview.md b/blazor/listview/how-to/trace-events-of-listview.md index c640f500d1..a1b5bce1f7 100644 --- a/blazor/listview/how-to/trace-events-of-listview.md +++ b/blazor/listview/how-to/trace-events-of-listview.md @@ -9,7 +9,7 @@ documentation: ug # Trace events of listview in Blazor ListView Component -The ListView control triggers events based on its actions. The events can be used as extension points to perform custom operations. Refer to the following steps to trace the ListView events: +The ListView component triggers events based on its actions. The events can be used as extension points to perform custom operations. Refer to the following steps to trace the ListView events: 1. Render the ListView with [`DataSource`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_DataSource), and bind the [`OnActionBegin`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewEvents-1.html#Syncfusion_Blazor_Lists_ListViewEvents_1_OnActionBegin), [`OnActionComplete`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewEvents-1.html#Syncfusion_Blazor_Lists_ListViewEvents_1_OnActionComplete), and [`Clicked`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewEvents-1.html#Syncfusion_Blazor_Lists_ListViewEvents_1_Clicked) events. diff --git a/blazor/listview/style.md b/blazor/listview/style.md index 566ce587bf..18606991c4 100644 --- a/blazor/listview/style.md +++ b/blazor/listview/style.md @@ -39,7 +39,7 @@ Use the following CSS to customize the items of ListView. ## Customizing ListView's header -Use the following CSS to customize the header of ListView control. +Use the following CSS to customize the header of ListView component. ```CSS @@ -64,7 +64,7 @@ Use the following CSS to customize the category of the group items. ``` -## Customizing the hover state of ListView control +## Customizing the hover state of ListView component Use the following CSS to customize the list item when hovering. @@ -90,7 +90,7 @@ Use the following CSS to customize the list item when hovering. ``` -## Customizing selected item of ListView control +## Customizing selected item of ListView component Use the following CSS to customize the selected list item. From 464359aefd5e16fbb7d7dacbe451915ab7c94dd3 Mon Sep 17 00:00:00 2001 From: PrasanthMadhaiyan <98938528+PrasanthMadhaiyan@users.noreply.github.com> Date: Thu, 22 May 2025 18:12:28 +0530 Subject: [PATCH 3/4] 959367: Need to resolve the issues in the documentation for the Blazor ListView component. --- blazor/listview/customizing-templates.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/blazor/listview/customizing-templates.md b/blazor/listview/customizing-templates.md index b11aa6ce14..23e7a85691 100644 --- a/blazor/listview/customizing-templates.md +++ b/blazor/listview/customizing-templates.md @@ -73,11 +73,11 @@ The following built-in CSS classes can be used to customize the list-items. | ------------- |-------------| | e-list-template, e-list-wrapper | These classes are used to differentiate normal and template rendering, which are mandatory for template rendering. The `e-list-template` class should be added to the root of the ListView element and `e-list-wrapper` class should be added to the template element wrapper. | e-list-content | This class is used to align list content and it should be added to the content element.

`
`
`ListItem`
`
`| -| e-list-avatar | This class is used for avatar customization. It should be added to the template element wrapper. After adding it, we can customize our element with **Avatar** classes

`
`
`MR`
`ListItem`
`
`| -| e-list-avatar-right | This class is used to align avatar to right side of the list item. It should be added to the template element wrapper. After adding it, customize the element with **Avatar** classes.

`
`
`ListItem`
`MR`
`
`| -| e-list-badge | This class is used for badge customization. It should be added to the template element wrapper. After adding it, customize the element with **Badge** classes.

`
`
`ListItem`
`MR`
`
`| -| e-list-multi-line | This class is used for multi-line customization. It should be added to the template element wrapper. After adding it, customize List item's header and description.

`
`
`ListItem`
`
`| -| e-list-item-header | This class is used to align a list header and it should be added to the header element along with the multi-line class.

`
`
`ListItem Header`
`ListItem`
`
`| +| e-list-avatar | This class is used for avatar customization. It should be added to the template element wrapper. After adding it, we can customize our element with **Avatar** classes

`
`
`MR`
`ListItem`
`
`| +| e-list-avatar-right | This class is used to align avatar to right side of the list item. It should be added to the template element wrapper. After adding it, customize the element with **Avatar** classes.

`
`
`ListItem`
`MR`
`
`| +| e-list-badge | This class is used for badge customization. It should be added to the template element wrapper. After adding it, customize the element with **Badge** classes.

`
`
`ListItem`
`MR`
`
`| +| e-list-multi-line | This class is used for multi-line customization. It should be added to the template element wrapper. After adding it, customize List item's header and description.

`
`
`ListItem`
`
`| +| e-list-item-header | This class is used to align a list header and it should be added to the header element along with the multi-line class.

`
`
`ListItem Header`
`ListItem`
`
`| ```cshtml From b2efa29d7f07a825c15be81e6e6e3d7713fae49f Mon Sep 17 00:00:00 2001 From: PrasanthMadhaiyan Date: Fri, 23 May 2025 15:48:51 +0530 Subject: [PATCH 4/4] 959367: Need to resolve the issues in the documentation for the Blazor ListView component. --- blazor/listview/data-binding.md | 2 +- .../list/blazor-listview-data-binding.png | Bin 26462 -> 24913 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/listview/data-binding.md b/blazor/listview/data-binding.md index e91dcc60c5..96791e5a0e 100644 --- a/blazor/listview/data-binding.md +++ b/blazor/listview/data-binding.md @@ -47,7 +47,7 @@ ListView can generate its list items through an array of complex data. To get it protected override void OnInitialized() { base.OnInitialized(); - Data.Add(new DataModel { Text = "Hennessey Venom !", Id = "list-01" }); + Data.Add(new DataModel { Text = "Hennessey Venom", Id = "list-01" }); Data.Add(new DataModel { Text = "Bugatti Chiron", Id = "list-02" }); Data.Add(new DataModel { Text = "Bugatti Veyron Super Sport", Id = "list-03" }); Data.Add(new DataModel { Text = "SSC Ultimate Aero", Id = "list-04" }); diff --git a/blazor/listview/images/list/blazor-listview-data-binding.png b/blazor/listview/images/list/blazor-listview-data-binding.png index 6441e33e91b5ba16deda27400e72c50e193ae95a..2fd685ad4a23caf6e74f2d17597ed70d66a8e00a 100644 GIT binary patch literal 24913 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 literal 26462 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 F{|9rqkShQH