|
| 1 | +--- |
| 2 | +title: Retrieve Selected Items Client-Side |
| 3 | +description: Learn how to capture selected items from RadMultiSelect using its change event and store them in a hidden field on an ASP.NET AJAX page. |
| 4 | +type: how-to |
| 5 | +page_title: Retrieve Selected Items Client-Side |
| 6 | +slug: multiselect-retrieve-selected-items-client-side |
| 7 | +tags: radmultiselect, asp.net ajax, client-side, onchange, javascript, hidden field |
| 8 | +res_type: kb |
| 9 | +ticketid: 1670936 |
| 10 | +--- |
| 11 | + |
| 12 | +## Environment |
| 13 | + |
| 14 | +<table> |
| 15 | +<tbody> |
| 16 | +<tr> |
| 17 | +<td>Product</td> |
| 18 | +<td>RadMultiSelect for ASP.NET AJAX</td> |
| 19 | +</tr> |
| 20 | +<tr> |
| 21 | +<td>Version</td> |
| 22 | +<td>All</td> |
| 23 | +</tr> |
| 24 | +</tbody> |
| 25 | +</table> |
| 26 | + |
| 27 | +## Description |
| 28 | +Capturing selected items from a [RadMultiSelect](https://docs.telerik.com/devtools/aspnet-ajax/controls/multiselect/overview) and storing them in a hidden field on the client side is needed when handling selections without postbacks. This KB article also answers the following questions: |
| 29 | + |
| 30 | +- How can I update a hidden field based on RadMultiSelect selections? |
| 31 | +- Is it possible to handle RadMultiSelect change events on the client side? |
| 32 | +- How do I store RadMultiSelect selected items in a web form? |
| 33 | + |
| 34 | +## Solution |
| 35 | +To list and store the selected items of a RadMultiSelect in a hidden field on an .aspx page, follow these steps: |
| 36 | + |
| 37 | +**Add a Hidden Field to Your Page:** Insert a hidden field in your .aspx page to hold the selected values. |
| 38 | + |
| 39 | +````ASP.NET |
| 40 | +<asp:HiddenField ID="hiddenFieldSelectedItems" runat="server" /> |
| 41 | +```` |
| 42 | + |
| 43 | +**Configure RadMultiSelect:** Set up the RadMultiSelect with the necessary configurations and client events. |
| 44 | + |
| 45 | +````ASP.NET |
| 46 | +<telerik:RadMultiSelect ID="RadMultiSelect1" runat="server" DataTextField="text" DataValueField="value" Filter="Contains" AutoPostBack="false"> |
| 47 | + <Items> |
| 48 | + <telerik:MultiSelectItem Text="Element1" Value="1"></telerik:MultiSelectItem> |
| 49 | + <telerik:MultiSelectItem Text="Element2" Value="2"></telerik:MultiSelectItem> |
| 50 | + <telerik:MultiSelectItem Text="Element3" Value="3"></telerik:MultiSelectItem> |
| 51 | + </Items> |
| 52 | + <ClientEvents OnSelect="onSelect" /> |
| 53 | + </telerik:RadMultiSelect> |
| 54 | +```` |
| 55 | + |
| 56 | +**Implement JavaScript Function:** Create a JavaScript function to update the hidden field with the texts of the selected items, separated by commas. |
| 57 | + |
| 58 | +````JavaScript |
| 59 | +function onSelect(sender, args) { |
| 60 | + let selectedTexts = []; |
| 61 | + let selectedItems = sender.get_selectedDataItems(); |
| 62 | + let hiddenField = document.getElementById('<%= hiddenFieldSelectedItems.ClientID %>'); |
| 63 | + |
| 64 | + if (selectedTexts.length < 1) { |
| 65 | + selectedTexts.push(args.get_dataItem().text) |
| 66 | + } |
| 67 | + |
| 68 | + for (let i = 0; i < selectedItems.length; i++) { |
| 69 | + selectedTexts.push(selectedItems[i].text); |
| 70 | + } |
| 71 | + |
| 72 | + hiddenField.value = selectedTexts.join(", "); |
| 73 | + } |
| 74 | +```` |
| 75 | + |
| 76 | +### Explanation |
| 77 | +- **JavaScript Approach:** Utilizing JavaScript allows for real-time updates to the hidden field without the need for postbacks, enhancing the user experience. |
| 78 | +- **Handling Events:** The `OnChange` event of the RadMultiSelect ensures the hidden field is consistently synchronized with the user's selections. |
| 79 | + |
| 80 | +## See Also |
| 81 | +- [RadMultiSelect Overview](https://docs.telerik.com/devtools/aspnet-ajax/controls/multiselect/overview) |
| 82 | +- [Client-Side Programming](https://docs.telerik.com/devtools/aspnet-ajax/controls/multiselect/client-side-programming/overview) |
0 commit comments