Show TOC

Zelleditoren im DataGridLocate this document in the navigation structure

Sie können Zelleditoren über die Aggregation CONTENT in eine DataGridCell einfügen.

Über die Eigenschaften selectedTemplateKey des DataGridSegment und templateKey der DataGridCell legen Sie fest, welcher Zelleditor zur Darstellung der einzelnen Zellen innerhalb des Segments verwendet werden soll. Verwenden Sie diese Eigenschaften, wenn Sie mehrere verschiedene Zelleditoren innerhalb eines Segments anbieten möchten.

Das Binding der primären Attribute der Zelleditoren und der Eigenschaft selectedTemplateKey erzeugen Sie dynamisch.

Sie können die folgenden Zelleditoren verwenden:

Beispiel

Sie möchten in einem DataGrid mit einem Segment zwei verschiedene Zelleditoren (CInputField und CTextView) verwenden.
  1. Legen Sie über die Aggregation TEMPLATE zwei DataGridCells an.
  2. Fügen Sie in die erste DataGridCell über die Aggregation CONTENT ein CInputField ein.
  3. Fügen Sie in die zweite DataGridCell über die Aggregation CONTENT ein CTextView ein.
  4. Geben Sie bei der Eigenschaft templateKey der ersten DataGridCell einen Namen für das Template an (z.B. Input).
  5. Geben Sie bei der Eigenschaft templateKey der zweiten DataGridCell einen Namen für das Template an (z.B. Text).
  6. Erstellen Sie dynamisch das Binding der primären Attribute der Zelleditoren an das entsprechende Attribut des Context-Knotens (Eigenschaft dataSource des DataGridSegment) und der Eigenschaft selectedTemplateKey. Sie können folgendes Coding verwenden:
    method  wddomodifyview .
       
     data l_segment              type ref to  cl_wd_data_grid_segment .   
     data l_cell                 type ref to  cl_wd_data_grid_cell .   
     data l_cells                type  cl_wd_data_grid_cell => tt_data_grid_cell .   
     data l_client_input_field   type ref to    cl_wd_client_input_field .   
     data l_client_text_view     type ref to  cl_wd_client_text_view .
       
       if  first_time  =  abap_true .     
         wd_assist -> initialize (  iv_number_of_seg_rows    =  1                          
                                    iv_number_of_seg_cols    =  1                          
                                    iv_number_of_rows        =  5                          
                                    iv_number_of_columns     =  6  ).     
         wd_assist -> fill_data ( ). 
        
         l_segment ?= view -> get_element (  `DATAGRIDSEGMENT_11`  ).  l_segment -> bind_data_source (  wd_assist -> create_node (  segment_name    =  l_segment -> get_id ( )      root_node       =  wd_context  ) ).     
    wd_assist -> bind_node_data (  l_segment  ).     l_segment -> bind_selected_template_key (  l_segment -> bound_data_source ( )  &&  `.`  &&  `SELECTED_TEMPLATE_KEY`  ).     
    
    l_client_input_field ?= view -> get_element (  `CLIENT_INPUT_FIELD`  ).     
    l_client_input_field -> bind_value (  l_segment -> bound_data_source ( )  &&  `.`  &&  `VALUE`  ).     
    
    l_client_text_view ?= view -> get_element (  `CLIENT_TEXT_VIEW`  ).     
    l_client_text_view -> bind_text (  l_segment -> bound_data_source ( )  &&  `.`  &&  `VALUE`  ).    " Bind value of cells     
    
    " Bind value of cells
    l_cells  =  l_segment -> get_templates ( ).     
    loop at  l_cells  into  l_cell .       
    l_cell -> bind_background_color (  l_segment -> bound_data_source ( )  &&  '.'  &&  'BACKGROUND'  ).     
    endloop .   
    endif .
    endmethod .
Ein Beispiel finden Sie in der View TC_SIMPLE in der Component WDR_TEST_DATA_GRID.