From 6e0e39cc323233e1fa3b06ce347d58ca4045cba9 Mon Sep 17 00:00:00 2001 From: mohanrajsf3477 Date: Thu, 19 Sep 2024 13:40:17 +0530 Subject: [PATCH] 910685: Need to update the documentation for the multicolumn combobox component --- .../data-binding/action-begin.razor | 21 + .../data-binding/action-complete.razor | 21 + .../data-binding/action-failure.razor | 21 + .../data-binding/add-new-item.razor | 39 ++ .../combobox-with-web-api-adaptor.razor | 15 + .../data-binding/complex-data-type.razor | 37 ++ .../data-binding/custom-adaptor.razor | 66 +++ .../data-binding/data-bound.razor | 26 ++ .../data-binding/dynamic-object-binding.razor | 40 ++ .../data-binding/enum-data-binding.razor | 21 + .../data-binding/expando-object-binding.razor | 21 + .../data-binding/local-data-binding.razor | 30 ++ .../observable-collection-binding.razor | 33 ++ .../data-binding/odata-v4-services.razor | 26 ++ .../data-binding/offline-mode.razor | 21 + .../value-tuple-data-binding.razor | 6 + .../data-binding/web-api-adaptor.razor | 23 ++ .../filtering/case-sentitive.razor | 43 ++ .../filtering/custom-filtering.razor | 43 ++ .../code-snippet/filtering/filter-type.razor | 31 ++ .../code-snippet/filtering/local-data.razor | 31 ++ .../filtering/minimum-filter-length.razor | 48 +++ .../filtering/multi-column-filtering.razor | 45 ++ .../code-snippet/filtering/multi-column.razor | 52 +++ .../prevent-popupopen-in-filtering.razor | 54 +++ .../code-snippet/filtering/remote-data.razor | 17 + .../floatlabel-focusing-color.razor | 17 + .../floatlabel.razor | 27 ++ .../placeholder-with-color.razor | 36 ++ .../placeholder-with-mandatory.razor | 34 ++ .../placeholder.razor | 27 ++ .../code-snippet/selection/auto-fill.razor | 32 ++ .../code-snippet/selection/blur-event.razor | 37 ++ .../selection/change-the-selected-value.razor | 39 ++ .../code-snippet/selection/focus-event.razor | 36 ++ .../code-snippet/selection/focus-method.razor | 45 ++ .../selection/focus-next-component.razor | 47 +++ .../get-selected-item-by-value.razor | 41 ++ .../selection/get-selected-value.razor | 32 ++ .../code-snippet/selection/item-data.razor | 32 ++ .../selection/preselect-value-index.razor | 33 ++ .../selection/preselect-value.razor | 32 ++ .../selection/prevent-reload.razor | 40 ++ .../programmatically-clear-value.razor | 42 ++ .../selection/trigger-change-event.razor | 41 ++ .../selection/valuechange-event.razor | 32 ++ .../selection/valueselect-event.razor | 34 ++ .../value-binding/bind-value.razor | 44 ++ .../value-binding/index-value.razor | 33 ++ .../value-binding/object-binding.razor | 44 ++ .../show-hide-clear-button.razor | 31 ++ blazor/multicolumn-combobox/custom-value.md | 53 +++ blazor/multicolumn-combobox/data-binding.md | 385 ++++++++++++++++++ blazor/multicolumn-combobox/filtering.md | 135 ++++++ .../blazor-multicolumn-custom-value.gif | Bin 0 -> 36171 bytes .../blazor_combobox_dynamic-data-binding.png | Bin 0 -> 2494 bytes ...blazor_combobox_expando-object-binding.png | Bin 0 -> 24326 bytes .../blazor_combobox_local-binding.png | Bin 0 -> 2135 bytes .../blazor_combobox_odata-v4-services.png | Bin 0 -> 58329 bytes .../blazor_combobox_web-api-adaptor.png | Bin 0 -> 25747 bytes .../filtering/blazor_combobox_filter-type.png | Bin 0 -> 10516 bytes .../filtering/blazor_combobox_local-data.png | Bin 0 -> 9868 bytes .../blazor_combobox_floatlabel.gif | Bin 0 -> 97536 bytes ...or_combobox_placeholder-with-mandatory.png | Bin 0 -> 3335 bytes .../blazor_combobox_placeholder.png | Bin 0 -> 2147 bytes ...lazor_combobox_changing-selected-value.gif | Bin 0 -> 19373 bytes .../blazor_combobox_preselect-value-index.png | Bin 0 -> 2274 bytes .../blazor_combobox_preselect-value.png | Bin 0 -> 2448 bytes .../blazor-combobox-bind-value.png | Bin 0 -> 2135 bytes .../blazor_combobox_index-value.png | Bin 0 -> 2274 bytes ...blazor_combobox_show-hide-clear-button.png | Bin 0 -> 3116 bytes .../placeholder-and-floatlabel.md | 80 ++++ blazor/multicolumn-combobox/selection.md | 182 +++++++++ blazor/multicolumn-combobox/value-binding.md | 146 +++++++ 74 files changed, 2700 insertions(+) create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/action-begin.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/action-complete.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/action-failure.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/add-new-item.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/combobox-with-web-api-adaptor.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/complex-data-type.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/custom-adaptor.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/data-bound.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/dynamic-object-binding.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/enum-data-binding.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/expando-object-binding.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/local-data-binding.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/observable-collection-binding.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/odata-v4-services.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/offline-mode.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/value-tuple-data-binding.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/data-binding/web-api-adaptor.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/filtering/case-sentitive.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/filtering/custom-filtering.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/filtering/filter-type.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/filtering/local-data.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/filtering/minimum-filter-length.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/filtering/multi-column-filtering.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/filtering/multi-column.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/filtering/prevent-popupopen-in-filtering.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/filtering/remote-data.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/floatlabel-focusing-color.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/floatlabel.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder-with-color.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder-with-mandatory.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/auto-fill.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/blur-event.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/change-the-selected-value.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/focus-event.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/focus-method.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/focus-next-component.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/get-selected-item-by-value.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/get-selected-value.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/item-data.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/preselect-value-index.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/preselect-value.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/prevent-reload.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/programmatically-clear-value.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/trigger-change-event.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/valuechange-event.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/selection/valueselect-event.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/value-binding/bind-value.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/value-binding/index-value.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/value-binding/object-binding.razor create mode 100644 blazor/multicolumn-combobox/code-snippet/value-binding/show-hide-clear-button.razor create mode 100644 blazor/multicolumn-combobox/custom-value.md create mode 100644 blazor/multicolumn-combobox/data-binding.md create mode 100644 blazor/multicolumn-combobox/filtering.md create mode 100644 blazor/multicolumn-combobox/images/blazor-multicolumn-custom-value.gif create mode 100644 blazor/multicolumn-combobox/images/data-binding/blazor_combobox_dynamic-data-binding.png create mode 100644 blazor/multicolumn-combobox/images/data-binding/blazor_combobox_expando-object-binding.png create mode 100644 blazor/multicolumn-combobox/images/data-binding/blazor_combobox_local-binding.png create mode 100644 blazor/multicolumn-combobox/images/data-binding/blazor_combobox_odata-v4-services.png create mode 100644 blazor/multicolumn-combobox/images/data-binding/blazor_combobox_web-api-adaptor.png create mode 100644 blazor/multicolumn-combobox/images/filtering/blazor_combobox_filter-type.png create mode 100644 blazor/multicolumn-combobox/images/filtering/blazor_combobox_local-data.png create mode 100644 blazor/multicolumn-combobox/images/placeholder-and-floatlabel/blazor_combobox_floatlabel.gif create mode 100644 blazor/multicolumn-combobox/images/placeholder-and-floatlabel/blazor_combobox_placeholder-with-mandatory.png create mode 100644 blazor/multicolumn-combobox/images/placeholder-and-floatlabel/blazor_combobox_placeholder.png create mode 100644 blazor/multicolumn-combobox/images/selection/blazor_combobox_changing-selected-value.gif create mode 100644 blazor/multicolumn-combobox/images/selection/blazor_combobox_preselect-value-index.png create mode 100644 blazor/multicolumn-combobox/images/selection/blazor_combobox_preselect-value.png create mode 100644 blazor/multicolumn-combobox/images/value-binding/blazor-combobox-bind-value.png create mode 100644 blazor/multicolumn-combobox/images/value-binding/blazor_combobox_index-value.png create mode 100644 blazor/multicolumn-combobox/images/value-binding/blazor_combobox_show-hide-clear-button.png create mode 100644 blazor/multicolumn-combobox/placeholder-and-floatlabel.md create mode 100644 blazor/multicolumn-combobox/selection.md create mode 100644 blazor/multicolumn-combobox/value-binding.md diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/action-begin.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/action-begin.razor new file mode 100644 index 0000000000..171afcabc2 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/action-begin.razor @@ -0,0 +1,21 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + + + +@code { + public Query RemoteQuery = new Query(); + public class EmployeeData + { + public int EmployeeID { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Country { get; set; } + } + private void OnActionBeginhandler(ActionBeginEventArgs args) + { + // Here, you can customize your code. + } +} diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/action-complete.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/action-complete.razor new file mode 100644 index 0000000000..de366d49b4 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/action-complete.razor @@ -0,0 +1,21 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + + + +@code { + public Query RemoteQuery = new Query(); + public class EmployeeData + { + public int EmployeeID { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Country { get; set; } + } + private void OnActionCompletehandler(ActionCompleteEventArgs args) + { + // Here, you can customize your code. + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/action-failure.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/action-failure.razor new file mode 100644 index 0000000000..9732d86d0a --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/action-failure.razor @@ -0,0 +1,21 @@ + @using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + + + +@code { + public Query RemoteQuery = new Query(); + public class EmployeeData + { + public int EmployeeID { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Country { get; set; } + } + private void OnActionFailurehandler(Exception args) + { + // Here, you can customize your code. + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/add-new-item.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/add-new-item.razor new file mode 100644 index 0000000000..6c36553441 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/add-new-item.razor @@ -0,0 +1,39 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data +@using Syncfusion.Blazor.Buttons + +
+ + +
+
+ +
+ + +@code { + SfMultiColumnComboBox multicolumnObj; + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } // New field + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } +}; + + public async Task OnBtnClick() + { + await this.multicolumnObj.AddItemsAsync(new List { new Games() { ID = "Game11", Game = "Tennis", Category ="Outdoor" } }); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/combobox-with-web-api-adaptor.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/combobox-with-web-api-adaptor.razor new file mode 100644 index 0000000000..5e94006b6f --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/combobox-with-web-api-adaptor.razor @@ -0,0 +1,15 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Data + + + + + +@code { + public class Order + { + public int? OrderID { get; set; } + public string ShipCountry { get; set; } + } +} diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/complex-data-type.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/complex-data-type.razor new file mode 100644 index 0000000000..309a900325 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/complex-data-type.razor @@ -0,0 +1,37 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + +@code { + + public string CountryValue { get; set; } = "CM"; + public IEnumerable LocalData { get; set; } = new Complex().GetData(); + + public class Code + { + public string ID { get; set; } + } + + public class Country + { + public string CountryID { get; set; } + } + + public class Complex + { + public Country Country { get; set; } + public Code Code { get; set; } + public List GetData() + { + List Data = new List(); + Data.Add(new Complex() { Country = new Country() { CountryID = "Australia" }, Code = new Code() { ID = "AU" } }); + Data.Add(new Complex() { Country = new Country() { CountryID = "Bermuda" }, Code = new Code() { ID = "BM" } }); + Data.Add(new Complex() { Country = new Country() { CountryID = "Canada" }, Code = new Code() { ID = "CA" } }); + Data.Add(new Complex() { Country = new Country() { CountryID = "Cameroon" }, Code = new Code() { ID = "CM" } }); + Data.Add(new Complex() { Country = new Country() { CountryID = "Denmark" }, Code = new Code() { ID = "DK" } }); + Data.Add(new Complex() { Country = new Country() { CountryID = "France" }, Code = new Code() { ID = "FR" } }); + return Data; + } + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/custom-adaptor.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/custom-adaptor.razor new file mode 100644 index 0000000000..bfb7beac32 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/custom-adaptor.razor @@ -0,0 +1,66 @@ +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Data +@using Syncfusion.Blazor.MultiColumnComboBox + + + + +@code{ + + public Query RemoteDataQuery = new Query().Take(50).RequiresCount(); + + public class OrdersDetails + { + public int OrderID { get; set; } + public string CustomerID { get; set; } + public string ProductName { get; set; } // New field added + + // Example static method to get all records + public static List GetAllRecords() + { + var records = new List(); + for (int i = 1; i <= 250; i++) + { + records.Add(new OrdersDetails + { + OrderID = i, + CustomerID = $"Customer {i}", + ProductName = $"Product {i}" // Assigning value to the new field + }); + } + return records; + } + } + + public class CustomAdaptor : DataAdaptor + { + static readonly HttpClient client = new HttpClient(); + public static List order = OrdersDetails.GetAllRecords(); + public override async Task ReadAsync(DataManagerRequest dm, string key = null) + { + IEnumerable DataSource = order; + if (dm.Search != null && dm.Search.Count > 0) + { + DataSource = DataOperations.PerformSearching(DataSource, dm.Search); //Search + } + if (dm.Sorted != null && dm.Sorted.Count > 0) //Sorting + { + DataSource = DataOperations.PerformSorting(DataSource, dm.Sorted); + } + if (dm.Where != null && dm.Where.Count > 0) //Filtering + { + DataSource = DataOperations.PerformFiltering(DataSource, dm.Where, dm.Where[0].Operator); + } + int count = DataSource.Cast().Count(); + if (dm.Skip != 0) + { + DataSource = DataOperations.PerformSkip(DataSource, dm.Skip); //Paging + } + if (dm.Take != 0) + { + DataSource = DataOperations.PerformTake(DataSource, dm.Take); + } + return dm.RequiresCounts ? new DataResult() { Result = DataSource, Count = count } : (object)DataSource; + } + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/data-bound.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/data-bound.razor new file mode 100644 index 0000000000..30b81abfa8 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/data-bound.razor @@ -0,0 +1,26 @@ +@using Syncfusion.Blazor.DropDowns + + + + + + +@code { + public class GameFields + { + public string ID { get; set; } + public string Text { get; set; } + } + + private List Games = new List() { + new GameFields(){ ID= "Game1", Text= "American Football" }, + new GameFields(){ ID= "Game2", Text= "Badminton" }, + new GameFields(){ ID= "Game3", Text= "Basketball" }, + new GameFields(){ ID= "Game4", Text= "Cricket" }, + }; + + private void DataBoundHandler(DataBoundEventArgs args) + { + // Here, you can customize your code. + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/dynamic-object-binding.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/dynamic-object-binding.razor new file mode 100644 index 0000000000..ed15f1b04d --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/dynamic-object-binding.razor @@ -0,0 +1,40 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using System.Dynamic +@using Syncfusion.Blazor.Data + + + + +@code { + public string NameValue { get; set; } = "Margaret"; + public List Orders = new List() { }; + protected override void OnInitialized() + { + Orders = Enumerable.Range(1, 15).Select((x) => + { + dynamic d = new DynamicDictionary(); + d.OrderID = 1000 + x; + d.CustomerName = (new string[] { "Nancy", "Andrew", "Janet", "Margaret", "Steven", "Michael", "Robert", "Anne", "Nige", "Fuller", "Dodsworth", "Leverling", "Callahan", "Suyama", "Davolio" }[x - 1]); + return d; + }).Cast().ToList(); + } + public class DynamicDictionary : System.Dynamic.DynamicObject + { + Dictionary dictionary = new Dictionary(); + public override bool TryGetMember(GetMemberBinder binder, out object result) + { + string name = binder.Name; + return dictionary.TryGetValue(name, out result); + } + public override bool TrySetMember(SetMemberBinder binder, object value) + { + dictionary[binder.Name] = value; + return true; + } + //The GetDynamicMemberNames method of DynamicObject class must be overridden and return the property names to perform data operation and editing while using DynamicObject. + public override System.Collections.Generic.IEnumerable GetDynamicMemberNames() + { + return this.dictionary?.Keys; + } + } +} diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/enum-data-binding.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/enum-data-binding.razor new file mode 100644 index 0000000000..ad3bab6da6 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/enum-data-binding.razor @@ -0,0 +1,21 @@ +@using Syncfusion.Blazor.DropDowns; + + + + +@code { + + public string[] EnumValues = Enum.GetNames(typeof(Values)); + public Values ddlVal { get; set; } = Values.Canada; + + public enum Values + { + Australia, + Bermuda, + Canada, + Denmark, + India, + US + + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/expando-object-binding.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/expando-object-binding.razor new file mode 100644 index 0000000000..9d5908fcfb --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/expando-object-binding.razor @@ -0,0 +1,21 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using System.Dynamic +@using Syncfusion.Blazor.Data + + + + +@code { + public string VehicleValue { get; set; } = "1011"; + public List VehicleData { get; set; } = new List(); + protected override void OnInitialized() + { + VehicleData = Enumerable.Range(1, 15).Select((x) => + { + dynamic d = new ExpandoObject(); + d.ID = (1000 + x).ToString(); + d.Text = (new string[] { "Hennessey Venom", "Bugatti Chiron", "Bugatti Veyron Super Sport", "SSC Ultimate Aero", "Koenigsegg CCR", "McLaren F1", "Aston Martin One- 77", "Jaguar XJ220", "McLaren P1", "Ferrari LaFerrari", "Mahindra Jaguar", "Hyundai Toyota", "Jeep Volkswagen", "Tata Maruti Suzuki", "Audi Mercedes Benz" }[x - 1]); + return d; + }).Cast().ToList(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/local-data-binding.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/local-data-binding.razor new file mode 100644 index 0000000000..1e239ad552 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/local-data-binding.razor @@ -0,0 +1,30 @@ +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + }; + return base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/observable-collection-binding.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/observable-collection-binding.razor new file mode 100644 index 0000000000..a10cc9ad1c --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/observable-collection-binding.razor @@ -0,0 +1,33 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data +@using System.Collections.ObjectModel; + + + +@code { + + public string ColorValue { get; set; } = "#75523C"; + public class Colors + { + public string Code { get; set; } + public string Color { get; set; } + } + private ObservableCollection ColorsData = new ObservableCollection() + { + new Colors() { Color = "Chocolate", Code = "#75523C" }, + new Colors() { Color = "CadetBlue", Code = "#3B8289" }, + new Colors() { Color = "DarkOrange", Code = "#FF843D" }, + new Colors() { Color = "DarkRed", Code = "#CA3832"}, + new Colors() { Color = "Fuchsia", Code = "#D44FA3" }, + new Colors() { Color = "HotPink", Code = "#F23F82" }, + new Colors() { Color = "Indigo", Code = "#2F5D81" }, + new Colors() { Color = "LimeGreen", Code = "#4CD242" }, + new Colors() { Color = "OrangeRed", Code = "#FE2A00" }, + new Colors() { Color = "Tomato", Code = "#FF745C" }, + new Colors() { Color = "Brown", Code = "#A52A2A" }, + new Colors() { Color = "Maroon", Code = "#800000" }, + new Colors() { Color = "Green", Code = "#008000" }, + new Colors() { Color = "Pink", Code = "#FFC0CB" }, + new Colors() { Color = "Purple", Code = "#800080" } + }; +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/odata-v4-services.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/odata-v4-services.razor new file mode 100644 index 0000000000..dd2ca6bd4e --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/odata-v4-services.razor @@ -0,0 +1,26 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + + + +@code { + public string OrderValue { get; set; } = "TOMSP"; + public Query Query = new Query().Select(new List { "CustomerID", "OrderID" }).Take(6).RequiresCount(); + + public class OrderDetails + { + public int? OrderID { get; set; } + public string CustomerID { get; set; } + public int? EmployeeID { get; set; } + public double? Freight { get; set; } + public string ShipCity { get; set; } + public bool Verified { get; set; } + public DateTime? OrderDate { get; set; } + public string ShipName { get; set; } + public string ShipCountry { get; set; } + public DateTime? ShippedDate { get; set; } + public string ShipAddress { get; set; } + } +} diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/offline-mode.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/offline-mode.razor new file mode 100644 index 0000000000..642884d7ae --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/offline-mode.razor @@ -0,0 +1,21 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + + + +@code { + public Query RemoteQuery = new Query(); + public class EmployeeData + { + public int EmployeeID { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Country { get; set; } + } + private void OnActionBeginhandler(ActionBeginEventArgs args) + { + // Here, you can customize your code. + } +} diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/value-tuple-data-binding.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/value-tuple-data-binding.razor new file mode 100644 index 0000000000..1c79b64ec8 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/value-tuple-data-binding.razor @@ -0,0 +1,6 @@ +@using Syncfusion.Blazor.DropDowns; + + + + \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/data-binding/web-api-adaptor.razor b/blazor/multicolumn-combobox/code-snippet/data-binding/web-api-adaptor.razor new file mode 100644 index 0000000000..f946136a6a --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/data-binding/web-api-adaptor.razor @@ -0,0 +1,23 @@ +@using Syncfusion.Blazor.Data +@using Syncfusion.Blazor.DropDowns +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + + + +@code { + public Query RemoteQuery = new Query(); + public class EmployeeData + { + public int EmployeeID { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Country { get; set; } + } + private void OnActionBeginhandler(ActionBeginEventArgs args) + { + // Here, you can customize your code. + } +} diff --git a/blazor/multicolumn-combobox/code-snippet/filtering/case-sentitive.razor b/blazor/multicolumn-combobox/code-snippet/filtering/case-sentitive.razor new file mode 100644 index 0000000000..3fee1c0ceb --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/filtering/case-sentitive.razor @@ -0,0 +1,43 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + +@code { + + SfMultiColumnComboBox multicolumnObj { get; set; } + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + + }; + return base.OnInitializedAsync(); + } + + private async Task OnFilter(FilteringEventArgs args) + { + args.PreventDefaultAction = true; + var query = new Query().Where(new WhereFilter() { Field = "Name", Operator = "contains", value = args.Text, IgnoreCase = true }); + + query = !string.IsNullOrEmpty(args.Text) ? query : new Query(); + + await multicolumnObj.FilterAsync(Products, query); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/filtering/custom-filtering.razor b/blazor/multicolumn-combobox/code-snippet/filtering/custom-filtering.razor new file mode 100644 index 0000000000..3fee1c0ceb --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/filtering/custom-filtering.razor @@ -0,0 +1,43 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + +@code { + + SfMultiColumnComboBox multicolumnObj { get; set; } + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + + }; + return base.OnInitializedAsync(); + } + + private async Task OnFilter(FilteringEventArgs args) + { + args.PreventDefaultAction = true; + var query = new Query().Where(new WhereFilter() { Field = "Name", Operator = "contains", value = args.Text, IgnoreCase = true }); + + query = !string.IsNullOrEmpty(args.Text) ? query : new Query(); + + await multicolumnObj.FilterAsync(Products, query); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/filtering/filter-type.razor b/blazor/multicolumn-combobox/code-snippet/filtering/filter-type.razor new file mode 100644 index 0000000000..aed1cb9c55 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/filtering/filter-type.razor @@ -0,0 +1,31 @@ +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + + }; + return base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/filtering/local-data.razor b/blazor/multicolumn-combobox/code-snippet/filtering/local-data.razor new file mode 100644 index 0000000000..1fa0532a96 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/filtering/local-data.razor @@ -0,0 +1,31 @@ +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + + }; + return base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/filtering/minimum-filter-length.razor b/blazor/multicolumn-combobox/code-snippet/filtering/minimum-filter-length.razor new file mode 100644 index 0000000000..c65e1a5310 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/filtering/minimum-filter-length.razor @@ -0,0 +1,48 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + +@code { + + SfMultiColumnComboBox multicolumnObj { get; set; } + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + + }; + return base.OnInitializedAsync(); + } + + private async Task OnFilter(FilteringEventArgs args) + { + args.PreventDefaultAction = true; + // load overall data when search key empty. + if (args.Text == "") await multicolumnObj.FilterAsync(multicolumnObj.DataSource); + // restrict the remote request until search key contains 3 characters. + else if (args.Text.Length < 3) { return; } + else + { + var query = new Query().Where(new WhereFilter() { Field = "Name", value = args.Text, Operator = "contains", IgnoreAccent = true, IgnoreCase = true }); + query = !string.IsNullOrEmpty(args.Text) ? query : new Query(); + await multicolumnObj.FilterAsync(multicolumnObj.DataSource, query); + } + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/filtering/multi-column-filtering.razor b/blazor/multicolumn-combobox/code-snippet/filtering/multi-column-filtering.razor new file mode 100644 index 0000000000..00aad2e35f --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/filtering/multi-column-filtering.razor @@ -0,0 +1,45 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + +@code { + + SfMultiColumnComboBox multicolumnObj { get; set; } + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + + }; + return base.OnInitializedAsync(); + } + + public async Task OnFiltering(FilteringEventArgs args) + { + args.PreventDefaultAction = true; + var orWhere = WhereFilter.Or(new List { + new WhereFilter() { Field = "Name", Operator = "contains", value = args.Text, IgnoreCase = true }, + new WhereFilter() { Field = "Rating", Operator = "contains", value = args.Text, IgnoreCase = true } + }); + var query = new Query().Where(orWhere); + query = !string.IsNullOrEmpty(args.Text) ? query : new Query(); + await multicolumnObj.FilterAsync(Products, query); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/filtering/multi-column.razor b/blazor/multicolumn-combobox/code-snippet/filtering/multi-column.razor new file mode 100644 index 0000000000..6cc2dd3d11 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/filtering/multi-column.razor @@ -0,0 +1,52 @@ +@using Syncfusion.Blazor.DropDowns + + + + + +
NamePosition
+
+ + + + + + + + +
@((context as Countries).Name)@((context as Countries).Job)
+
+
+
+@code { + public class Countries + { + public string Name { get; set; } + public string Code { get; set; } + public string Job { get; set; } + + } + List Country = new List +{ + new Countries() { Name = "Australia", Code = "AU",Job= "Team Lead" }, + new Countries() { Name = "Bermuda", Code = "BM",Job="Developer" }, + new Countries() { Name = "Canada", Code = "CA",Job="CEO" }, + new Countries() { Name = "Cameroon", Code = "CM" ,Job="HR" }, + new Countries() { Name = "Denmark", Code = "DK",Job="Product Manager" }, + new Countries() { Name = "France", Code = "FR",Job="Developer" }, + new Countries() { Name = "Finland", Code = "FI",Job="Team Lead" }, + new Countries() { Name = "Germany", Code = "DE",Job="Product Manager" }, + new Countries() { Name = "Greenland", Code = "GL",Job="Developer" }, + new Countries() { Name = "Hong Kong", Code = "HK",Job="CEO" }, + new Countries() { Name = "India", Code = "IN",Job="HR" }, + new Countries() { Name = "Italy", Code = "IT",Job="Team Lead" }, + new Countries() { Name = "Japan", Code = "JP",Job="Developer" }, + new Countries() { Name = "Mexico", Code = "MX",Job="Product Manager" }, + new Countries() { Name = "Norway", Code = "NO",Job="HR" }, + new Countries() { Name = "Poland", Code = "PL",Job="Team Lead" }, + new Countries() { Name = "Switzerland", Code = "CH",Job="Product Manager" }, + new Countries() { Name = "United Kingdom", Code = "GB",Job="CEO" }, + new Countries() { Name = "United States", Code = "US",Job="Developer" }, + }; + +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/filtering/prevent-popupopen-in-filtering.razor b/blazor/multicolumn-combobox/code-snippet/filtering/prevent-popupopen-in-filtering.razor new file mode 100644 index 0000000000..bc42ca07cd --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/filtering/prevent-popupopen-in-filtering.razor @@ -0,0 +1,54 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + +@code { + + SfMultiColumnComboBox multicolumnObj { get; set; } + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + + }; + return base.OnInitializedAsync(); + } + + public bool isTyped { get; set; } = false; + public async Task OnOpen(PopupOpeningEventArgs args) + { + if (this.isTyped) + { + args.Cancel = true; + } + else + { + args.Cancel = false; + } + this.isTyped = false; + } + public void OnFilter(FilteringEventArgs args) + { + this.isTyped = true; + } +} + + + diff --git a/blazor/multicolumn-combobox/code-snippet/filtering/remote-data.razor b/blazor/multicolumn-combobox/code-snippet/filtering/remote-data.razor new file mode 100644 index 0000000000..6229c6c1bf --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/filtering/remote-data.razor @@ -0,0 +1,17 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + + + +@code { + public Query RemoteQuery = new Query(); + public class EmployeeData + { + public int EmployeeID { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Country { get; set; } + } +} diff --git a/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/floatlabel-focusing-color.razor b/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/floatlabel-focusing-color.razor new file mode 100644 index 0000000000..49af468832 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/floatlabel-focusing-color.razor @@ -0,0 +1,17 @@ +@using Syncfusion.Blazor.DropDowns +@using Syncfusion.Blazor.Inputs + + + +@code { + List data = new List() { "Cricket", "Badminton", "Football" }; +} + \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/floatlabel.razor b/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/floatlabel.razor new file mode 100644 index 0000000000..c535e052e6 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/floatlabel.razor @@ -0,0 +1,27 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Inputs + + + + +@code { + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } // New field + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } +}; + +} diff --git a/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder-with-color.razor b/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder-with-color.razor new file mode 100644 index 0000000000..f5deb377a7 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder-with-color.razor @@ -0,0 +1,36 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Inputs + + + + +@code { + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } // New field + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } +}; + +} + \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder-with-mandatory.razor b/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder-with-mandatory.razor new file mode 100644 index 0000000000..21c66db4a6 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder-with-mandatory.razor @@ -0,0 +1,34 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Inputs + + + + +@code { + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } // New field + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } +}; + +} + \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder.razor b/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder.razor new file mode 100644 index 0000000000..2a45b257b2 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/placeholder-and-floatlabel/placeholder.razor @@ -0,0 +1,27 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Data + + + + +@code { + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } // New field + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } +}; + +} diff --git a/blazor/multicolumn-combobox/code-snippet/selection/auto-fill.razor b/blazor/multicolumn-combobox/code-snippet/selection/auto-fill.razor new file mode 100644 index 0000000000..3b1ab1ccc5 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/auto-fill.razor @@ -0,0 +1,32 @@ +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private int? ComboIndex { get; set; } = 2; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + new Product { Name = "Keyboard", Price = 39.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.1 }, + new Product { Name = "Mouse", Price = 19.99m, Availability = "Out of Stock", Category = "Accessories", Rating = 4.3 }, + }; + return base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/selection/blur-event.razor b/blazor/multicolumn-combobox/code-snippet/selection/blur-event.razor new file mode 100644 index 0000000000..6afe1b4875 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/blur-event.razor @@ -0,0 +1,37 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + + + + + + +@code { + public string comboBoxValue { get; set; } + + SfMultiColumnComboBox multicolumnObj; + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + + public void OnBlur() + { + Console.WriteLine("Blur event has been triggered !!"); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/selection/change-the-selected-value.razor b/blazor/multicolumn-combobox/code-snippet/selection/change-the-selected-value.razor new file mode 100644 index 0000000000..723f6b4498 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/change-the-selected-value.razor @@ -0,0 +1,39 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + +
+ + +
+ +
+ +
+ +@code { + public string comboBoxValue { get; set; } + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } // New field + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public void OnBtnClick() + { + comboBoxValue = "Rugby"; + } + +} diff --git a/blazor/multicolumn-combobox/code-snippet/selection/focus-event.razor b/blazor/multicolumn-combobox/code-snippet/selection/focus-event.razor new file mode 100644 index 0000000000..02038d7ddd --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/focus-event.razor @@ -0,0 +1,36 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + + + + + + +@code { + public string comboBoxValue { get; set; } + + SfMultiColumnComboBox multicolumnObj; + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public void OnFocus() + { + Console.WriteLine("Focus event has been triggered !!"); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/selection/focus-method.razor b/blazor/multicolumn-combobox/code-snippet/selection/focus-method.razor new file mode 100644 index 0000000000..f60e24cf42 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/focus-method.razor @@ -0,0 +1,45 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + + + + + +
+ + +
+ +@code { + public string comboBoxValue { get; set; } + + SfMultiColumnComboBox multicolumnObj; + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public void Focus() + { + this.multicolumnObj.FocusAsync(); + } + + public void FocusOut() + { + this.multicolumnObj.FocusOutAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/selection/focus-next-component.razor b/blazor/multicolumn-combobox/code-snippet/selection/focus-next-component.razor new file mode 100644 index 0000000000..22ca344d4c --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/focus-next-component.razor @@ -0,0 +1,47 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + + + + + + + + + +@code { + public string comboBoxValue { get; set; } + + SfMultiColumnComboBox multicolumnObj; + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public async Task OnClose(object args) + { + Thread tread = new Thread( + async () => + { + Thread.Sleep(5); + await multicolumnObj.FocusAsync(); + } + ); + tread.Start(); + await Task.CompletedTask; + } +} diff --git a/blazor/multicolumn-combobox/code-snippet/selection/get-selected-item-by-value.razor b/blazor/multicolumn-combobox/code-snippet/selection/get-selected-item-by-value.razor new file mode 100644 index 0000000000..e03892cc5f --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/get-selected-item-by-value.razor @@ -0,0 +1,41 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + +
+ + +
+ +
+ +
+ +@code { + public string comboBoxValue { get; set; } + + SfMultiColumnComboBox multicolumnObj; + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public void OnBtnClick() + { + var DropDownValue = multicolumnObj.GetDataByValue(comboBoxValue); + Console.WriteLine(DropDownValue); + } +} diff --git a/blazor/multicolumn-combobox/code-snippet/selection/get-selected-value.razor b/blazor/multicolumn-combobox/code-snippet/selection/get-selected-value.razor new file mode 100644 index 0000000000..69276bbaa3 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/get-selected-value.razor @@ -0,0 +1,32 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Inputs + + + + +@code { + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } // New field + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public void OnValueChange(ValueChangeEventArgs args) + { + Console.WriteLine("The ComboBox Value is: ", args.Value); + } + +} diff --git a/blazor/multicolumn-combobox/code-snippet/selection/item-data.razor b/blazor/multicolumn-combobox/code-snippet/selection/item-data.razor new file mode 100644 index 0000000000..f69f6768af --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/item-data.razor @@ -0,0 +1,32 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Inputs + + + + +@code { + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public void OnValueChange(ValueChangeEventArgs args) + { + Console.WriteLine("The complete data of the selected value is: ", args.ItemData); + } + +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/selection/preselect-value-index.razor b/blazor/multicolumn-combobox/code-snippet/selection/preselect-value-index.razor new file mode 100644 index 0000000000..2cbd468233 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/preselect-value-index.razor @@ -0,0 +1,33 @@ + +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private int? ComboIndex { get; set; } = 2; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + new Product { Name = "Keyboard", Price = 39.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.1 }, + new Product { Name = "Mouse", Price = 19.99m, Availability = "Out of Stock", Category = "Accessories", Rating = 4.3 }, + }; + return base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/selection/preselect-value.razor b/blazor/multicolumn-combobox/code-snippet/selection/preselect-value.razor new file mode 100644 index 0000000000..3d7241554d --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/preselect-value.razor @@ -0,0 +1,32 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + + + + +@code { + public string comboBoxValue { get; set; } + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + protected override async Task OnInitializedAsync() + { + comboBoxValue = "Cricket"; + } +} diff --git a/blazor/multicolumn-combobox/code-snippet/selection/prevent-reload.razor b/blazor/multicolumn-combobox/code-snippet/selection/prevent-reload.razor new file mode 100644 index 0000000000..7e44165f77 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/prevent-reload.razor @@ -0,0 +1,40 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + +
+
+ + + +
+
+ Submit +
+
+ +@code { + + private Dictionary TypeChange = new Dictionary() + { + { "type", "button"} + }; + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + +} diff --git a/blazor/multicolumn-combobox/code-snippet/selection/programmatically-clear-value.razor b/blazor/multicolumn-combobox/code-snippet/selection/programmatically-clear-value.razor new file mode 100644 index 0000000000..70f869a209 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/programmatically-clear-value.razor @@ -0,0 +1,42 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + + +
+ + +
+ +
+ +
+ + +@code { + public string comboBoxValue { get; set; } + + SfMultiColumnComboBox multicolumnObj; + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public void CrearValue() + { + multicolumnObj.ClearAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/selection/trigger-change-event.razor b/blazor/multicolumn-combobox/code-snippet/selection/trigger-change-event.razor new file mode 100644 index 0000000000..6c64827a4b --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/trigger-change-event.razor @@ -0,0 +1,41 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + +
+ + +
+ +@code { + public string comboBoxValue { get; set; } + + SfMultiColumnComboBox multicolumnObj; + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public void onCreate() + { + var args = new Syncfusion.Blazor.MultiColumnComboBox.ValueChangeEventArgs() { Value = "Rugby", ItemData = new Games() { ID = "Game8", Game = "Rugby", Category = "Outdoor" } }; + this.multicolumnObj.ValueChange.InvokeAsync(args); + } + public void ChangeCountry(ValueChangeEventArgs args) + { + Console.WriteLine("Value has been changed!!"); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/selection/valuechange-event.razor b/blazor/multicolumn-combobox/code-snippet/selection/valuechange-event.razor new file mode 100644 index 0000000000..e674dd7dc1 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/valuechange-event.razor @@ -0,0 +1,32 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Inputs + + + + +@code { + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } // New field + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public void OnValueChange(ValueChangeEventArgs args) + { + Console.WriteLine("ValueChange event has been triggered !!"); + } + +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/selection/valueselect-event.razor b/blazor/multicolumn-combobox/code-snippet/selection/valueselect-event.razor new file mode 100644 index 0000000000..845d061216 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/selection/valueselect-event.razor @@ -0,0 +1,34 @@ +@using Syncfusion.Blazor.MultiColumnComboBox +@using Syncfusion.Blazor.Buttons + + + + + +@code { + public string comboBoxValue { get; set; } + + public class Games + { + public string ID { get; set; } + public string Game { get; set; } + public string Category { get; set; } + } + List LocalData = new List { + new Games() { ID= "Game1", Game= "American Football", Category= "Outdoor" }, + new Games() { ID= "Game2", Game= "Badminton", Category= "Indoor" }, + new Games() { ID= "Game3", Game= "Basketball", Category= "Outdoor" }, + new Games() { ID= "Game4", Game= "Cricket", Category= "Outdoor" }, + new Games() { ID= "Game5", Game= "Football", Category= "Outdoor" }, + new Games() { ID= "Game6", Game= "Golf", Category= "Outdoor" }, + new Games() { ID= "Game7", Game= "Hockey", Category= "Outdoor" }, + new Games() { ID= "Game8", Game= "Rugby", Category= "Outdoor" }, + new Games() { ID= "Game9", Game= "Snooker", Category= "Indoor" } + }; + + public void SelectCountry(ValueSelectEventArgs args) + { + Console.WriteLine("Select event has been triggered !!"); + } + +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/value-binding/bind-value.razor b/blazor/multicolumn-combobox/code-snippet/value-binding/bind-value.razor new file mode 100644 index 0000000000..bcfc5414f3 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/value-binding/bind-value.razor @@ -0,0 +1,44 @@ +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + new Product { Name = "Keyboard", Price = 39.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.1 }, + new Product { Name = "Mouse", Price = 19.99m, Availability = "Out of Stock", Category = "Accessories", Rating = 4.3 }, + new Product { Name = "Printer", Price = 89.99m, Availability = "In Stock", Category = "Office Supplies", Rating = 4.2 }, + new Product { Name = "Camera", Price = 499.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.7 }, + new Product { Name = "Speakers", Price = 149.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.5 }, + new Product { Name = "Router", Price = 79.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.4 }, + new Product { Name = "External Hard Drive", Price = 59.99m, Availability = "In Stock", Category = "Storage", Rating = 4.6 }, + new Product { Name = "USB Flash Drive", Price = 9.99m, Availability = "In Stock", Category = "Storage", Rating = 4.2 }, + new Product { Name = "Webcam", Price = 29.99m, Availability = "Limited Stock", Category = "Accessories", Rating = 4.1 }, + new Product { Name = "Smart TV", Price = 799.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.8 }, + new Product { Name = "Projector", Price = 299.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "VR Headset", Price = 349.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.7 }, + new Product { Name = "Drone", Price = 599.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + new Product { Name = "Fitness Tracker", Price = 99.99m, Availability = "In Stock", Category = "Wearables", Rating = 4.3 } + }; + return base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/value-binding/index-value.razor b/blazor/multicolumn-combobox/code-snippet/value-binding/index-value.razor new file mode 100644 index 0000000000..2cbd468233 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/value-binding/index-value.razor @@ -0,0 +1,33 @@ + +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private int? ComboIndex { get; set; } = 2; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + new Product { Name = "Keyboard", Price = 39.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.1 }, + new Product { Name = "Mouse", Price = 19.99m, Availability = "Out of Stock", Category = "Accessories", Rating = 4.3 }, + }; + return base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/value-binding/object-binding.razor b/blazor/multicolumn-combobox/code-snippet/value-binding/object-binding.razor new file mode 100644 index 0000000000..fee26ee2a3 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/value-binding/object-binding.razor @@ -0,0 +1,44 @@ +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private Product Value { get; set; } = new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + new Product { Name = "Keyboard", Price = 39.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.1 }, + new Product { Name = "Mouse", Price = 19.99m, Availability = "Out of Stock", Category = "Accessories", Rating = 4.3 }, + new Product { Name = "Printer", Price = 89.99m, Availability = "In Stock", Category = "Office Supplies", Rating = 4.2 }, + new Product { Name = "Camera", Price = 499.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.7 }, + new Product { Name = "Speakers", Price = 149.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.5 }, + new Product { Name = "Router", Price = 79.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.4 }, + new Product { Name = "External Hard Drive", Price = 59.99m, Availability = "In Stock", Category = "Storage", Rating = 4.6 }, + new Product { Name = "USB Flash Drive", Price = 9.99m, Availability = "In Stock", Category = "Storage", Rating = 4.2 }, + new Product { Name = "Webcam", Price = 29.99m, Availability = "Limited Stock", Category = "Accessories", Rating = 4.1 }, + new Product { Name = "Smart TV", Price = 799.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.8 }, + new Product { Name = "Projector", Price = 299.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "VR Headset", Price = 349.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.7 }, + new Product { Name = "Drone", Price = 599.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + new Product { Name = "Fitness Tracker", Price = 99.99m, Availability = "In Stock", Category = "Wearables", Rating = 4.3 } + }; + return base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/code-snippet/value-binding/show-hide-clear-button.razor b/blazor/multicolumn-combobox/code-snippet/value-binding/show-hide-clear-button.razor new file mode 100644 index 0000000000..9f3e5db466 --- /dev/null +++ b/blazor/multicolumn-combobox/code-snippet/value-binding/show-hide-clear-button.razor @@ -0,0 +1,31 @@ +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + + }; + return base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/custom-value.md b/blazor/multicolumn-combobox/custom-value.md new file mode 100644 index 0000000000..f9f77b9456 --- /dev/null +++ b/blazor/multicolumn-combobox/custom-value.md @@ -0,0 +1,53 @@ +--- +layout: post +title: Adding Custom value to the Blazor MultiColumn ComboBox Component | Syncfusion +description: Checkout and learn here all about adding custom value in Syncfusion Blazor MultiColumn ComboBox component and much more. +platform: Blazor +control: MultiColumn ComboBox +documentation: ug +--- + +# Adding Custom Value to Blazor MultiColumn ComboBox Component + +You can include custom values in the MultiColumn ComboBox component. If the entered character(s) are not found in the list, a button will appear in the popup menu. Clicking this button will add the custom character(s) to the existing list as a new item. By default, the [AllowCustom](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_AllowCustom) property is set to `true`. + +**[Index.razor]** + +{% tabs %} +{% highlight razor %} + + +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private string Value { get; set; } = "Smartphone"; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + }; + return base.OnInitializedAsync(); + } +} +{% endhighlight razor %} +{% endtabs %} + + +![Blazor MultiColumn ComboBox with custom value](./images/blazor-multicolumn-custom-value.gif) \ No newline at end of file diff --git a/blazor/multicolumn-combobox/data-binding.md b/blazor/multicolumn-combobox/data-binding.md new file mode 100644 index 0000000000..4ce209be1b --- /dev/null +++ b/blazor/multicolumn-combobox/data-binding.md @@ -0,0 +1,385 @@ +--- +layout: post +title: Data Binding in Blazor MultiColumn ComboBox Component | Syncfusion +description: Checkout and learn here all about Data Binding in Syncfusion Blazor MultiColumn ComboBox component and much more. +platform: Blazor +control: MultiColumn ComboBox +documentation: ug +--- + +# Data Binding in Blazor MultiColumn ComboBox Component + +The MultiColumn ComboBox can retrieve data from either local data sources or remote data services. To connect local data, use the [DataSource](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_DataSource) property. For remote data binding, utilize the [DataManager](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html). + +* **TItem** - Specifies the type of the datasource of the MultiColumn ComboBox component. + +## Binding local data + +The MultiColumn ComboBox loads the data from local data sources through the [DataSource](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_DataSource) property. It supports the data type of `Array of primitive type`, `Array of object`, `List of primitive type`,`List of object`, `Observable Collection`, `ExpandoObject`, `DynamicObject`. + +{% highlight cshtml %} + +{% include_relative code-snippet/data-binding/local-data-binding.razor %} + +{% endhighlight %} + +![Blazor ComboBox with local data binding](./images/data-binding/blazor_combobox_local-binding.png) + +## Index value binding + +Index value binding can be accomplished with the `bind-Index` attribute, which supports both integer and nullable integer types. This attribute allows you to bind values according to their corresponding index. + +```cshtml + +@using Syncfusion.Blazor.MultiColumnComboBox + + + +@code { + + public class Product + { + public string Name { get; set; } + public decimal Price { get; set; } + public string Availability { get; set; } + public string Category { get; set; } + public double Rating { get; set; } + } + private List Products = new List(); + private int? ComboIndex { get; set; } = 2; + protected override Task OnInitializedAsync() + { + Products = new List + { + new Product { Name = "Laptop", Price = 999.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.5 }, + new Product { Name = "Smartphone", Price = 599.99m, Availability = "Out of Stock", Category = "Electronics", Rating = 4.3 }, + new Product { Name = "Tablet", Price = 299.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.2 }, + new Product { Name = "Headphones", Price = 49.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.0 }, + new Product { Name = "Smartwatch", Price = 199.99m, Availability = "Limited Stock", Category = "Wearables", Rating = 4.4 }, + new Product { Name = "Monitor", Price = 129.99m, Availability = "In Stock", Category = "Electronics", Rating = 4.6 }, + new Product { Name = "Keyboard", Price = 39.99m, Availability = "In Stock", Category = "Accessories", Rating = 4.1 }, + new Product { Name = "Mouse", Price = 19.99m, Availability = "Out of Stock", Category = "Accessories", Rating = 4.3 }, + }; + return base.OnInitializedAsync(); + } +} +``` + + + +### Expando object binding + +Bind the [ExpandoObject](https://learn.microsoft.com/en-us/dotnet/api/system.dynamic.expandoobject?view=net-5.0) data to the MultiColumn ComboBox component. In the following example, the `ExpandoObject` is bound to the collection of vehicles data. + +{% highlight cshtml %} + +{% include_relative code-snippet/data-binding/expando-object-binding.razor %} + +{% endhighlight %} + +![Blazor ComboBox with Expando object binding](./images/data-binding/blazor_combobox_expando-object-binding.png) + + + +### Dynamic object binding + +Bind the [DynamicObject](https://learn.microsoft.com/en-us/dotnet/api/system.dynamic.dynamicobject?view=net-5.0) data to the MultiColumn ComboBox component. In the following example, the `DynamicObject` is bound to the collection of customer data. + +{% highlight cshtml %} + +{% include_relative code-snippet/data-binding/dynamic-object-binding.razor %} + +{% endhighlight %} + +![Blazor ComboBox with Dynamic object binding](./images/data-binding/blazor_combobox_dynamic-data-binding.png) + +### ValueTuple data binding + +Bind the [ValueTuple](https://learn.microsoft.com/en-us/dotnet/api/system.valuetuple-2?view=net-5.0) data to the MultiColumn ComboBox component. The following code helps you to get a string value from the enumeration data by using `ValueTuple` + +{% highlight cshtml %} + +{% include_relative code-snippet/data-binding/value-tuple-data-binding.razor %} + +{% endhighlight %} + +![Blazor ComboBox with ValueTuple data binding](./images/data-binding/blazor_combobox_value-tuple-data-binding.png) + +## Binding remote data + +The MultiColumn ComboBox loads the data from remote data services through the [DataSource](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_DataSource) property. + +The MultiColumn ComboBox supports the retrieval of data from the remote data services with the help of the [DataManager](https://blazor.syncfusion.com/documentation/data/getting-started) control. The [Query](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DropDowns.SfDropDownBase-1.html#Syncfusion_Blazor_DropDowns_SfDropDownBase_1_Query) property is used to fetch data from the database and bind it to the MultiColumn ComboBox. + +* [DataManager.Url](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_Url) - Defines the service endpoint to fetch data. +* [DataManager.Adaptor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_Adaptor) - Defines the adaptor option. By default, the [ODataAdaptor](https://blazor.syncfusion.com/documentation/data/adaptors#odata-adaptor) is used for remote binding. The adaptor is responsible for processing responses and requests from or to the service endpoint. +* [Syncfusion.Blazor.Data](https://www.nuget.org/packages/Syncfusion.Blazor.Data/) package provides some predefined adaptors that are designed to interact with particular service endpoints. + +### OnActionBegin event + +The [OnActionBegin](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_OnActionBegin) event triggers before fetching data from the remote server. + +{% highlight cshtml %} + +{% include_relative code-snippet/data-binding/action-begin.razor %} + +{% endhighlight %} + + + +### OnActionFailure event + +The [OnActionFailure](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_OnActionFailure) event triggers when the data fetch request from the remote server fails. + +{% highlight cshtml %} + +{% include_relative code-snippet/data-binding/action-failure.razor %} + +{% endhighlight %} + +### OData v4 services + +The [OData v4 Adaptor](https://blazor.syncfusion.com/documentation/data/adaptors#odatav4-adaptor) provides the ability to consume and manipulate data from OData v4 services. The following sample displays the first six customer details from `Customers` table of the `Northwind` Data Service. + +{% highlight cshtml %} + +{% include_relative code-snippet/data-binding/odata-v4-services.razor %} + +{% endhighlight %} + +![Blazor ComboBox with OData v4 Adaptor](./images/data-binding/blazor_combobox_odata-v4-services.png) + +### Web API adaptor + +The [Web API Adaptor](https://blazor.syncfusion.com/documentation/data/adaptors#web-api-adaptor) is used to interact with Web API created under OData standards. The `WebApiAdaptor` is extended from the [ODataAdaptor](https://blazor.syncfusion.com/documentation/data/adaptors#odata-adaptor). Hence to use the `WebApiAdaptor`, the endpoint should understand the OData formatted queries sent along with the request. + +{% highlight cshtml %} + +{% include_relative code-snippet/data-binding/web-api-adaptor.razor %} + +{% endhighlight %} + +![Blazor ComboBox with Web API Adaptor](./images/data-binding/blazor_combobox_web-api-adaptor.png) + + + +### Offline mode + +To avoid post back for every action, set the MultiColumn ComboBox to load all data on initialization and make the actions process on the client-side. To enable this behavior, use the `Offline` property of `DataManager`. + +The following example is for remote data binding and enabled offline mode. + +{% highlight cshtml %} + +{% include_relative code-snippet/data-binding/offline-mode.razor %} + +{% endhighlight %} + + +### Entity Framework + +Follow these steps to consume data from the [Entity Framework](https://blazor.syncfusion.com/documentation/common/data-binding/bind-entity-framework) in the MultiColumn ComboBox component. + +#### Create DBContext class + +The first step is to create a DBContext class called `OrderContext` to connect to a Microsoft SQL Server database. + +```csharp +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using EFDropDown.Shared.Models; + +namespace EFDropDown.Shared.DataAccess +{ + public class OrderContext : DbContext + { + public virtual DbSet Orders { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + if (!optionsBuilder.IsConfigured) + { + optionsBuilder.UseSqlServer(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=D:\Blazor\DropDownList\EFDropDown\Shared\App_Data\NORTHWND.MDF;Integrated Security=True;Connect Timeout=30"); + } + } + } +} +``` + +#### Create data access layer to perform data operation + +Now, create a class named `OrderDataAccessLayer`, which act as data access layer for retrieving the records from the database table. + +```csharp +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using EFDropDown.Shared.Models; + +namespace EFDropDown.Shared.DataAccess +{ + public class OrderDataAccessLayer + { + OrderContext db = new OrderContext(); + + //To Get all Orders details + public DbSet GetAllOrders() + { + try + { + return db.Orders; + } + catch + { + throw; + } + } + } +} +``` + +#### Creating web API controller + + A Web API Controller has to be created, which allows the MultiColumn ComboBox to directly consume data from the Entity Framework. + +```csharp +using EFDropDown.Shared.DataAccess; +using EFDropDown.Shared.Models; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Web; +using Microsoft.AspNetCore.Http; + +namespace EFDropDown.Controllers +{ + [Route("api/[controller]")] + [ApiController] + //TreeGrid + public class DefaultController : ControllerBase + { + OrderDataAccessLayer db = new OrderDataAccessLayer(); + [HttpGet] + public object Get() + { + IQueryable data = db.GetAllOrders().AsQueryable(); + var count = data.Count(); + var queryString = Request.Query; + if (queryString.Keys.Contains("$inlinecount")) + { + StringValues Skip; + StringValues Take; + int skip = (queryString.TryGetValue("$skip", out Skip)) ? Convert.ToInt32(Skip[0]) : 0; + int top = (queryString.TryGetValue("$top", out Take)) ? Convert.ToInt32(Take[0]) : data.Count(); + return new { Items = data.Skip(skip).Take(top), Count = count }; + } + else + { + return data; + } + } + } +} +``` + +### Configure MultiColumn ComboBox component using Web API adaptor + +Now, configure the MultiColumn ComboBox using the [SfDataManager](https://blazor.syncfusion.com/documentation/data/getting-started) to interact with the created Web API and consume the data appropriately. To interact with web API, use the [WebApiAdaptor](https://blazor.syncfusion.com/documentation/data/adaptors#web-api-adaptor). + +{% highlight cshtml %} + +{% include_relative code-snippet/data-binding/-comboboxwith-web-api-adaptor.razor %} + +{% endhighlight %} + + diff --git a/blazor/multicolumn-combobox/filtering.md b/blazor/multicolumn-combobox/filtering.md new file mode 100644 index 0000000000..4c9b30537a --- /dev/null +++ b/blazor/multicolumn-combobox/filtering.md @@ -0,0 +1,135 @@ +--- +layout: post +title: Filtering in Blazor MultiColumn ComboBox Component | Syncfusion +description: Checkout and learn here all about Filtering in the Syncfusion Blazor MultiColumn ComboBox component and much more. +platform: Blazor +control: MultiColumn ComboBox +documentation: ug +--- + +# Filtering in Blazor MultiColumn ComboBox Component + +The MultiColumn ComboBox offers built-in functionality for filtering data items when the [AllowFiltering](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_AllowFiltering) option is enabled. The filtering action starts as soon as you begin typing in the search box. By default, the AllowFiltering property is set to `false`. + +## Local data + +The following code demonstrates the filtering functionality with local data in the MultiColumn ComboBox component. + +{% highlight cshtml %} + +{% include_relative code-snippet/filtering/local-data.razor %} + +{% endhighlight %} + +![Blazor MultiColumn ComboBox with local data filtering](./images/filtering/blazor_combobox_local-data.png) + +## Remote data + +For remote data, every key press and filter action request is processed on the server side. + +The following code illustrates the filtering capabilities using the [ODataAdaptor](https://blazor.syncfusion.com/documentation/data/adaptors#odata-adaptor) in the MultiColumn ComboBox component, utilizing the [Query](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.Query.html) property. + +{% highlight cshtml %} + +{% include_relative code-snippet/filtering/remote-data.razor %} + +{% endhighlight %} + +## Filter type + +You can use [FilterType](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_FilterType) property to specify on which filter type needed to be considered on the search action of the component. The available `FilterType` and its supported data types are: + +FilterType | Description +------------ | ------------- + [StartsWith](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.FilterType.html#Syncfusion_Blazor_MultiColumnComboBox_FilterType_StartsWith) | Checks whether a value begins with the specified value. + [EndsWith](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.FilterType.html#Syncfusion_Blazor_MultiColumnComboBox_FilterType_EndsWith) | Checks whether a value ends with specified value. + [Contains](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.FilterType.html#Syncfusion_Blazor_MultiColumnComboBox_FilterType_Contains) | Checks whether a value contained with specified value. + +In the following example, `EndsWith` filter type has been mapped to the `FilterType` property. + +{% highlight cshtml %} + +{% include_relative code-snippet/filtering/filter-type.razor %} + +{% endhighlight %} + +![Blazor MultiColumn ComboBox with Filter Type](./images/filtering/blazor_combobox_filter-type.png) + +## Minimum filter length + +When filtering list items, you can specify a character count limit to trigger a remote request and retrieve filtered data for the DropDownList. This can be achieved through manual validation using the [Filtering event arguments](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.FilteringEventArgs.html) within the [Filtering](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_Filtering) event handler. + +In the following example, the remote request does not fetch the search data until the search key contains three characters. + +{% highlight cshtml %} + +{% include_relative code-snippet/filtering/minimum-filter-length.razor %} + +{% endhighlight %} + +![Blazor MultiColumn ComboBox with Minimum filter length](./images/filtering/blazor_combobox_minimum-filter-length.gif) + + + + + + + +## Prevent popup opening when filtering + +To prevent the MultiColumn ComboBox dropdown from opening when filtering is applied, you can use the [PopupOpeningEventArgs.Cancel](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.PopupOpeningEventArgs.html#Syncfusion_Blazor_MultiColumnComboBox_PopupOpeningEventArgs_Cancel) argument in the [PopupOpeningEventArgs](hhttps://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.PopupOpeningEventArgs.html#properties). The `PopupOpeningEventArgs.Cancel` argument is a boolean value that can be set to true to cancel the dropdown opening, or false to allow the dropdown to open. + +In the following example, the isTyped flag is used to track whether the filtering action is taking place. The `OnFiltering` method sets the flag to true when the filtering action starts, and the `OnBeforeOpen` method cancels the dropdown opening if the flag is set to true. Finally, the `OnBeforeOpen` method resets the flag to false to prepare for the next filtering action. + +> This will prevent the MultiColumn ComboBox dropdown from opening when filtering is applied, while still allowing the user to filter the items using the input field in the MultiColumn ComboBox. + +{% highlight cshtml %} + +{% include_relative code-snippet/filtering/prevent-popupopen-in-filtering.razor %} + +{% endhighlight %} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/images/blazor-multicolumn-custom-value.gif b/blazor/multicolumn-combobox/images/blazor-multicolumn-custom-value.gif new file mode 100644 index 0000000000000000000000000000000000000000..0662c9f82bc2e0b8be597065d20054592b177ede GIT binary patch literal 36171 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 z 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 literal 0 HcmV?d00001 diff --git a/blazor/multicolumn-combobox/images/data-binding/blazor_combobox_dynamic-data-binding.png b/blazor/multicolumn-combobox/images/data-binding/blazor_combobox_dynamic-data-binding.png new file mode 100644 index 0000000000000000000000000000000000000000..85593168d38e48c6db8874fb4226c6e27701cf59 GIT binary patch literal 2494 zcmeH}X;f3!8itb)Nf;AAK@cH;fC2$5(+Ox26hx&Mu&rfMpehl=5D5^15yPOU6mX!T za2TppYekevk;oL3s9->-#4v>j7?~*n1Vf;Q+qLfRyYAn6|D5%#^X>h9dwpx|_uUtL z4|r*)8mPixFpYhCJr2TPa4N)cXl3XdkR?-x!Bo!e^Kkz@5kA@15Z$-O2sQKklA2yw zS?ealS6J7N^b5W&ozZxA>qQ88A}2Bjmcl{s2%+EQdO%glgu$8| z87?t=yluZJnZuzcXkc+fL+01H@M9-kgv`a=4RDz4wVst_|)H`XWzD@n>yKnmer?2+mu&=IstW?!p6y=0}B z?KK{4e;N~1SSd6ihngc;JYC5Z**59-f(Kv_-pEo-%0|7hw8{;t649{!_sF?)qq*24 zBYh{grx61HX^7Tr;j6WwFc9x}1mR7FwNzMc4DEV;{%ALQV!@S|60hc=E(L=K4cQ7H z0Pyl4IX@ZF!9D&Kck)2h@7{nN_fVt{hrByQ*TkRUiXYP!I2D#-;0PaNV0!4=i)%}S zaV-5f05$Pjm!MdFf}+FSPs(Q}x8Zon_C3eI338SB#CfcZHCaZ4~mKLaj^vD)021iD+GDcsI@21KvcCs#0+o%PiN;>h_FcsNt=DQ*FNA=G=p@O6z;_=5q zLV$*;>v&D&7!oZxmR?ZNS02C>cpJO5D)q})ua8y6*`HaN52zK}<*C!e(t_$q{wO&ufwuqs#_C;kixQWn<#*Cil3Lz3E$PBPXzUX2mIqLi zg=Uv|N%y+XDN+n>Lb*TraspS~+gx6}{5kvsS3)>*)Ana?Eb~`l5uSNEGTTXGLP`28 zNH+JLO&Ls333fwT!q4b5f#)6_7H;UN>ZDImf4ObntI_m~ULPq63okD05O0`FO(22X zjw#~yPW-9dD9!1vx`o8>fx3es(RlsJ$PV-6Mu2bpOGpwencT zV#mdT!#{NO zIE!OK7@u3(Xc$UPeLf+_UOlFcoQW-UkMt8>YGx(gp6a0HTRKS7Bz;le5q-AnUA}fS z%8g)iWzJg{)y%5!856hlsYzpRi;R-PaUeBxdGU~H6}riwMmPSU8<-)I4M>YDQ+iO+ zfvYV7ul`Rw)?(bNsSt|l}kMjkE=)xn#`sd5gkTL)tieN z<+!yrhCzRtgEZGlk#ubQ#e2IjFU0h-wPBb<`{mK=cTok#ZMU|_-5t-0! z9{hM~S!=(B=+we!cUEiCe0Uu*x_=Qc2dq-Q93%t9C6j*dC}fGb3igK9g?t_SSVie} zhTr0LIO3k(njKL^|A`&B1^^`ag6CJ+WUql9vnio3*Q~ZZpAkK>?7A>?Oaf9SKJr}( zblx&ey$$)%)k8Y|#gI=6mU0j1u#ry22~RXp)D_Y7a)}|sCwhj*7W}i{_o9jkwmig(EvhUIz#U=*gnq#9%Z{iQ~w5a C_bP+{ literal 0 HcmV?d00001 diff --git a/blazor/multicolumn-combobox/images/data-binding/blazor_combobox_expando-object-binding.png b/blazor/multicolumn-combobox/images/data-binding/blazor_combobox_expando-object-binding.png new file mode 100644 index 0000000000000000000000000000000000000000..989b830647ef279201bb8fd1bab5f111c8100489 GIT binary patch literal 24326 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�Zo;PA<&%d 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 F`(N`Mz>oj{ literal 0 HcmV?d00001 diff --git a/blazor/multicolumn-combobox/images/data-binding/blazor_combobox_web-api-adaptor.png b/blazor/multicolumn-combobox/images/data-binding/blazor_combobox_web-api-adaptor.png new file mode 100644 index 0000000000000000000000000000000000000000..615585596e58f40ad54463f1d25dc6f7e995eee8 GIT binary patch literal 25747 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 SCg5Wun=DMNP4bQ0!v6)?>?yDS literal 0 HcmV?d00001 diff --git a/blazor/multicolumn-combobox/images/filtering/blazor_combobox_filter-type.png b/blazor/multicolumn-combobox/images/filtering/blazor_combobox_filter-type.png new file mode 100644 index 0000000000000000000000000000000000000000..6232ca7c0658239266e835c5d68e5a4cbeee7343 GIT binary patch literal 10516 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

rBm~1yXI96`=fCPKRvB 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 MX3(>RXI$?5FWb!F@Bjb+ literal 0 HcmV?d00001 diff --git a/blazor/multicolumn-combobox/images/filtering/blazor_combobox_local-data.png b/blazor/multicolumn-combobox/images/filtering/blazor_combobox_local-data.png new file mode 100644 index 0000000000000000000000000000000000000000..bad98b9e8d6f23ca1c83ce2660a3ae735ad0ecac GIT binary patch literal 9868 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 a;@7GAKl{i3^<0X7c8z~|@qhY*#J>RzL=GDO literal 0 HcmV?d00001 diff --git a/blazor/multicolumn-combobox/images/placeholder-and-floatlabel/blazor_combobox_placeholder-with-mandatory.png b/blazor/multicolumn-combobox/images/placeholder-and-floatlabel/blazor_combobox_placeholder-with-mandatory.png new file mode 100644 index 0000000000000000000000000000000000000000..9a110052872b7d1e159c3493cef816d90885bbd3 GIT binary patch literal 3335 zcmeHK{Xdg?ADV#<(30ewH>EAFm#-R{X^le8_cyuI2@2FK)?GhaWuejxEl)7zKBaap-{3yI zb8_PhI5+?NOdq3{+-q;x>1e74QPG4Vo|dzMJ1)5Ifg&i+8FNRz7(kcg#e`ssW*y2tS4P{sKQsFc6~&%LANLG_RRJk;QQ)=jAc@ zx0b-F3Sdtqh=-roTR9w}&Q|#wY;`6&va9-_JVxa}ryM}#)P7Bvr`>)7c})A%!EcNz z!FclVs;hERP^7Nn{{cCuAriOAYZPwqqq~ZTWd++Z!ArQBu40}-CySJ<_USSzEpF+9 z`E=hIWLbtdRI>1yCS0R3i{O`AleKTHXaieBK1WE~Q&ov0IZ@seMzd&s-sK~@Iug0V z?3ZUno>(x1f@k^S$+Q>W-dPn@w)=Y5UpGnpR+HdMvWvw|OMUf0E{?^@9*n%X8%N`s zKN%q=OjKb@x#W=ny-R5cGZm3_usxQ0y>9}EM;X<9Dm&<4)*i?9nREaQPoSC{*4*wB zsVIEda@Q~sC{G&Xna)NTk(6#PH$EKK0eISaLg`t(hcA6;f^?5PeyI->QKaH*v*Mr+ zmn6!Kh722^a52S*ctw&ueLhyTu-P;e4gf6f`6p%~%@HSDk{jJpqXFs@r?Tdi9h2hw zrc-%%-e|9*@eqZ3LSy#9s2ral#~-_Lo*3oR{%ZFf9p1?LILV%v_i7)^CAOZsF>T|X zB3Kh81Q^CBDFLpihx4%~fKnKXF&yI|49A=+BDXO^FlL6xz^os2Lo#a0s7h^3$C0|b zAlBec>y=~rZ2_`X!L&@D8bN9e8JDem_L=R>ekpv%$xsasKXFu=V%6MS^eMmVKO0zZIC8$?8-8Dyia;sLa4|M+;OLR)~@C zqcY65Q*gS2ebc8YUr*x6VFzE=3^e`#!xHY#ant>~*zC>T&Wm$p`|LNYvw|+70~O&G zsM)*j`$<1i3<|GnN5Iw}4z26(W+UK>`kUdSYg-oC-F|-U!U-=y+Xvuwhl;1-My4VKB`SBalK1Q;Nwy(gxxAz3)FF{S#~PlF51jKQT$RF$3gC1U1)IF z9^r&kN1Rw+e4CAk%VMjidpAAVYm(p=PUN%JQRnLle9ek^N11)~^j`-x?r_qq_@||Z zT1E>>Pm^nOJ|}|CG~M!pGhA7H8i!a_vodIXOjTd)^tx_$rcAiUR&Wai z-_XH?X#TOqD+c4IT5FAv?(D^nrCE!R?l;nsfQqF zght%hai{;OYy`cMQo6*7E*ug~FpeP5XD4Qq9aV}Bl>6RG6*d{oj$+e-+xrPGqVQ6k z&FoqB%?n+dRm+s)8aliemKw#8oJJ-m@Ez)h@zjQqwq4I^lZ-Ck=t1LT+nPF(DzUnoX#uZi?L7-Q4k%Kfm(cSUtwP_WWyL zzmA0d9v!S6ALADO+(%rpkX(1;dc1gFV%s3?*?p^Wg~4Q+-VOhdvU^trx%`I{$bhDq z+{ob#jcT~#pc9^_NzJ$0I-mfq0Dm~NvF6>)98cMP-W?)Uu+|A;UK2?0+2n$CZ(fPV z=|>ST23xJidBNTfo+TEa{%|^rv{`djlcZ@g8I+ zJk(Y^$)9v(0Gbm6tc2TeZD`EZ8#;m~Tho?(2PI!@;5;#tiAn8HmO3>j%}s?Y3atN1 zaNl8mgGz4jdk2f0RIzNHsmU&Fvs|xZe6J&aguP<=?|&biw+zfabJ7 z6_seiI1YbyGw42B?wPDGFmUQ#^|mcCfb(yJ+!TAz=PC%vGnYLwS~%$H)=M#8WP~oS z=_MSmsqw?0=QfVe9*w$Li_U2Ikl{xY_zs6}=Rkvr<#!jB(?vt@6Ug1-k>Um|K(pl1 zR;qDkMW=82f^(hjwfs2R>c3pwuJl7FPvi=>YcC+7CzHZ1ci~ECk7})|iiGWsw?SFT z0HyS0&5F*W$XUwI(^9=LHlwxS7M#2qVd9dBsQIRjoBvhEkIBqQ>Ei)xW&Rd|01vbS zL%?!18!LAqdeptYq`d|7Uo;Vj;I6Gcik2IH?oZ1G^s!16VAoucqgRCfz2&3`Xre4V zAop!^)5o}Za^rKcGN8|1`vBp+<)Y<4scaYWDvt4pTIRDo12{mAa9ag)P0m?J@9>>1bgf% zOl|N@i(eYZCju>L$L7}-{UAkZ_53U3OnZKvvXoSP{unSaR#7{234F;S&ub{ z9zi4kwAfz-(nTl_13+!%5Zc){@%Z!zCT3f>Zr6NSp@E9|CHmg+c8ZQss#@Faz+$V4 zr+*$Ud5~47Mzyt?Cm8N<_3&**ow9{kzC!O=Me14Qyys zBi`e{7&(J4>gkD@klcuwE9hai+GLFF6EkO<&+K*w;D=_;8Wf<|>RUkScQ7UJ!#~gf zoW7_Io?O`s0XMf80$}5!3_{&90eJDhlIW8(Z(M#G!e;Ho^Woge4gwB>N_h9~-TmYx zvmi=zMwKW~)MOVD1zV83zM|MicD1Vtf$yt1lXqtr0(nB6DPyoWUnC=$rg(j zfL#pkpbIGx7jD_0sm`M2SFQV z+0#AEKx2d8`jkvjyuY!R5Mx!LF!3vKdTwp6pzr){$Y_K9BFCRqT}TY!6C0OjvxeKp zYx{q>^$ux5h@oBdp0A&Bm@D{6_8>04ThG$TNQJ*CeRkK9g&*su5kxG_BL*ldHefjGh{}%PyJe;bs>(S@uemj%G{UD^?wM z*EqEvJ6$CI$uUWhz^Xf00lEH`79N?2;L$#_WNV(2F%xs<1bRZt;CmleRyDTH_ILg? zV@=+t!YW$)sI9GR><)2`foXCs?_TldZ(bqZgd` z*g z<_ddr`g1FVH?d-ig1&yfMfyFF(AEXN~W6EVr-Zwu#CDXwk91 zhIh5swU9Qqz8h?m7c%|m&1>UUc@k64DaH0ia;pO?5^3X~LbxtgDUOWVbVh}2pyqm9 zCcsTZ_QI;lcjm23qLae?{5Ko3b5G>;7Bw`-bMHj(i%F)PQ0vhlt49?~iSz?-4pmewP zl}q~9?T}p41Qj}kIqrEsrUsA(MhaEkVFyVQuJMV0VVzqS@j4O-l1=#sCU z>FPO8gl8w>(+@Oz4w^?)*V+pNP`ttq@A4iuqBDH{e8{7v!UG?};%hOUPjTba^dg-* zZ!m`$a!f1}gt1jP4*E04{UP_TaP;GaK7Qzrr(>$>%s++d8rus)4qi{DhqS_&K(~OX{0Afiu3>}3Cig(M%NaF~PQ3p)8=Dph8<(?=2z4;sIihJ|v-x9lEQ+{W-?F2Govp3HbF>@0is;nT zm1FjBq)Mr>*hH`U37M}`?404h?G3)*)42?l-JxNgd9`y9BiB-yt{ zaQUGO@g@JmIVz{Ku%X;h`;U`nvK2>@_h&EbFPCt$&@{rrF`eshhswgvppNyE@;S{t zWouG7o7>I4R9==~03vYa2hiBFUSY0KA-eAvQWd;(%M>_g^ciyhRE`_!)i9l!`b=@r z2z?v+qqz=G41)<_siXK(ZTvc@*D9|U>-H%92g1`mGwT}~I1QzkY5=^8{|%lw%e+cK z-zbu=1O$gfbpxY_``;Lf2-DXpZeQDyO58?wvH3KKAyRdnTYtKoB;W~KB?iWrBYx3yB)r405Mi625FL-X-z%fJlK3r#@ rz@WfS(7(q+e~GOA?@4ZkYa7Dgnqz)%ZdtEC2H=pZ7y6M)XxcvkC?C*5 literal 0 HcmV?d00001 diff --git a/blazor/multicolumn-combobox/images/selection/blazor_combobox_changing-selected-value.gif b/blazor/multicolumn-combobox/images/selection/blazor_combobox_changing-selected-value.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ed8691e4cee0a0551e3822726c97ff0b37e0baa GIT binary patch literal 19373 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 bQkwFVs7$3QSINp&y7HB+OyVXF5)c48#date literal 0 HcmV?d00001 diff --git a/blazor/multicolumn-combobox/images/selection/blazor_combobox_preselect-value-index.png b/blazor/multicolumn-combobox/images/selection/blazor_combobox_preselect-value-index.png new file mode 100644 index 0000000000000000000000000000000000000000..2057ba616b6c1bee001df880ac6d56d3b37e094b GIT binary patch literal 2274 zcmeHJ`%_YB7{*J676zu97}?p-w7g9vhN*cpZ$)Ei7rSU$rtRut9nrEfz;0q1T2@wu zXpCuPmKk0$#VwUB1JiB8zzD(A@`_echV3~tJG;N^On*SXoO#~woA13m^FGg#O~IHm2web=4(o3^Ql$+;QUJv`s7I zfO1}FnmuT~`jSzxkNK!&QqYB~uJ%eikZ|-kxZaWiI6}8}2Fhq2m1=4>hZG;%a3;sA zSFv^c7LhLQ?Dd6+AQPphZ`f<-{PYzq9f4@9y|Uj1(4C)VlHGt|GhF~BnPL%;7620F zVhV1PL4i9VonyXJ}TmfznwQU<3QU zRs6-UsX`CR(*-OZP1h3IRbSc3tfAN2^5cZjpr(f#>sjH}dRR138b*Srbb!34+>NMY*;qw=b)wQr(H}ws zM7Heue8>|{;|2nYee2J`d7?*R3G3i;7%c15dY72*O2c0Qr3#Ml!XGq5$hkEcoWuhI zp|w@>CKwtH`K$pv7}gPMQ6w+1AW7CVso&O9-Y8!{g5kUpJ9MVX7^LUJ#2LUXVXVhC zjs%GKX3&*6+XtTvGqP2(p+xFHz(LJ^`nCx;(VbKJ^|(Wy6mg%1+8Vx2Bu%t)632hP z>0BVMy}$C4A_^izWyvEP8~h23oc9PlVTB&PhqGHp!kqK+OJ?>A^JH)OS_KybA3tZ^ z?|V1-{!d;rv}Vb{K!Tl_+zhx=t3SiP|6E$QYgY2y86tk8m1H4%x=X(JNJQe4t@vf@ z4W35SaPlR+evC!74#%4|47+Q43$$aSpA{+OZk}oE&rgZ%p4+SrsI4MRZdsIj2jjgzh`{ag)|@P?TetAO%6ob0T9=!_ z`ySYWQ5Zw9c@a_nAhyM!y7e{3rP$QH%~diwn=?9fxk;U~=Ven|Qj9x;=)Bdt5JyRHFHV)(8a@#Zz3I{z2=VWk>fE44jMKa+}P)JsRtBX~*K+6w!{& z)EKFT1bHq!RN_^B#B%}`VNRqXe1WTJk4ts=1+F-ynT+$ut6j()yjVSe6RJ0LHFs04 ziO#=z2zlDnJkkUUs#13QWw%dkhgU0T@xBC{^l*B_xZeyhwY=NTt4B*>MIU~% zoPL1=T?r_6O!2p8r(fBz(vR7A!^F?ORALub&Ofc{kIxdd-bmNx&}X-Iw5Zc31It1Q z*-Z6Lc#IHaL)}7Xw|oecUj@sO-y3}5&A)wd@^Z9xNoMzfi|j`SI)$-eXN&I@&2yp& zJRdCoBG{JiAeNu@D1i4X0};XGIbQF!OtP466a8iUB#9}q=zbs19+F^XBfehm)>LR| z+beH&JWjO3-HOa5v?PyB!b<^0Z9?7-;7AgamWsR%L_xqa2Y92){wo)((ALS_;mcXF zrz6aIsPS&C$BH=TF!uG}z(TwCHuYU<*E`=L_XhQt5IFAJh@LR;?#>48$t%+5G$n~>DIZo^kH!9qCRYYag zJ@N~?>WPG}ipMV)n3N3Cu27*gsMY?#e&xPVNB;(FhoD;k literal 0 HcmV?d00001 diff --git a/blazor/multicolumn-combobox/images/selection/blazor_combobox_preselect-value.png b/blazor/multicolumn-combobox/images/selection/blazor_combobox_preselect-value.png new file mode 100644 index 0000000000000000000000000000000000000000..ffd8b6645822d288ff4008d0751c077997ef0125 GIT binary patch literal 2448 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 literal 0 HcmV?d00001 diff --git a/blazor/multicolumn-combobox/images/value-binding/blazor_combobox_show-hide-clear-button.png b/blazor/multicolumn-combobox/images/value-binding/blazor_combobox_show-hide-clear-button.png new file mode 100644 index 0000000000000000000000000000000000000000..8500993443e7c279d0cdb1eefc0d04a72829bf82 GIT binary patch literal 3116 zcmeHK>0eT58%85KQ)!Z8rl}Y-m8PSPyBK03)Qn4wGp?CTlxeBpsJUezE#po#Gc6`+ z+US&N818~VDVC;Yi<%oQq2_KRqM**9_v8D1c>jR;a(?IB&voDTdG7Q4uIoCfM?DB? zn{_usAP}`9hjBkbASwdz{yYE!udEIGuR|bPBu8-0KgFrc^gE~T5$o_Hc`XJ~R&l=q zCYZbSd-|p(mqY5#TW=UX5op~YX>g$5Kws#-Xxe(?65cFr*1*Pi64tcyyq~A8uk-u( zXKx1H1qKGbdlRtg?|DYv&HC)-8OtTFuEeZ)zkBI;v>(tg#M1cJH#<`9%fqX`Qa)kf z&gnFWiYheA8w+JfORGnrAj**5rHlc3r8K}`CV~g4f0%FrU~7p8xmBTQ0=%r78)=8P@xzj|JR#zYBz?oVycfI?V`Vyy+;4VnU{tx z%eq3B*Jd&G!o*WKT0v7YgvS+fweS&6r$@XFcRtoo{ma>Y#!&B2Szs64hy2r zTC>F!Xl%|0amJ$3BEkqNVg&(S4S0oucof4_f zN|;j;$eNfvJifI-hFw4D_HrqX>bJ%n4<4Q}Fy&I0&5^P-@fLBv_*`Gt+nbM5hj!=% zA+h-cVgRtDM%)_vm_W~KkWrT3m#oj;`8e+q#F4tiPd8E3obHVuAm|Dnx3n^*HSZX_ zXxWxZJbm;o3OnSMjLu_*>A|}I;?@g~;U+;1CvxK^1fP1cb}L3Ii(427MdtuwP@ zy_#88bP4LObe{(QXLk2Jar4&()uMJ&997vGnD|=7@Jh9~ebMPw5N5glQ!_)zR1Gf~ zh=Ptbp|4WHAfyyjCeeufJcnAw5na4hhY)do{5F^IrZ64VJk~orVkMqAz=+`9tXW&E zneDNE*UMf_=OxuuwvG9VPv*9c+e*j{gR8r5zx()V(LP#8mc~Y&jq8i)JpIR+DBsLJ zxzl#$cuwMn?`sD##JP~;SS^+mXZIC7t zisYG&(Kkge0~UOtqa!FrSs=SFW3uws2a-1GsD1k1O;vSH8SD&?mxZ;ac{~H|-sqC4 zyQ}gli;JNr>o99$((LiT{pXyg>dWdDdPb;*4m;Yut=)$mnun?z(*>3qPyHZ>goio( zqeic)WN-qd-F(|K#q(g))pVfDX;4q=d=^r>Bk;=KZ5&w~y!`ZhLbWK{XK53uJz?!T zt8_q}bJ4ze_JY4xZmmgmH;%>b_$x8IQXZek>wY$%+wvQD^se!pnd;&7(T99dwDRRb z29d|i28&2fIa;;1Ex~&KyGqsIU*qCNeHiBz?-5<;>vf$-8 z4dRld+1?Xfx#+t~lR#uu$H20cB&^E9j<*=uEnN6YMRgO(Tye=l9;B_8S0bruXiy`I}ng= zTl%w#H*TszcSYvWO!1&$e~-Om!w=IYNi3^DcS6ZTSfd`QVe8 z)ddT1ug0$w?<-8HrbTz+H4jm3O5yK0RHEeG3S)Zx%$t$BF;S~w);zzsUdA@P2TXlI zE@F?Lo{{jQKn(BYOG)^tVq5K~;}N8T$0hOAh&~Itd!qxd&H_=-|wQfo75F+g7&expr5*?&3d>#X0;u7l#6q^ejl>#xwEMx#~NI9qX^YHqKyDsX%+NCJTmxi@Y zcF7=Gp?W(HveJYZT=!4fq`_5AnA^&-t!Ha|I+f>jue0a{D4te5J~52&TuJcLMkOk_&6?G5Z0J5bLlDtF*snr1 z)&%8WxnOb5F#E||_!E>MxZqGoIm2)I1Zep*T5acND*{vBIp#Ft6>Fdohc!%Z8B^9 z@9npT!D2nXxSsDe;>^87JxcYxW^71*pnxg;OR}2^{N-C)8|7T@Z%!c^^8`u*Wax#3 zS}ta~e=#$v$lEPs3JB16{ + + ## Add mandatory indicator using placeholder + +The mandatory indicator `*` can be applied to the placeholder by targeting its CSS class `.e-float-text::after` using the `content` style. + +{% highlight cshtml %} + +{% include_relative code-snippet/placeholder-and-floatlabel/placeholder-with-mandatory.razor %} + +{% endhighlight %} + +![Blazor ComboBox with mandatory indicator placeholder](./images/placeholder-and-floatlabel/blazor_combobox_placeholder-with-mandatory.png) + +## FloatLabel + +Use the [FloatLabelType]() property to define how the floating label behaves in the DropDownList, allowing the `Placeholder` text to float above the TextBox. This functionality is relevant only when a `Placeholder` is present. The `FloatLabelType` depends on the `Placeholder` setting, with its default value being `Never`. + +The floating label supports the types of actions as follow. + +Type | Description +------------ | ------------- + [Auto](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Inputs.FloatLabelType.html#Syncfusion_Blazor_Inputs_FloatLabelType_Auto) | The floating label will float above the input after focusing, or entering a value in the input. + [Always](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Inputs.FloatLabelType.html#Syncfusion_Blazor_Inputs_FloatLabelType_Always) | The floating label will always float above the input. + [Never](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Inputs.FloatLabelType.html#Syncfusion_Blazor_Inputs_FloatLabelType_Never) | By default, never float the label in the input when the placeholder is available. + +The `FloatLabelType` as `Auto` is demonstrated in the following code sample. + +{% highlight cshtml %} + +{% include_relative code-snippet/placeholder-and-floatlabel/floatlabel.razor %} + +{% endhighlight %} + +![Blazor ComboBox with float label](./images/placeholder-and-floatlabel/blazor_combobox_floatlabel.gif) + + \ No newline at end of file diff --git a/blazor/multicolumn-combobox/selection.md b/blazor/multicolumn-combobox/selection.md new file mode 100644 index 0000000000..cfdf1a8573 --- /dev/null +++ b/blazor/multicolumn-combobox/selection.md @@ -0,0 +1,182 @@ +--- +layout: post +title: Selection in Blazor MultiColumn ComboBox Component | Syncfusion +description: Checkout and learn here all about the Selection feature in Syncfusion Blazor MultiColumn ComboBox component and more. +platform: Blazor +control: MultiColumn ComboBox +documentation: ug +--- + +# Selection in MultiColumn ComboBox + +## Get selected value + +Retrieve the selected value from the MultiColumn ComboBox component during the [ValueChange](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_ValueChange) event by utilizing the [ValueChangeEventArgs.Value](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.ValueChangeEventArgs-2.html#Syncfusion_Blazor_MultiColumnComboBox_ValueChangeEventArgs_2_Value) property. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/get-selected-value.razor %} + +{% endhighlight %} + +Retrieve the full object list corresponding to the selected value in the [ValueChange](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_ValueChange) event by utilizing the [ValueChangeEventArgs.ItemData](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.ValueChangeEventArgs-2.html#Syncfusion_Blazor_MultiColumnComboBox_ValueChangeEventArgs_2_ItemData) property. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/item-data.razor %} + +{% endhighlight %} + +## Preselected value on OnInitializedAsync + +To associate a pre-selected value with the MultiColumn ComboBox component, use the [@bind-Value](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_Value) attribute. You can set the value property in the [OnInitializedAsync](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/lifecycle?view=aspnetcore-6.0#component-initialization-oninitializedasync) lifecycle method. The following example illustrates how to bind the value when the component is initially rendered. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/preselect-value.razor %} + +{% endhighlight %} + +![Blazor ComboBox with pre-select value](./images/selection/blazor_combobox_preselect-value.png) + +## Programmatically change the selected value + +You can change the component's value either programmatically or externally via the component instance using the [@ref](https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-7.0#ref) attribute. The following example illustrates how to update the component's value when a button is clicked. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/change-the-selected-value.razor %} + +{% endhighlight %} + +![Blazor ComboBox with pre-select value before](./images/selection/blazor_combobox_changing-selected-value.gif) + +### ValueChange event + +The [ValueChange](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_ValueChange) event is triggered when the value of the MultiColumn ComboBox component get changed or modified. Also, it will return the necessary arguments including the current and previously selected or changed value. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/valuechange-event.razor %} + +{% endhighlight %} + +### OnValueSelect event + +The [OnValueSelect](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_OnValueSelect) event is activated whenever a value is chosen in the DropDownList component. You can access the relevant arguments, including the [ValueSelectEventArgs.ItemData](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.ValueChangeEventArgs-2.html#Syncfusion_Blazor_MultiColumnComboBox_ValueChangeEventArgs_2_ItemData). Additionally, you can prevent item selection by setting the [ValueSelectEventArgs.Cancel](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.ValueChangeEventArgs-2.html#Syncfusion_Blazor_MultiColumnComboBox_ValueChangeEventArgs_2_Cancel) property to `true` within the event arguments. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/valueselect-event.razor %} + +{% endhighlight %} + +## Preselect value with index + +Bind the pre-selected value to the component using the [@bind-Index](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_Value) attribute. It binds the respective value present in the specified index position of the datasource. + +The following sample shows how to bind the index on the initial rendering. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/preselect-value-index.razor %} + +{% endhighlight %} + +![Blazor MultiColumn ComboBox with bind-index](./images/selection/blazor_combobox_preselect-value-index.png) + + + + + +## Focus the next component on selection + +Focus the component programmatically using the [FocusAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_FocusAsync) public method. It will set focus instantly to the MultiColumn ComboBox component when invoking it. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/focus-next-component.razor %} + +{% endhighlight %} + + + +## Prevent reload on form submit + +To prevent the page from reloading when using the MultiColumn ComboBox component inside a form, you can specify the type of the button as "button" by utilizing the `HTMLAttributes` property. This will prevent the page from reloading when the button is clicked. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/prevent-reload.razor %} + +{% endhighlight %} + + + + + +### Focus event + +The [Focus](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_Focus) event will trigger when the component gets focused. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/focus-event.razor %} + +{% endhighlight %} + +### Blur event + +The [Blur](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_Blur) event will trigger when focus moves out from the component. + +{% highlight cshtml %} + +{% include_relative code-snippet/selection/blur-event.razor %} + +{% endhighlight %} \ No newline at end of file diff --git a/blazor/multicolumn-combobox/value-binding.md b/blazor/multicolumn-combobox/value-binding.md new file mode 100644 index 0000000000..e70f9e8b84 --- /dev/null +++ b/blazor/multicolumn-combobox/value-binding.md @@ -0,0 +1,146 @@ +--- +layout: post +title: Data Binding in Blazor MultiColumn ComboBox Component | Syncfusion +description: Checkout and learn here all about value binding in Syncfusion Blazor MultiColumn ComboBox component and more. +platform: Blazor +control: MultiColumn ComboBox +documentation: ug +--- + +# Value Binding in MultiColumn ComboBox + +Value binding is the process of passing values between a component and its parent. There are two methods for binding values.These are. + +* bind-Value Binding +* bind-Index Binding + +## Bind value binding + +Value binding can be accomplished using the [@bind-Value](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_Value) attribute, which supports `string`, `int`, `enum`, `bool`, and `complex types`. When the component's value changes, it will impact all instances where the variable is bound using the `@bind-value` attribute. For the binding to function correctly, the value assigned to the `@bind-value` attribute should correspond to the [TextField](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_TextField) and [ValueField](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_ValueField) mapped to the component. + +* **TValue** - Specifies the type of each list item on the suggestion list. + +{% highlight cshtml %} + +{% include_relative code-snippet/value-binding/bind-value.razor %} + +{% endhighlight %} + +{% previewsample "https://blazorplayground.syncfusion.com/embed/LNBzZYWkLFuRrUhb?appbar=true&editor=true&result=true&errorlist=true&theme=bootstrap5" %} + +![Blazor MultiColumn ComboBox with Bind Value](./images/value-binding/blazor-combobox-bind-value.png) + +## Index value binding + +The Index value binding is accomplished through the [@bind-Index]() attribute, which supports both integer and nullable integer types. This attribute allows you to bind values according to their corresponding index. + +{% highlight cshtml %} + +{% include_relative code-snippet/value-binding/index-value.razor %} + +{% endhighlight %} + + +![Blazor MultiColumn ComboBox with Index Value](./images/value-binding/blazor_combobox_index-value.png) + + + +## Show or hide clear button + +Utilize the [ShowClearButton](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.MultiColumnComboBox.SfMultiColumnComboBox-2.html#Syncfusion_Blazor_MultiColumnComboBox_SfMultiColumnComboBox_2_ShowClearButton) property to control the visibility of the clear button. When the clear button is activated, the `Value`, `Text`, and `Index` properties will all revert to null. + +N> If the TValue is a non-nullable type, pressing the clear button will reset it to the default value for that data type. Conversely, if TValue is a nullable type, pressing the clear button will set it to null. For instance, if TValue is defined as `int`, clearing it will assign a value of 0 to the component, whereas if TValue is defined as `int?`, it will assign a value of null. + +The following example illustrates the use of `string` as the TValue. Therefore, when the clear button is used, the value will be set to null, as that is the default for that type. + +{% highlight cshtml %} + +{% include_relative code-snippet/value-binding/show-hide-clear-button.razor %} + +{% endhighlight %} + +![Blazor ComboBox with clear button](./images/value-binding/blazor_combobox_show-hide-clear-button.png) + +## Dynamically change TItem + +The `TItem` property can be modified dynamically by specifying the datasource type of the MultiColumn ComboBox component using the `@typeparam` directive. The sample demonstration below illustrates how to dynamically change the `TItem` with various types of datasources. + +### Creating generic combobox component + +First, create a `MultiColumnComboBox.razor` file as a parent component in the `/Pages` folder. Also, add a Parameter property for a List as `` and `TValue`. + +{% tabs %} +{% highlight razor %} + +@using Syncfusion.Blazor.MultiColumnComboBox + +@typeparam TValue; +@typeparam TItem; + + + + +@code { + [Parameter] + public List customData { get; set; } + [Parameter] + public TValue ComboBoxValue { get; set; } + + [Parameter] + public EventCallback ComboBoxValueChanged { get; set; } +} + +{% endhighlight razor %} +{% endtabs %} + +### Usage of generic component with different type + +Then, render the Generic MultiColumn ComboBox component with the required `TValue` and `TItem` in the respective razor components. + +Here, the MultMultiColumn ComboBox component with TValue as an int nullable type in the `/Index.razor` file. + +**[Index.razor]** + +{% tabs %} +{% highlight razor %} + + + + + + +@code{ + public int? value { get; set; } = 3; + public class Games + { + public int? ID { get; set; } + public string Text { get; set; } + } + List LocalData = new List { + new Games() { ID= 1, Text= "American Football" }, + new Games() { ID= 2, Text= "Badminton" }, + new Games() { ID= 3, Text= "Basketball" }, + new Games() { ID= 4, Text= "Cricket" }, + new Games() { ID= 5, Text= "Football" }, + new Games() { ID= 6, Text= "Golf" }, + new Games() { ID= 7, Text= "Hockey" }, + new Games() { ID= 8, Text= "Rugby"}, + new Games() { ID= 9, Text= "Snooker" }, + new Games() { ID= 10, Text= "Tennis"}, + }; +} + +{% endhighlight razor %} +{% endtabs %}