解决ALV刷新后选中状态丢失的办法

在ALV的data_change事件中刷新了ALV,导致每次更改数据时丢失了ALV的选中状态,导致后续

保存的时候使用get_selected_rows方法时丢失数据,导致ALV编辑后更新失败。

解决方法:每次更新后重新用set_selected_rows方法填充选中行。

                   还有一种方法就是用CHECKBOX,这要看用户使用习惯。

  CALL METHOD g_grid->get_selected_rows
    IMPORTING
      et_index_rows = lt_row
      et_row_no     = l_roid.


  PERFORM frm_refresh_alv USING g_grid.

  CALL METHOD g_grid->set_selected_rows
    EXPORTING
      it_index_rows = lt_row.
*& 刷新ALV页面
*&---------------------------------------------------------------------*
*&      --> GV_GRID
*&---------------------------------------------------------------------*
FORM frm_refresh_alv  USING    pv_grid TYPE REF TO cl_gui_alv_grid.

  DATA: ls_stable        TYPE lvc_s_stbl.

  ls_stable-row = 'X'.
  ls_stable-col = 'X'.

  CALL METHOD pv_grid->refresh_table_display
    EXPORTING
      is_stable = ls_stable.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值