Any way I can make the Column headers of my @fluentui/react "DetailsList" always show at the top when scrolling down?
Is there another @fluentui/react that does it?
Thank you
Any way I can make the Column headers of my @fluentui/react "DetailsList" always show at the top when scrolling down?
Is there another @fluentui/react that does it?
Thank you
This is now possible with a Sticky control, and a ScrollablePane.
Information from here: https://developer.microsoft.com/en-us/fluentui#/controls/web/scrollablepane
First, you'll need to define a ScrollablePane around your list, and provide a custom header renderer.
<ScrollablePane scrollbarVisibility={ScrollbarVisibility.auto}>
<MarqueeSelection selection={this._selection}
isDraggingConstrainedToRoot={true} >
<DetailsList compact={true} items={items} columns={this._columns}
selectionMode={SelectionMode.multiple}
selection={this._selection}
selectionPreservedOnEmptyClick={true}
onRenderDetailsHeader={this.renderFixedDetailsHeader} />
</MarqueeSelection>
</SrollablePane>
Then you'll need to provide a header renderer (onRenderDetailsHeader), like this for example
private renderFixedDetailsHeader: IRenderFunction<IDetailsHeaderProps> = (props, defaultRender) => {
if (!props) {
return null;
}
const onRenderColumnHeaderTooltip: IRenderFunction<IDetailsColumnRenderTooltipProps> =
tooltipHostProps => (
<TooltipHost {...tooltipHostProps} />
);
return (
<Sticky stickyPosition={StickyPositionType.Header} isScrollSynced>
{defaultRender!({
...props,
onRenderColumnHeaderTooltip,
})}
</Sticky>
);
}
Hey Presto!