Hola,
Tienes un atributo 'onRowSelection', el valor que le das a este atributo es el nombre del evento que se activa después de seleccionar la fila.
Crea un método manejador de eventos con el mismo nombre que el valor del atributo.
Para un código para deseleccionar, por favor revisa el método EH_ON_ROW_SELECTION en la clase CL_BSP_WD_CONTEXT_NODE_TV.
leer tabla ME->SELECTION_TAB con clave TABLE_LINE = LV_ROW_INDEX
búsqueda binaria sin transportar campos.
si SY-SUBRC = 0.
-
la línea estaba marcada -> desmárcala
si ME->FILTER_ACTIVE = ABAP_TRUE.
ME->LAST_LINE_ITERATOR->UNMARK( IV_INDEX = LV_ROW_INDEX ).
else.
ME->COLLECTION_WRAPPER->UNMARK( IV_INDEX = LV_ROW_INDEX ).
clear ME->SELECTED_INDEX.
fin.
else.
-
la línea aún no estaba marcada -> márcala
si ME->FILTER_ACTIVE = ABAP_TRUE.
ME->LAST_LINE_ITERATOR->MARK( IV_INDEX = LV_ROW_INDEX ).
else.
ME->COLLECTION_WRAPPER->MARK( IV_INDEX = LV_ROW_INDEX ).
ME->SELECTED_INDEX = LV_ROW_INDEX.
fin.
fin.
Espero que esto ayude.
Saludos,
Bhushan