hello i ll explain how to use tlist for multi selection.
firstly ctrl or shift + click not enable for multi selection on list items. You must use two tlist and buttons for this.
im using first tlist for available items and second for selected items and four buttons for select , select all , deselect and deselect all.
i also creating two global temporary table ( on commit preserve rows option ) . Because we are unable to find items indexes in the tlist by value. ( i never understand why )
create global temoporary table gt_available ( value varchar2(100) , label varchar2(4000) ); -- for tlist 1
create global temoporary table gt_selected ( value varchar2(100) , label varchar2(4000) ); --- for tlist2
firstly im clearing two tlists by CLEAR_LIST built -in and then inserting to gt_available table to all rows. gt_selected table is empty now.
when i click select button im simply inserting this value to gt_selected table and deleting from gt_available table.
i also prepare a procedure. the procedure simply clear and populate two list from gt tables.