How is your experience with the OutSystems Community?
37
Views
21
Comments
Solved
DropdownSearch Selection Reset Issue in ODC

I have implemented three DropdownSearch controls (DDL-A, DDL-B, and DDL-C) in an OutSystems ODC application. All three dropdowns are bound to the same data source (Data list).

 The intended behavior is that when a user selects an item in any one dropdown, that selected item is removed from the options available in the other two dropdowns. 

There is no enforced sequence; the user may select values in any order. 

Issue observed: When an item (e.g., Item1) is selected in DDL-A, it is correctly removed from DDL-B and DDL-C. The user can then select other items in DDL-B and DDL-C without issues. 

However, when a selection is made in DDL-C (regardless of the sequence), the initially selected value in DDL-A is cleared unexpectedly. 

This issue does not occur with DDL-B, which retains its selected value correctly. 

Additional Context: This functionality was working correctly until March. The issue started appearing after recent UI updates were applied. In higher environments where these updates have not yet been deployed, the functionality continues to work as expected. 
In the attached image i followed the sequence 1,2,3. After 3rd item selection 1 got reset
Widget - ODC - Search Dropdown

Could you please help identify the possible cause of this issue or suggest a resolution?


ODC_SearchDropdown_Issue.png
2022-11-12 11-28-30
Gonçalo Martins
Staff
Solution

Hello @Pradip Chavhan 

We managed to replicate the issue tracked under ROU-12856 (for future reference in the release notes), which will be fixed in the next version, 2.29.0, expected in the first weeks of July.
Thanks for bringing this to our attention.

Cheers,
GM

2026-06-06 05-35-01
ABHIJITH G
Champion

Hi @Pradip Chavhan ,

I would suggest that, if possible, maintaining separate filtered lists for DDL-A, DDL-B, and DDL-C will be better. For DDL-A, exclude only the values selected in DDL-B and DDL-C; for DDL-B, exclude only the values selected in DDL-A and DDL-C; and for DDL-C, exclude only the values selected in DDL-A and DDL-B. With this approach, the selected value will remain available in its own DropdownSearch list, which should prevent it from being cleared during refresh, regardless of the recent UI updates.

Regards
Abhijith G

2022-05-18 07-58-50
Pradip Chavhan

HI @ABHIJITH G

I have maintained three separate lists: List1, List2, and List3, each bound to their respective dropdown controls. 

The requirement is to ensure that when a user selects an item in one dropdown, the same item is removed from the other two lists to prevent duplicate selection. 

For example: If a user selects an item from List1, the selected item must be removed from both List2 and List3. Similarly, the same logic applies when a selection is made in List2 or List3. To achieve this, I am updating the lists dynamically by removing the selected item from the other lists using operations such as ListIndex and ListRemove.

2026-06-06 05-35-01
ABHIJITH G
Champion

Ok. I saw that you mentioned, "All three dropdowns are bound to the same data source (Data list)" in the Post.
So, after fetching the data list, you are assigning the same list to List1, List2, and List3. 

If you are still facing the issue, can you tell whether these List1, List2, and List3 are local lists? 
If possible, can you share a screenshot of the logic you implemented for each dropdown selection? 

2026-06-06 05-35-01
ABHIJITH G
Champion

@Pradip Chavhan 

I solved this by using one common DropDownOnChange action for all three dropdowns. Inside that action, I used three separate ListFilter operations to rebuild the list for each dropdown based on the selected values of the other two dropdowns.

Since each dropdown has its own selected variable, we can exclude already selected values from the other dropdown lists and still keep the current dropdown value valid. This keeps the filtering logic centralized and avoids duplicate selections across the three dropdowns.

Then I am assigning the filtered lists to corresponding local lists used for each dropdown.

You can try this.


2022-05-18 07-58-50
Pradip Chavhan


Hi Abhijit, I will try this approach and keep you updated. Thank you.

2022-05-18 07-58-50
Pradip Chavhan

Kindly find the attached screen shot for your reference.

ODC_SearchDropdown_Logic.png
2026-06-05 12-38-17
Eduardo Jauch

Hello @Pradip Chavhan 

Could you show the full logic for the OnChange called by the last dropdown, and the conditions in the IF nodes?

Also, the ListAppend nodes you have are actually "ListAppendAll" nodes? If not, can you show what are you passing as input for them as well?

In any case you probably don't need to use ListAppend and ListIndex and ListClear and the if conditions.

If your data comes from an aggregate, and those are three local lists, you can use assign to each list the result of a ListFilter, in which the condition is something like "id <> selectedId" (where id is the attribute in the list and selectedId is your local variable that holds the selected id from the dropdown.

When you assign the result of the ListFilter to your list, you are actually replacing the previous list with the new one without the new list without the item selected in the dropdown. 

The two dropdowns you are "clearing" will keep the selected items as long as you keep the original value selected on them in their own selectedId variables and they are still present in the lists (something they should).

Cheers!

2025-09-25 14-38-22
Lokesh Kumar Yadav

The issue appears to be related to the recent UI/Search Dropdown widget updates in ODC rather than the application logic itself.


Since


the functionality was working correctly before March,

 higher environments without the latest UI updates still work fine,

 and only DDL-A gets reset after selecting a value in DDL-C,


it seems the widget is re-rendering or refreshing the shared datasource and clearing the previously selected value.


As a recommendation:


 use separate/cloned datasource lists for each dropdown,

 ensure the selected value remains available in its own datasource,

 and verify whether the issue is reproducible with the previous widget/UI version.


This looks like a regression issue introduced by the recent UI updates.


2022-05-18 07-58-50
Pradip Chavhan

I am working with a common dataset that is used across three dropdown lists—for example, a shared list of vehicles. The purpose of these dropdowns is to allow users to select vehicles for comparison.

To prevent duplicate selections, I have implemented logic to remove a selected vehicle from the other lists. For instance, if a user selects Vehicle A from List 3, that vehicle is automatically removed from List 1 and List 2. Similarly, if Vehicle B is selected from List 2, it is removed from List 1 and List 3.

This is why I introduced logic involving listIndex and listRemove, ensuring that each dropdown only displays vehicles that have not already been selected in the other lists.

2026-06-05 12-38-17
Eduardo Jauch

Hello @Pradip Chavhan 

Check @ABHIJITH G solution. It's pretty similar to what I suggested.

I know you said it was working before. But If changing the underlying UI component has impact in the logic, that means the logic has some kind of problem.

If you can provides us with a module that can replicate the issue with dummy data, that would help us help you.

Cheers.

2022-05-18 07-58-50
Pradip Chavhan

Hi @ABHIJITH G

I have implemented the changes in accordance with Abhijit’s guidelines; however, I am still encountering the same issue. Please find the attached OML file for your reference.

CC: @Eduardo Jauch 

TestSearchDropdowns.oml
2026-06-05 12-38-17
Eduardo Jauch

Can't open your module.

Strangely, It gives me an erros saying I need to use a newer version of Service Studio, but my Service Studio is up-to-date...

2022-05-18 07-58-50
Pradip Chavhan

I am having ODC studio Version 1.7.10 / Build 10264 

2026-06-05 12-38-17
Eduardo Jauch

Same as mine. But when I try to open in ODC, it says it was made in Service Studio and it can't open it... 

Not sure if it is corrupted or if the forum is making something to the file (unlikely, but...)... 

2026-06-05 12-38-17
Eduardo Jauch

Can you share the module in another way, for us to test?

Like, through google drive or wetransfer? You can send me a private message with the link if you prefer.

Cheers

2022-05-18 07-58-50
Pradip Chavhan

Kindly try the newly attached file. If the issue persists, I will share it via Google Drive.

TestSearchDropdowns_1.oml
2026-06-05 12-38-17
Eduardo Jauch

Yep. Same problem. This looks like something the Forum may be causing... I noticed another post where someone had the same problem to open an ODC OML from attached to a message in the Forum...

2022-05-18 07-58-50
Pradip Chavhan

Hi @Eduardo Jauch
Kindly share your gmail address, i will share the drive link.

2026-06-05 12-38-17
Eduardo Jauch

Hello @Pradip Chavhan 

I took a look at your code.

I fixed a few mistakes. For example, all dropdowns need to have the StartingSelection defined to the correct SelectedOptionList variable. Otherwise, when you replace the List with the filtered list, it will lose the selected option.

Also, the Filters must use as input list the Aggregate (you were using the List1, 2 and 3 instead. The problem is that using the variables instead of the original source, you will keep losing items and if the user changes the value, it will not see this value on the other lists anymore. This requires to fix the filter as well.

With these changes, everything SHOULD work. But it doesn't.

Funny enough, when I did the selection in order (1st dropdown, 2nd and 3rd), after the change action finished for the third one, the selection of the first disappeared. But at the end node, all values (lists and selected variables) were correct. Also, the OnChange for the first dropdown was not triggered. 

So, this is indeed not a bug on your code. It seems to be a visual bug on the component itself. 

I couldn't figure out what is causing it, so I submitted a feedback through ODC Studio.

I don't think you can workaround this behavior (I may be wrong). If you are in dire need, you can open OutSystems UI in ODC Studio (from the portal), clone it, extract the Dropdown search and required actions/etc, and try to fix it. But I am not even sure the problem is in the Dropdown itself or in another part of OutSystems UI.

I suggest you to open a support ticket with OutSystems.

Cheers!

2022-11-12 11-28-30
Gonçalo Martins
Staff
Solution

Hello @Pradip Chavhan 

We managed to replicate the issue tracked under ROU-12856 (for future reference in the release notes), which will be fixed in the next version, 2.29.0, expected in the first weeks of July.
Thanks for bringing this to our attention.

Cheers,
GM

2023-09-21 12-55-43
SIRAJKHILJI

Hi  @Pradip Chavhan 

Use Separate Filtered Lists

Instead of binding all three DropdownSearch widgets to the same list variable, create three independent lists:

DDL_A_List = AllItems excluding SelectedB and SelectedCDDL_B_List = AllItems excluding SelectedA and SelectedCDDL_C_List = AllItems excluding SelectedA and SelectedB

This avoids multiple widgets sharing and refreshing the same list instance.

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.