¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como desmarcar uma linha em uma tabela: Guia passo a passo com código e exemplos

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

Olá a todos,

Como desmarcar uma linha em uma tabela?

Estou usando o seguinte código para exibir uma tabela e "selecionar" uma linha.


        <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 %>" >

Obrigado,

Chandra Indukuri

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

4 Respuestas

0
Cargando...

Olá,

Você tem um atributo 'onRowSelection', o valor que você dá a este atributo é o nome do evento que é ativado após selecionar a linha.

Crie um método de manipulador de eventos com o mesmo nome que o valor do atributo.

Para um código para desmarcar, por favor, verifique o método EH_ON_ROW_SELECTION na classe CL_BSP_WD_CONTEXT_NODE_TV.

ler tabela ME->SELECTION_TAB com chave TABLE_LINE = LV_ROW_INDEX

busca binária sem transportar campos.

se SY-SUBRC = 0.

  • a linha estava marcada -> desmarque-a

se ME->FILTER_ACTIVE = ABAP_TRUE.

ME->LAST_LINE_ITERATOR->UNMARK( IV_INDEX = LV_ROW_INDEX ).

senão.

ME->COLLECTION_WRAPPER->UNMARK( IV_INDEX = LV_ROW_INDEX ).

limpar ME->SELECTED_INDEX.

fim.

senão.

  • a linha ainda não estava marcada -> marque-a

se ME->FILTER_ACTIVE = ABAP_TRUE.

ME->LAST_LINE_ITERATOR->MARK( IV_INDEX = LV_ROW_INDEX ).

senão.

ME->COLLECTION_WRAPPER->MARK( IV_INDEX = LV_ROW_INDEX ).

ME->SELECTED_INDEX = LV_ROW_INDEX.

fim.

fim.

Espero que isso ajude.

Saudações,

Bhushan

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

Olá,

Por favor, certifique-se de que o método de classe do framework eh_on_row_selection está sendo chamado em sua classe de nó de contexto eh_on-row_sleection.

Ou seja, ao abrir o método de classe do nó de contexto EH_ON_ROW_SELECTION, você deve ser capaz de 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.

Se não for assim, por favor, adicione a chamada ao método de classe super e também a configuração do modo de seleção.

Suvidha

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

Obrigado Snehasish e Bhushan.

Sijo,

tens razão. A função padrão deveria ter sido selecionada/deselecionada automaticamente.

Mas não está acontecendo... No método do controlador de eventos, eu só tenho


        * Obter o índice da linha selecionada
        lv_thtmlb_tableview ?= htmlb_event_ex.
        if lv_thtmlb_tableview is bound.
            gv_selected_row = lv_thtmlb_tableview->selectedrowindex.
        endif.
    

O interessante é que a funcionalidade de desseleção funciona em um componente e não funciona em outro. Não sei o que estou perdendo.

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

Olá Chandra,

De acordo com o código HTML, deveria ter sido desmarcado pela função padrão.

O controlador de eventos EH_ON_ROW_SELECTION decide qual linha deve ser selecionada e desmarcada.

Tenha um depurador neste controlador de eventos, pois isso dá pistas do porquê o código padrão está falhando.

Saudações,

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?