Creating a QDataGrid with Inline Editing
Using the techniques for dynamically creating controls and utilizing the AJAX
features in Qcodo, we update our Person
datagrid to include functionality for
We must first add a $intEditPersonId
in the QForm to keep track of which
(if any) we are currently editing. We then must define the First
and Last Name QTextBoxes
, as well as Save and Cancel QButtons
Note that we only need to define one of each, because only one Person can be edited
at a time. The textboxes have QEscapeKeyEvents
defined on them to
perform a "Cancel", and the "Save" button is set to be a PrimaryButton
allows the textboxes to be sensitive to the Enter
saving and cancelling, respectively.
We also define render methods for each of the columns
to properly display either the name or the QTextBox
, depending on the row we are
rendering and which Person
we are editing.
And finally, we add a btnNew
at the bottom to allow the user to create new
objects. If they want to create a new person, the $intEditPersonId
is set to -1, and we get the datagrid to basically act as if it's editing a blank person.