com.smartgwt.client.widgets.grid.events

## Interface RecordDropHandler

- All Superinterfaces:
    com.google.gwt.event.shared.EventHandler

      public interface RecordDropHandler
      extends com.google.gwt.event.shared.EventHandler

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `onRecordDrop(RecordDropEvent event)` Process a drop of one or more records on a ListGrid record.

- - ### Method Detail

    - #### onRecordDrop

          void onRecordDrop(RecordDropEvent event)

      Process a drop of one or more records on a ListGrid record.

      This method can be overridden to provide custom drop behaviors, and is a more appropriate override point than the lower level `Canvas.drop()` handler.

      If this is a self-drop, records are simply reordered.

      For a drop from another widget, `ListGrid.transferDragData()` is called, which depending on the `dragDataAction` specified on the source widget, may either remove the source records from the original list (`dragDataAction:"move"`) or just provide a copy to this list (`dragDataAction:"copy"`).

      If this grid is databound, the new records will be added to the dataset by calling `DataSource.addData()`. Further, if the new records were dragged from another databound component, and `addDropValues` is true, `getDropValues` will be called for every item being dropped.

      For multi-record drops, Queuing is automatically used to combine all DSRequests into a single HTTP Request (see QuickStart Guide, Server Framework chapter). This allows the server to persist all changes caused by the drop in a single transaction (and this is automatically done when using the built-in server DataSources with Power Edition and above).

      Note that reordering records has no effect on a databound grid.

      The newly dropped data is then selected automatically.

      If these default persistence behaviors are undesirable, Call `RecordDropEvent.cancel()` from within `onRecordDrop(com.smartgwt.client.widgets.grid.events.RecordDropEvent)` to cancel them, then and implement your own behavior, typically by using grid.updateData() or addData() to add new records.

      NOTE: the records you receive in this event are the actual Records from the source component. Use `DataSource.copyRecords()` to create a copy before modifying the records or using them with updateData() or addData().

      NOTE: for a drop beyond the last visible record of a ListGrid, `targetRecord` will be null and the `index` will be one higher than the last record. This includes a drop into an empty ListGrid, where `index` will be 0.

      Parameters:
        `event` - the event