Master-Detail
Expand a row to render any component or template underneath it — *ogeDetailTemplate receives the parent row with full typing.
ogeDetailTemplate detailRowHeight treegrid
typed context
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { OgeColumn, OgeDetailTemplate, OgeGrid } from '@oge-ui/grid';
@Component({
selector: 'demo-root',
imports: [OgeColumn, OgeDetailTemplate, OgeGrid],
changeDetection: ChangeDetectionStrategy.OnPush,
template: `
<oge-grid [data]="employees" keyField="id">
<oge-column field="id" caption="Id" [width]="70" dataType="number" />
<oge-column field="firstName" caption="First Name" />
<!-- "of: employees" only feeds type inference — "employee" is fully typed -->
<div *ogeDetailTemplate="let employee; of: employees" class="grid grid-cols-3 gap-4">
<div>{{ employee.firstName }} {{ employee.lastName }}</div>
<div>{{ employee.department }}</div>
<div>{{ employee.city }}</div>
</div>
</oge-grid>
`,
})
export class Demo {
readonly employees = [
{ id: 1, firstName: 'Ali', lastName: 'Yılmaz', department: 'Engineering', city: 'İstanbul', salary: 8400, hireDate: '2019-03-11' },
{ id: 2, firstName: 'Ayşe', lastName: 'Kaya', department: 'Sales', city: 'Ankara', salary: 7200, hireDate: '2020-07-02' },
{ id: 3, firstName: 'Mehmet', lastName: 'Demir', department: 'Engineering', city: 'İzmir', salary: 9100, hireDate: '2018-01-23' },
{ id: 4, firstName: 'Zeynep', lastName: 'Şahin', department: 'Finance', city: 'İstanbul', salary: 6800, hireDate: '2021-11-15' },
{ id: 5, firstName: 'Emre', lastName: 'Çelik', department: 'Support', city: 'Bursa', salary: 5400, hireDate: '2022-05-09' },
];
}Notes
- The detail area renders any template or component — nested grids, forms, charts.
- Detail rows work together with grouping, selection and virtual scrolling; in virtual mode set
detailRowHeightso the scrollbar stays accurate. - Expansion state is client-side only; expanding a row never refetches data.
- The grid switches its ARIA role to
treegridautomatically when detail rows are enabled.