¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo deseleccionar una fila en una tabla: Guía paso a paso con código y ejemplos

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 5 Vistas
0
Cargando...

Hola a todos,

¿Cómo deseleccionar una fila en una tabla?

Estoy utilizando el siguiente código para mostrar una tabla y "seleccionar" una fila.


        <thtmlb:cellerator design                = "STANDARD"
                           id                    = "casetable"
                           onHeaderClick         = "HeaderClick"
                           onRowSelection        = "RowSelection"
                           selectionMode         = "SINGLE"
                           selectedRowIndex      = "<%= controller->gv_selected_row %>"
                           selectedRowIndexTable = "<%= controller->gt_selected_rows %>"
                           iterator              = "<%= controller->gr_me %>"
                           table                 = "<%= ZL_ZADJ_SEARCH_IMPL=>GT_CASE %>"
                           fillUpEmptyRows       = "FALSE"
                           horizontalScrolling   = "TRUE"
                           rowSelectionByLineClick = "TRUE"
                           verticalScrolling     = "TRUE"
                           visibleFirstRow       = "1"
                           visibleRowCount       = "100"
                           width                 = "100%"
                           personalizable        = "TRUE"
                           showPersonalizeButton = "FALSE"
                           usage                 = "EDITLIST"
                           columnDefinitions     = "<%= it_tabcols %>" >

Gracias,

Chandra Indukuri

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

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

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Por favor, asegúrese de que el método de clase de framework eh_on_row_selection se esté llamando en su clase de nodo de contexto eh_on-row_sleection.

Es decir, cuando abra el método de clase de nodo de contexto EH_ON_ROW_SELECTION, debería poder ver este código.

CALL METHOD super->eh_on_row_selection

EXPORTING

iv_htmlb_event = iv_htmlb_event

iv_htmlb_event_ex = iv_htmlb_event_ex.

me->selection_mode = selmode_single.

Si no es así, por favor agregue la llamada al método de clase supe y también la configuración del modo de selección.

Suvidha

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Gracias Snehasish y Bhushan.

Sijo,

tienes razón. La función estándar debería haber seleccionado/deseleccionado automáticamente.

Pero no lo hace... En el método del controlador de eventos solo tengo


* Obtener el índice de la fila seleccionada
  lv_thtmlb_tableview ?= htmlb_event_ex.
  if lv_thtmlb_tableview is bound.
    gv_selected_row = lv_thtmlb_tableview->selectedrowindex.
  endif.

Lo interesante es que la funcionalidad de deselección funciona en un componente y no funciona en otro. No sé qué me estoy perdiendo.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Chandra,

Según el código HTML, debería haberse deseleccionado por la función estándar.

El controlador de eventos EH_ON_ROW_SELECTION decide qué fila debe seleccionarse y deseleccionarse.

Ten un depurador en este controlador de eventos, ya que esto da pistas de por qué el código estándar está fallando.

Saludos,

Sijo

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?