Copy Operations

  • 3 minutes to read

The GridControl allows users to copy data displayed within a grid’s view to the Clipboard.

Copy at Runtime

End users can copy the GridControl’s selected data to the clipboard using the Ctrl+C or Ctrl+Insert shortcuts. This data can then be pasted in another control or application (for example, Microsoft Word or Excel).

The following image shows a copy operation from the GridControl to Excel:

ClipboardData

The copy operations have the following specifics:

  • Only the visible columns’ content is copied.
  • Only the grouping columns’ values are copied for group rows. Hidden rows in collapsed group rows are not included.

Copy in Code

End users can copy only selected rows or cells. However, the GridControl includes the following methods that allow you to copy any visible rows or cells:

Method Description
DataControlBase.CopyRowsToClipboard Copies values displayed within the specified rows/cards to the clipboard.
DataControlBase.CopyRangeToClipboard Copies values displayed within the specified row/card range to the clipboard.
DataControlBase.CopySelectedItemsToClipboard Copies values displayed within the selected rows to the clipboard.
DataControlBase.CopyCurrentItemToClipboard Copies values displayed within the focused row to the clipboard.
DataControlBase.CopyToClipboard Copies values displayed within the selected rows or cells to the clipboard.
TableView.CopyCellsToClipboard Copies values displayed within the specified cells to the clipboard.
TableView.CopySelectedCellsToClipboard Copies values displayed within the selected cells to the clipboard.

The following code sample demonstrates how to copy all visible rows to the clipboard:

<dxg:GridControl Name="grid" />  
<Button Click="OnClick">Copy to Clipboard</Button>
void OnClick(object sender, RoutedEventArgs e) {
   grid.CopyRangeToClipboard(grid.GetRowHandleByVisibleIndex(0), grid.GetRowHandleByVisibleIndex(grid.VisibleRowCount - 1));
}

Copy with Formatting

Row values are copied to the clipboard as text (the default setting):

  • Newline strings (“\r\n”) separate rows in the clipboard.
  • The TAB character (“\t”) separates cell values within a row.

The GridControl allows users to copy data and its conditional format settings (fonts, cell background, and foreground) to the clipboard. When you paste this data in Microsoft Word, Excel, or Outlook, the data retains its original format settings:

ClipboardCopyFormatting

Set the DataViewBase.ClipboardMode property to Formatted to allow users to copy GridControl data with its conditional format settings:

<dxg:GridControl>
   <dxg:GridControl.View>
      <dxg:TableView ClipboardMode="Formatted" />
   </dxg:GridControl.View>
</dxg:GridControl>

Process Copy Operations

API Description
DataControlBase.ClipboardCopyMode Gets or sets how data is copied to the clipboard.
DataViewBase.ClipboardCopyOptions Specifies formats (Csv, Excel, Html, Rtf, Txt) with which the data copied from this Grid Control is compatible.
ColumnBase.CopyValueAsDisplayText Gets or sets whether to copy formatted text or values from the data source.
GridViewBase.ClipboardCopyMaxRowCountInServerMode Gets or sets the maximum number of rows/cards that can be copied to the clipboard in Server Mode.
TableView.ClipboardRowCopying / TreeListView.ClipboardNodeCopying Allow you to apply a format, change the copied data, or skip a data row or header. These events are raised before a data row, group row, column headers, or band headers are copied to the clipboard.
GridControl.CopyingToClipboard Allows you to process copy operations manually. This event is raised before row values are copied to the clipboard by an end user or in code.