We have a "Text Field" for Email with an auto suggest that suggests the email address from a predefined set of domain names as the user types. For this, we have written a Dynamic Data Service and have configured the same in the Data Source property of the Text Field with "Configuration - Min Characters To Show Suggestion" as 1.
Now when the user start typing the email, the email with suggested domain appears.
We have a constraint to provide suggestion only after user enter's '@'.
Is there way to restrict the DDS service call until the user enter's '@'?
If the number of email addresses is relatively manageable, for example, less than 1,000, you could change the Data Source to 'Reference Data (Prepop)', and load the list just once on form load.
Otherwise, setting Min Characters to Show Suggestion to a larger number like 6 will at least defer the initial call to the service, and reduce the number of hits returned.
You could use a dynamic class rule to determine if the value has an "@" character in it and then use a shared style to hide/show the suggestion list.
Alternatively you could handle this on the server side in Transact Manager and only return the list if the user has entered the correct value. I suggest taking the server side route as it would not require any form dev.
The suggestions are retrieved from a DDS for every key press. The requirement is coming from the performance improvement team to avoid back end calls for every key press and avoid these calls until the user enter the '@' symbol. In the first suggestion, not sure if it avoid the back end call. And in second suggestion, we are trying to avoid the calls to TM