```json //[doc-seo] { "Description": "Learn how to add expandable row details to data tables using the Extensible Table Row Detail component in ABP Framework Angular UI." } ``` # Extensible Table Row Detail for Angular UI ## Introduction The `` component allows you to add expandable row details to any ``. When users click the expand icon, additional content is revealed below the row. Extensible Table Row Detail Example ## Quick Start ### Step 1. Import the Component Import `ExtensibleTableRowDetailComponent` in your component: ```typescript import { ExtensibleTableComponent, ExtensibleTableRowDetailComponent } from '@abp/ng.components/extensible'; @Component({ // ... imports: [ ExtensibleTableComponent, ExtensibleTableRowDetailComponent, ], }) export class MyComponent { } ``` ### Step 2. Add Row Detail Template Place `` inside `` with an `ng-template`: ```html
{%{{{ row.name }}}%}

ID: {%{{{ row.id }}}%}

Status: {%{{{ row.isActive ? 'Active' : 'Inactive' }}}%}

``` An expand/collapse chevron icon will automatically appear in the first column of each row. ## API ### ExtensibleTableRowDetailComponent | Input | Type | Default | Description | |-------|------|---------|-------------| | `rowHeight` | `string` | `number` | `'100%'` | Height of the expanded row detail area | ### Template Context Variables | Variable | Type | Description | |----------|------|-------------| | `row` | `R` | The current row data object | | `expanded` | `boolean` | Whether the row is currently expanded | ## Usage Examples ### Basic Example Display additional information when a row is expanded: ```html
Details for: {%{{{ row.name }}}%}
{%{{{ row | json }}}%}
``` ### With Custom Row Height Specify a fixed height for the detail area: ```html
Fixed 200px height content
``` ### Using Expanded State Apply conditional styling based on expansion state: ```html

This row is {%{{{ expanded ? 'expanded' : 'collapsed' }}}%}

``` ### With Badges and Localization ```html

{%{{{ 'MyModule::Name' | abpLocalization }}}%}

{%{{{ row.name }}}%}

{%{{{ 'MyModule::Status' | abpLocalization }}}%}

@if (row.isActive) { {%{{{ 'AbpUi::Yes' | abpLocalization }}}%} } @else { {%{{{ 'AbpUi::No' | abpLocalization }}}%} }

``` ## Alternative: Direct Template Input For simpler use cases, you can use the `rowDetailTemplate` input on `` directly: ```html
{%{{{ row.name }}}%}
``` ## Events ### rowDetailToggle The `rowDetailToggle` output emits when a row is expanded or collapsed: ```html ... ``` ```typescript onRowToggle(row: MyDto) { console.log('Row toggled:', row); } ``` ## See Also - [Data Table Column Extensions](data-table-column-extensions.md) - [Entity Action Extensions](entity-action-extensions.md) - [Extensions Overview](extensions-overall.md)