# Features

## Content

FlexGrid features cover how the grid freezes, merges, reshapes, filters, summarizes, exports and localizes data. This overview gives a quick snapshot of each feature and when to use it.

***

## Layout and Structure

| Topic | Use Case |
| ----- | -------- |
| [Cell Freezing](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/cell_freezing) | Use to keep rows and columns visible while users scroll large data sets, through `FrozenRows` and `FrozenColumns`. Frozen cells stay editable and selectable. |
| [Column Freezing](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/Column-Freezing) | Use to freeze columns on the left (`FrozenColumns`) or right (`FrozenRightColumns`), including a custom Pin/Unpin item in the column menu. |
| [Cell Merging](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/cell_merging) | Use to merge adjacent cells with the same value across rows, columns or headers, through `AllowMerging` and the `GridAllowMerging` values. |
| [Drag Drop](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/flexgriddragdrop) | Use to let users reorder columns, rows or both, through `AllowDragging`. |
| [Transposed Grid](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/flexgrid-transposed-grid) | Use to show each item as a column and each property as a row, through `TransposedGridBehavior`. This suits wide records. |
| [TreeGrid](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/treegrid) | Use to show hierarchical data, such as tasks and sub-tasks, as an expandable tree through `ChildItemsPath`. It also covers expand modes, tree lines, node icons, and sorting and filtering in trees. |

## Sorting, Filtering and Summarizing

| Topic | Use Case |
| ----- | -------- |
| [Sorting](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/sorting) | Use to sort by clicking column headers, on the whole grid or per column, through `AllowSorting`. Ctrl or Shift enables multi-column sorting. |
| [Custom Sort Icon](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/sorting/custom_sort_icon) | Use to change the sort icon’s position (`SortIconPosition`) and appearance (`SortAscendingIconTemplate`, `SortDescendingIconTemplate`). |
| @cols=1:@rows=6:[Filtering](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/filtering) | @cols=1:@rows=6:Start here for an introduction to filtering, which links to Full Text Filtering and Filter Row. |
|
|
|
|
|
| [Grouping](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/grouping) | Use `GroupAsync` on a `C1DataCollection` to group rows, and column `Aggregate` values (Sum, Average, Count and others) for group summaries. |
| [Summary Row](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/flexgrid-summary-row) | Use `GridSummaryRow` to show totals and other aggregates as a footer row, or position group summaries with `GroupSummariesPosition`. |
| [Paging](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/paging) | Use `C1PagedDataCollection` with the `C1DataPager` control to split data into pages. It needs the `C1.Blazor.DataPager` NuGet package. |

## Interaction and Menus

| Topic | Use Case |
| ----- | -------- |
| [Clipboard Support](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/flexgrid-clipboard-support) | Use for cut, copy and paste with keyboard shortcuts, and choose whether headers are copied through `ClipboardCopyMode`. Copying does not support merged cells. |
| [Selection Menu](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/flexgrid-selection-menu) | Use the built-in right-click menu for clipboard and selection actions. It changes with the selection mode, and `ShowSelectionMenu` turns it off. |
| [Context Menu](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/context-menu) | Use `ShowSelectionMenu="false"` to show the browser’s native context menu instead. It applies to the whole grid and cannot be scoped to cells. |

## Formatting, Output and Localization

| Topic | Use Case |
| ----- | -------- |
| [Conditional Formatting](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/conditional_formatting) | Use a custom `GridCellFactory` (`PrepareCellStyle`) to highlight cells based on their values, for example temperature ranges. |
| [Exporting Data](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/exporting_data) | Use `Save` for HTML, CSV and TXT files, and `SaveAsync` for Excel (XLSX) on server-side Blazor, preserving freezing, grouping, merging and styles. |
| [Localization](/componentone/docs/blazor/online-blazor/controls/flexgrid/features/localization) | Use culture-specific `.resx` files embedded in your app to add or override translations, including strings from related ComponentOne assemblies. |
