In this step, you will create a LoadDropdowns method routine to populate the SearchType dropdown when the web page is initialized.
1. On the Design tab, select the SearchType dropdown. This is a reusable part. Press F2 to discover what services it provides. Note that it has Add, Clear, and Find methods. You have already seen that it has an ItemGotFocus event.
Double click on any of these to display the help in your default browser.
On the Feature tab, note that the ItemGotFocus event passes three values:
As you would expect:
- The dropdown reusable part enables a web page which uses, it to populate it with a list of captions and values using the Add method.
- The Find method finds an entry, in order to position the dropdown.
- It signals ItemGotFocus when a dropdown entry is selected by the user.
The Add method accepts parameters of Value and Caption:
2. In your web page, define a work field TypeSearch, with a reference field of STD_OBJ. For consistency, all field, list and group_by definitions should be at the top of your source code, below component definitions
3. Create a LoadDropDowns method routine.
4. Add code to the LoadDropDowns method to populate the SearchType dropdown.
The application will support a Start Date search using Month and a Name search which supports "Names Beginning" or "Names Containing" logic.
Add code which adds three values to the SearchType dropdown, positions to the first entry and sets the TypeSearch value to MONTH. For example.
#SearchType.add( MONTH "Month" ) #SearchType.add( BEGIN "Name Beginning" ) #SearchType.add( CONTAINS "Name Containing" ) #SearchType.Find( Month True ) #TypeSearch := MONTH
The name search in the server module will use the LANSA SELECT_SQL command to select employees using either a LIKE or CONTAINS comparison.
5. Create a CreateInstance event routine for the web page which invokes the LoadDropDowns method.
Evtroutine Handling(#Com_owner.CreateInstance) #com_self.LoadDropDowns Endroutine
The CreateInstance event occurs before the page is displayed, avoiding flicker.
6. Complete the SearchType.ItemGotFocus event for the dropdown component.
The SearchType component is based on xDemoWebDropDown reusable part, which is part of a shipped demonstration applications.
You need to note the following about this component:
- The SearchType.ItemGotFocus event routine must be defined with an input parameter Value, which passes the value column for the selected entry.
- It also returns a Caption value, which is not required in your application.
a. Add the Value() parameter to the SearchType.ItemGotFocus event routine definition
Evtroutine Handling(#SearchType.ItemGotFocus) Value(#Value) Endroutine
b. Define the SearchType.ItemGotFocus event based on the following:
Assign TypeSearch to Value as a native string
Within a CASE loop for Value
When = MONTH
Show Label_Month and iiiSearchMonth
Hide Label_Name and iiiSearchName
When = BEGIN
Hide Label_Month and iiiSearchMonth
Show Label_Name and iiiSearchName
When = CONTAINS
Hide Label_Month and iiiSearchMonth
Show Label_Name and iiiSearchName
End CASE
Your code should look like the following:
Evtroutine Handling(#SearchType.ItemGotFocus) Value(#Value) #TypeSearch := #Value.asNativeString Case Of_Field(#Value) When (= MONTH) #Label_Month.visible := true #SearchMonth.visible := true #Label_Name.visible := false #SearchName.visible := false When (= BEGIN) #Label_Month.visible := false #SearchMonth.visible := False #Label_Name.visible := True #SearchName.visible := True When (= CONTAINS) #Label_Month.visible := False #SearchMonth.visible := False #Label_Name.visible := True #SearchName.visible := True Endcase Endroutine
7. Compile and test your web page. Initially, the SearchType should show Month, and the Month dropdown should be visible and contain 12 months.
Selecting SearchType Name Beginning or Name Containing should display SearchName field.

