Dropdown Search sometimes doesn't show any data - unreliable behavior
Application Type
Reactive

Two issues, sample project included : 

1 - (minor) "Cannot read properties of undefined" error occurs when reloading the page from the link in the menu to itself (ie: in Page1, click the Page1 link) if the DDS has the IsDisabled = true property, hardcoded or by local var. 

  • Issue seems related to manageDisableStatus. 
  • This error is minor to us, we can circumvent in other ways and not use that property, but it looks like a bug to me. 
  • To reproduce : drop a DDS on a page, set IsDisabled = True, set a link to navigate to same page, click link.
  • Note : does not occur on page refresh (F5), nor when navigating from other page, only when navigating from 'self'.



2 - More important : mostly when navigating "to itselft" (from page1 click Page1 link in menu), the data will sometimes not be loaded in the DDS, even though the aggregate/fetch/local var has the data. 

--> What is the best way to reliably ensure the DDS will always present data ?

This also occurs sometimes when navigating from another page (ie: page 2 -> page 1)

Issue #2 is very problematic, as not having the DDS have any selectable values wrecks the functionnality of those pages.

DDSPageReloadError.oml

Solution

Hello Francois,

Hope to find you well.

To your issue #2 a quick way to solve that, probably not the most elegant one but solves the problem, is to add an If to the DDS that only will render after the data source is fetched, using the IsDataFetched flag available for aggregates and DataActions.

Hope it helps.


Cheers,

JS.

Hi José

I just tried out your solution, and it works - Feels a bit hackish, but hey if it works, it works.

Do you think I should open a support ticket for this issue ? Even though it's working, I feel OutSystems should fix this in a more permanent manner... 


Yes I agree that this should be refreshed automatically after the source fetch the data.

Negative side effect of wrapping the DDS in an If block : calls to DropdownEnable/Disable while the If is false are not effective, meaning logic for enabling/disabling those DDS needs to be called in OnAfterFetch...

Yes, you need to guaratee that you only manipulate the DDS if it's rendered.


Cheers,

JS.

I had the same issue and tried the IsDataFetched solution. It works in the way that my data is loaded, so the options are visible in the DropDownSearch. However, selecting an option doesn't trigger the OnChange event. Am I missing something? Reloading the data with a button solves the issue, but the same reload action is triggered onParameterChange and in that case it doesn't work.....

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