我正在浏览办公结构文档,似乎有关于如何设置DetailsList中项目/内容样式的明确信息(https://developer.microsoft.com/en-us/fabric#/components/detailslist/customitemcolumns有一个示例),但是没有有关如何设置列标题的信息(还是有可能)。
这似乎是一个很常见的用例(我试图将列标题居中而不是使其对齐并使其变大),所以不确定我是否只是缺少一些东西?
答案 0 :(得分:2)
自定义列标题的一种方法是通过onRenderDetailsHeader
事件覆盖标题的呈现,然后使用自定义样式呈现标题工具提示,如下所示
<DetailsList
items={sortedItems as any[]}
setKey="set"
columns={columns}
onRenderDetailsHeader={this.renderDetailsHeader}
/>
private renderDetailsHeader(detailsHeaderProps: IDetailsHeaderProps) {
return (
<DetailsHeader
{...detailsHeaderProps}
onRenderColumnHeaderTooltip={this.renderCustomHeaderTooltip}
/>
);
}
private renderCustomHeaderTooltip(tooltipHostProps: ITooltipHostProps) {
return (
<span
style={{
display: "flex",
fontFamily: "Tahoma",
fontSize: "14px",
justifyContent: "center",
}}
>
{tooltipHostProps.children}
</span>
);
}
答案 1 :(得分:0)
IColumn
接口具有一个名为headerClassName
的属性,可用于设置列标题的样式。示例:
/* CSS */
.headerClass > span {
/* right aligned header should have padding */
padding-right: 15px;
}
.headerClass span {
/* bolder font */
font-weight: 900;
/* Right Align the column header */
justify-content: flex-end;
text-align: right;
/* green color */
color: green;
/* background color */
background: pink;
}
//JSX
const columns = [
{
key: 'column1',
name: 'Name',
fieldName: 'name',
minWidth: 100,
maxWidth: 200,
isResizable: true,
heaerClassName: 'headerClass',
},
{
key: 'column2',
name: 'Value',
fieldName: 'value',
minWidth: 100,
maxWidth: 200,
isResizable: true,
},
];
<DetailsList
items={items}
columns={columns}
setKey='set'
/>
答案 2 :(得分:0)
您可以使用 IDetailsColumnStyles 界面设置列标题的样式。
示例:
...
const headerStyle: Partial<IDetailsColumnStyles> = {
cellTitle: {
color: "#c00"
}
}
const columns: IColumn[] = [
{ styles: headerStyle, key: 'name', name: 'Name', fieldName: 'name', minWidth: 120 },
...
查看 IDetailsColumnStyles 的定义,以了解可以设置样式的方式。