The QListControl Family of Controls
controls handle simple lists of objects which can be selected. In its most
basic form, we are basically talking about HTML listboxes (e.g. <select>) with name/value
pairs (e.g. <option>).
Of course, listboxes can be single- and multiple-select. But note that sometimes,
you may want to display this list as a list of labeled checkboxes (which basically acts
like a multiple-select listbox) or a list of labeled radio buttons (which acts like a
single-select listbox). Qcodo includes the QListBox
controls which all inherit from QListControl to allow you to
present the data and functionality that you need to in the most user-friendly way possible.
In this example we create a QListBox
control. This single-select listbox will pull its data
from the Person
table in the database. Also, if you select a person, we will update the
label to show what you have selected.
If you do a View Source...
in your browser to view the HTML,
you'll note that the <option> values are arbitrary indexes (starting with 0). This is
done intentionally. QListControl
uses arbitrary listcontrol indexes to lookup the specific
value that was assigned to that QListItem
. It allows you to do things like put in non-string
based data into the value, or even to have multiple listitems point have the same exact value.
And in fact, this is what we have done. The actual value of each QListItem
Id, but it is in fact the Person
object, itself. Note that in our
, we never need to re-lookup the Person
via a Person::Load
simply display the Person's
name directly from the object that is returned by the SelectedValue
call on our QListBox