Table Compound component for structured tabular data with semantic HTML.
The Table component is a compound component that renders semantic HTML tables. Each sub-component (TableHeader, TableBody, TableRow, TableHead, TableCell) accepts ChildContent and an optional Class parameter merged via Shell.Cn().
< Table >
< TableHeader >
< TableRow >
< TableHead >Name</ TableHead >
< TableHead >Email</ TableHead >
< TableHead >Role</ TableHead >
</ TableRow >
</ TableHeader >
< TableBody >
< TableRow >
< TableCell >John Doe</ TableCell >
< TableCell >john@example.com</ TableCell >
< TableCell >Admin</ TableCell >
</ TableRow >
< TableRow >
< TableCell >Jane Smith</ TableCell >
< TableCell >jane@example.com</ TableCell >
< TableCell >User</ TableCell >
</ TableRow >
</ TableBody >
</ Table >
< Table >
< TableHeader >
< TableRow >
< TableHead >Name</ TableHead >
< TableHead >Email</ TableHead >
< TableHead >Role</ TableHead >
</ TableRow >
</ TableHeader >
< TableBody >
@foreach ( var user in users)
{
< TableRow >
< TableCell > @ user.Name</ TableCell >
< TableCell > @ user.Email</ TableCell >
< TableCell >
< Badge Variant = "BadgeVariant.Secondary" > @ user.Role</ Badge >
</ TableCell >
</ TableRow >
}
</ TableBody >
</ Table >
@code {
private List < UserModel > users = new ()
{
new () { Name = "Alice Johnson" , Email = "alice@example.com" , Role = "Admin" },
new () { Name = "Bob Wilson" , Email = "bob@example.com" , Role = "User" }
};
private class UserModel
{
public string Name { get ; set ; } = "" ;
public string Email { get ; set ; } = "" ;
public string Role { get ; set ; } = "" ;
}
}
< Table Class = "w-full" >
< TableHeader >
< TableRow >
< TableHead >Name</ TableHead >
< TableHead >Status</ TableHead >
< TableHead Class = "text-right" >Actions</ TableHead >
</ TableRow >
</ TableHeader >
< TableBody >
< TableRow >
< TableCell >Alice Johnson</ TableCell >
< TableCell >< Badge >Active</ Badge ></ TableCell >
< TableCell Class = "text-right" >
< Button Variant = "ButtonVariant.Outline" Size = "ButtonSize.Sm" >Edit</ Button >
</ TableCell >
</ TableRow >
</ TableBody >
</ Table >
< div class = "overflow-x-auto" >
< Table >
<!-- wide table content -->
</ Table >
</ div >
Parameter Type Default Description ChildContentRenderFragment— Table header and body Classstring?nullAdditional CSS classes
Parameter Type Default Description ChildContentRenderFragment— Header rows Classstring?nullAdditional CSS classes
Parameter Type Default Description ChildContentRenderFragment— Data rows Classstring?nullAdditional CSS classes
Parameter Type Default Description ChildContentRenderFragment— Cells within the row Classstring?nullAdditional CSS classes
Parameter Type Default Description ChildContentRenderFragment— Header cell content Classstring?nullAdditional CSS classes
Parameter Type Default Description ChildContentRenderFragment— Data cell content Classstring?nullAdditional CSS classes
Renders semantic <table>, <thead>, <tbody>, <tr>, <th>, and <td> elements.
Screen readers can navigate by row and column.
Use <TableHead> for column headers so assistive technology identifies them correctly.