Quantcast
Channel: SCN : All Content - Web Dynpro ABAP
Viewing all articles
Browse latest Browse all 3667

Multi Select Rows in Webdynpro ALV with out using ctrl key.

$
0
0

Hi all,

 

I saw many people asking how to do a multi-selection on a webdynpro ALV without using ctrl key.

First of all it isn't a straight forward method but does the job.

So if you are in a situation where you have to do multi-selection without ctrl key, this document should help you.

Before I start this document I assume that you know how to create an ALV in webdynpro.

 

Step 1:Create an ALV and while initializing the ALV ( In my case its in WDDOINIT method ) set the selection mode as MULTI.doinit.jpg

Step 2:Create a global table as an attribute to the controller.

global table.jpg

GT_INDEX is of type ZINDEX_T

ZINDEX_T has the line type ZINDEX_S

and ZINDEX_S has the structure:

zindex_s.jpg

Step 3:Implement the event handler method on_lead_select of the ALV

select_method.jpg

Step 4:Write the following code in the method.

DATA: ls_index TYPE zindex_s,         lv_index TYPE i.   DATA lo_nd_table_node TYPE REF TO if_wd_context_node.   lo_nd_table_node = wd_context->get_child_node( name = wd_this->wdctx_table_node ).   READ TABLE wd_this->gt_index WITH KEY idx = r_param->index TRANSPORTING NO FIELDS.   IF sy-subrc = 0.     DELETE wd_this->gt_index INDEX sy-tabix.   ELSE.     CLEAR ls_index.     ls_index-idx = r_param->index.     APPEND ls_index TO wd_this->gt_index.   ENDIF.   LOOP AT wd_this->gt_index INTO ls_index.     lv_index = ls_index-idx.     lo_nd_table_node->set_selected(       EXPORTING         flag  = abap_true    " Value with Which Property Is to Filled         index = lv_index    " Index of Context Element     ).   ENDLOOP.

select.jpg

 

Now you go and click on the rows required without pressing ctrl key to select it and click again to deselect it.

 

 

explorer.jpg

 

Thank you.


Viewing all articles
Browse latest Browse all 3667

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>