diff --git a/packages/api-generator/src/locale/en/VDataTable.json b/packages/api-generator/src/locale/en/VDataTable.json index 96c8ef0c5db..df73bcca2a8 100644 --- a/packages/api-generator/src/locale/en/VDataTable.json +++ b/packages/api-generator/src/locale/en/VDataTable.json @@ -18,7 +18,8 @@ "headers": "An array of objects that each describe a header column. See the example below for a definition of all properties.", "headersLength": "Can be used in combination with `hide-default-header` to specify the number of columns in the table to allow expansion rows and loading bar to function properly.", "height": "Set an explicit height of table.", - "hideDefaultHeader": "Hide the default headers.", + "hideDefaultHeader": "Hides the default header.", + "hideDefaultFooter": "Hides the default footer. This has no effect on `v-data-table-virtual`.", "hover": "Adds a hover effects to a table rows.", "itemClass": "Property on supplied `items` that contains item's row class or function that takes an item as an argument and returns the class of corresponding row.", "itemsPerPage": "Changes how many items per page should be visible. Can be used with `.sync` modifier. Setting this prop to `-1` will display all items on the page.", diff --git a/packages/docs/src/pages/en/components/data-tables/basics.md b/packages/docs/src/pages/en/components/data-tables/basics.md index 615f7619ca5..b2075439fca 100644 --- a/packages/docs/src/pages/en/components/data-tables/basics.md +++ b/packages/docs/src/pages/en/components/data-tables/basics.md @@ -140,11 +140,11 @@ The `v-data-table` renders a default footer using the `v-data-footer` component. --> - + #### Selection diff --git a/packages/vuetify/src/components/VDataTable/VDataTable.tsx b/packages/vuetify/src/components/VDataTable/VDataTable.tsx index b2b4fd0d4f6..36ff04e6f59 100644 --- a/packages/vuetify/src/components/VDataTable/VDataTable.tsx +++ b/packages/vuetify/src/components/VDataTable/VDataTable.tsx @@ -73,6 +73,8 @@ export type VDataTableSlots = VDataTableRowsSlots & VDataTableHeadersSlots export const makeDataTableProps = propsFactory({ ...makeVDataTableRowsProps(), + hideDefaultFooter: Boolean, + hideDefaultHeader: Boolean, width: [String, Number], search: String, @@ -240,12 +242,14 @@ export const VDataTable = genericComponent( default: () => slots.default ? slots.default(slotProps.value) : ( <> { slots.colgroup?.(slotProps.value) } - - - + { !props.hideDefaultHeader && ( + + + + )} { slots.thead?.(slotProps.value) } { slots['body.prepend']?.(slotProps.value) } @@ -263,7 +267,7 @@ export const VDataTable = genericComponent( { slots.tfoot?.(slotProps.value) } ), - bottom: () => slots.bottom ? slots.bottom(slotProps.value) : ( + bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && ( <> diff --git a/packages/vuetify/src/components/VDataTable/VDataTableServer.tsx b/packages/vuetify/src/components/VDataTable/VDataTableServer.tsx index 752b48c8cab..72e3496f213 100644 --- a/packages/vuetify/src/components/VDataTable/VDataTableServer.tsx +++ b/packages/vuetify/src/components/VDataTable/VDataTableServer.tsx @@ -165,13 +165,15 @@ export const VDataTableServer = genericComponent slots.default ? slots.default(slotProps.value) : ( <> { slots.colgroup?.(slotProps.value) } - - - + { !props.hideDefaultHeader && ( + + + + )} { slots.thead?.(slotProps.value) } { slots['body.prepend']?.(slotProps.value) } @@ -189,7 +191,7 @@ export const VDataTableServer = genericComponent ), - bottom: () => slots.bottom ? slots.bottom(slotProps.value) : ( + bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && ( <> diff --git a/packages/vuetify/src/components/VDataTable/VDataTableVirtual.tsx b/packages/vuetify/src/components/VDataTable/VDataTableVirtual.tsx index bee0fb23013..ee4364ccf21 100644 --- a/packages/vuetify/src/components/VDataTable/VDataTableVirtual.tsx +++ b/packages/vuetify/src/components/VDataTable/VDataTableVirtual.tsx @@ -203,13 +203,15 @@ export const VDataTableVirtual = genericComponent { slots.colgroup?.(slotProps.value) } - - - + { !props.hideDefaultHeader && ( + + + + )}