# DkGrid

## DkGrid

- [Overview](https://docs.dikesoft.com/overview.md): To help you understand every section, we have created a live demo for each DkGrid feature.
- [Quick Start Tutorial](https://docs.dikesoft.com/getting-started/quick-start-tutorial.md): This section summarizes all the essentials you need to know to start with DkGrid. Here you can find how to create a DkGrid instance, add some columns, and enable some features.
- [Grid Structure](https://docs.dikesoft.com/fundamentals/grid-structure.md): This section describes the main parts of a DikeGrid instance and how you can customize this structure.
- [Grid Size](https://docs.dikesoft.com/fundamentals/grid-structure/grid-size.md): You can customize the width and the height of the DikeGrid instance.
- [Header](https://docs.dikesoft.com/fundamentals/grid-structure/header.md): Since the DikeGrid structure definition uses the CSS Grid Layout specification, as a convention, the Header is also called Header Row.
- [Row Filter](https://docs.dikesoft.com/fundamentals/grid-structure/row-filter.md): Since the DikeGrid structure definition uses the CSS Grid Layout specification, as a convention, the Row Filter is also called Row-Filter Row.
- [Rows](https://docs.dikesoft.com/fundamentals/grid-structure/rows.md): Since the DikeGrid structure definition uses the CSS Grid Layout specification, as a convention, every row is also called Content Row.
- [Panels](https://docs.dikesoft.com/fundamentals/grid-structure/panels.md): Panels are containers to accommodate columns.
- [Gutters](https://docs.dikesoft.com/fundamentals/grid-structure/gutters.md): Gutters are the spaces between columns and rows. The DikeGrid definition could or could not draw a line at the center of these spaces.
- [Edition Toolbar](https://docs.dikesoft.com/fundamentals/grid-structure/edition-toolbar.md): Since the DikeGrid structure definition uses the CSS Grid Layout specification, as a convention, the Edition Toolbar is also known as Edition Toolbar Row.
- [Paginator](https://docs.dikesoft.com/fundamentals/grid-structure/paginator.md): Since the DikeGrid structure definition uses the CSS Grid Layout specification, as a convention, the paginator is also called the Pagination Row.
- [Borders](https://docs.dikesoft.com/fundamentals/grid-structure/borders.md): The DikeGrid itself draws a border through its primary container. However, Borders concept is essential for column moving.
- [Column Context Menu](https://docs.dikesoft.com/fundamentals/grid-structure/column-context-menu.md): Every column displays a context menu, and this has a default size. You can customize the width and height of this context menu or avoid displaying it.
- [Waiting Indicator](https://docs.dikesoft.com/fundamentals/grid-structure/waiting-indicator.md): When the DikeGrid is waiting or processing rows of data, it shows a message. You can customize this message.
- [DataSource](https://docs.dikesoft.com/fundamentals/datasource.md): This section describes how you can provide a data set and how a DikeGrid instance treats that data set.
- [In-Memory DataSource](https://docs.dikesoft.com/fundamentals/datasource/in-memory-datasource.md): We name an In-Memory data source when you provide your data set in one go.
- [Custom DataSource](https://docs.dikesoft.com/fundamentals/datasource/custom-datasource.md): A custom data source is an instance class that extends from the DataSource abstract class.
- [Theming](https://docs.dikesoft.com/fundamentals/theming.md): This section describes how to use your themes or use a pre-built one.
- [Column Definitions](https://docs.dikesoft.com/columns/column-definitions.md): This section describes how to create columns in the component's HTML definition or in the TypeScript class file.
- [Column Grouping](https://docs.dikesoft.com/columns/column-grouping.md): This section describes creating column groups in the component's HTML definition or the TypeScript class file.
- [Column Sizing](https://docs.dikesoft.com/columns/column-sizing.md): After setting the initial column size, this section describes how to change the column width dynamically.
- [Column Moving](https://docs.dikesoft.com/columns/column-moving.md): This section describes how to make a column draggable and which type of movements you can do.
- [Column Pinning](https://docs.dikesoft.com/columns/column-pinning.md): Once you have defined a column as draggable, you can make it non-draggable at runtime.
- [Row Sorting](https://docs.dikesoft.com/rows/row-sorting.md): This section describes how you can sort the DikeGrid rows.
- [Row Selection](https://docs.dikesoft.com/rows/row-selection.md): The user can select one or all rows from the data source. This section describes how you can configure this feature.
- [Row Grouping](https://docs.dikesoft.com/rows/row-grouping.md): This section describes how the user can display rows grouped by columns.
- [Row Pagination](https://docs.dikesoft.com/rows/row-pagination.md): This section describes how to display a fixed amount of rows, in other words, page by page.
- [Column Filters](https://docs.dikesoft.com/filtering/column-filters.md): This section describes how to enable filtering for a column and what events are involved.
- [Filter types](https://docs.dikesoft.com/filtering/filter-types.md): This section describes the types of filters and how you can add or overwrite conditions for each of them.
- [In-line Filters](https://docs.dikesoft.com/filtering/in-line-filters.md): This section describes how you can enable filtering for all the displayed columns.
- [Row Edition](https://docs.dikesoft.com/editing/row-edition.md): This section describes how to enable the edition operations and perform the edition per row.
- [Edition templates](https://docs.dikesoft.com/editing/edition-templates.md): This section describes how to provide custom templates for editing the column values.
- [Edition validation](https://docs.dikesoft.com/editing/edition-validation.md): This section describes how you can validate user input and show validation messages.
- [Multiple rows edition](https://docs.dikesoft.com/editing/multiple-rows-edition.md): This section describes how to update, delete or restore more than one row at a time.
- [DkGrid API](https://docs.dikesoft.com/reference/dkgrid-api.md)
- [DkGridColumnDef](https://docs.dikesoft.com/reference/dkgrid-api/dkgridcolumndef.md): You can access this instance through the property named columnDef of the DkGridComponent, or by listening to the DkGridComponent event called gridColumnDefInstance.
- [DkGridSorting](https://docs.dikesoft.com/reference/dkgrid-api/dkgridsorting.md): You can access this instance through the property named sorting of the DkGridComponent.
- [DkGridSelection](https://docs.dikesoft.com/reference/dkgrid-api/dkgridselection.md): You can access this instance through the property named selection of the DkGridComponent.
- [DkGridRowGrouping](https://docs.dikesoft.com/reference/dkgrid-api/dkgridrowgrouping.md): You can access this instance through the property named rowGrouping of the DkGridComponent.
- [DkGridPagination](https://docs.dikesoft.com/reference/dkgrid-api/dkgridpagination.md): You can access this instance through the property named pagination of the DkGridComponent.
- [DkGridWaitingIndicator](https://docs.dikesoft.com/reference/dkgrid-api/dkgridwaitingindicator.md): You can access this instance through the property called waitingIndicator of the DkGridComponent.
- [DkGridFactoryDataSource](https://docs.dikesoft.com/reference/dkgrid-api/dkgridfactorydatasource.md): You can access this instance through the property named dataSourceFactory of the DkGridComponent.
- [DkGridFilter](https://docs.dikesoft.com/reference/dkgrid-api/dkgridfilter.md): You can access this instance through the property named filter of the DkGridComponent.
- [DkGridEdition](https://docs.dikesoft.com/reference/dkgrid-api/dkgridedition.md): You can access this instance through the property named edition of the DkGridComponent.
- [Components](https://docs.dikesoft.com/reference/components.md)
- [DkGridComponent](https://docs.dikesoft.com/reference/components/dkgridcomponent.md): This class creates a DkGrid instance through the HTML definition.
- [DkGridColumnComponent](https://docs.dikesoft.com/reference/components/dkgridcolumncomponent.md): This class creates a column, either a data column or a group column, using the HTML definition.
- [Classes](https://docs.dikesoft.com/reference/classes.md)
- [DataSource](https://docs.dikesoft.com/reference/classes/datasource.md): \<T> represents the object's shape coming from the data source.
- [Columns](https://docs.dikesoft.com/reference/classes/columns.md): \<T> represents the object's shape coming from the data source. \<R> represents the column data type: string, number, Date, or boolean.
- [Rows](https://docs.dikesoft.com/reference/classes/rows.md): \<T> represents the object's shape coming from the data source.
- [Filtering](https://docs.dikesoft.com/reference/classes/filtering.md)
- [Editing](https://docs.dikesoft.com/reference/classes/editing.md)
- [Interfaces](https://docs.dikesoft.com/reference/interfaces.md)
- [Columns](https://docs.dikesoft.com/reference/interfaces/columns.md)
- [Sorting](https://docs.dikesoft.com/reference/interfaces/sorting.md): \<T> represents the object's shape coming from the data source.
- [Row Grouping](https://docs.dikesoft.com/reference/interfaces/row-grouping.md): \<T> represents the object's shape coming from the data source.
- [Filtering](https://docs.dikesoft.com/reference/interfaces/filtering.md): \<T> represents the object's shape coming from the data source. \<R> represents the column data type: string, number, Date, or boolean.
- [Editing](https://docs.dikesoft.com/reference/interfaces/editing.md): \<T> represents the object's shape coming from the data source.
- [Injection Tokens](https://docs.dikesoft.com/reference/injection-tokens.md)
- [Grid Structure](https://docs.dikesoft.com/reference/injection-tokens/grid-structure.md): The following Injection Tokens apply to the Grid Structure.
- [Filtering](https://docs.dikesoft.com/reference/injection-tokens/filtering.md): The following Injection Tokens apply to the Filtering module.
- [Editing](https://docs.dikesoft.com/reference/injection-tokens/editing.md): The following Injection Tokens apply to the Editing module.
- [Theming](https://docs.dikesoft.com/reference/injection-tokens/theming.md): The following Injection Tokens apply to Theming
- [Type aliases](https://docs.dikesoft.com/reference/type-aliases.md)
- [DataSource](https://docs.dikesoft.com/reference/type-aliases/datasource.md): \<T> represents the object's shape coming from the data source.
- [Columns](https://docs.dikesoft.com/reference/type-aliases/columns.md): \<T> represents the object's shape coming from the data source. \<R> represents the column data type: string, number, Date, or boolean.
- [Selection](https://docs.dikesoft.com/reference/type-aliases/selection.md): \<T> represents the object's shape coming from the data source. \<R> represents the column data type: string, number, Date, or boolean.
- [Filtering](https://docs.dikesoft.com/reference/type-aliases/filtering.md): \<T> represents the object's shape coming from the data source. \<R> represents the column data type: string, number, Date, or boolean.
- [Editing](https://docs.dikesoft.com/reference/type-aliases/editing.md)
- [Type Guards](https://docs.dikesoft.com/reference/type-guards.md): \<T> represents the object's shape coming from the data source. \<R> represents the column data type: string, number, Date, or boolean.
