【问题标题】:How to customize the column title style in Details list如何自定义详细列表中的列标题样式
【发布时间】:2020-06-17 06:37:26
【问题描述】:

如何更改详细信息列表中标题单元格的字体大小和填充。我正在使用onRenderDetailsHeader prop 来自定义标题渲染。

private renderDetailsHeader = (detailsHeaderProps: IDetailsHeaderProps) => {
    return (
      <DetailsHeader
        {...detailsHeaderProps}
        onRenderColumnHeaderTooltip={this.renderCustomHeaderTooltip}
      />
    );
  }

private renderCustomHeaderTooltip = (tooltipHostProps: ITooltipHostProps) => {
  return (
    <span
      style={{
        display: "flex",
        fontFamily: "Tahoma",
        fontSize: "10px",
        justifyContent: "left",
        paddingLeft: '0 px'
      }}
    >
      {tooltipHostProps.children}
   </span>
  );
}

Codepen

【问题讨论】:

    标签: office-ui-fabric office-ui-fabric-react fluent-ui


    【解决方案1】:

    在IDetailsHeaderProps['columns'] 或简单的IColumn[] => IColumn 具有“headerClassName”键,您可以在其中为每个列指定必要的样式。

    【讨论】:

      【解决方案2】:

      您可以使用 IDetailsColumnStyles 接口来设置标题单元格的样式。

      例子:

      ...
      
        const headerStyle: Partial<IDetailsColumnStyles> = {
          cellTitle: {
            color: theme.palette.orange,
          }
        }
      
        const columns: IColumn[] = [
          { styles: headerStyle, key: 'name', name: 'Name', fieldName: 'name', minWidth: 100,},
      
      ...
      

      【讨论】:

      • 我们如何设置行的样式? @Phierru
      • 使用 onRenderRow 属性。见下文。
      【解决方案3】:

      样式行:

      ...

      const renderRow: IDetailsListProps['onRenderRow'] = props => {
        const rowStyles: Partial<IDetailsRowStyles> = {
          root: {
            borderBottomColor: theme.semanticColors.buttonBorder,
            fontSize: theme.fonts.medium.fontSize,
          },
          cell: { paddingLeft: 0, },
        }
        if (!props) return null
        return <DetailsRow {...props} styles={rowStyles} />
      }
      
      return (
        <DetailsList
          compact
          items={items}
          columns={columns}
          selectionMode={SelectionMode.none}
          layoutMode={DetailsListLayoutMode.justified}
          constrainMode={ConstrainMode.horizontalConstrained}
          onRenderRow={renderRow}
          onRenderDetailsHeader={renderHeader}
          onRenderItemColumn={renderItemColumn}
          setKey="set"
          ariaLabelForSelectionColumn="Toggle selection"
          ariaLabelForSelectAllCheckbox="Toggle selection for all items"
          checkButtonAriaLabel="Row Checkbox"
        />
      )
      

      ...

      【讨论】:

      • 我们如何像标题一样设置行的样式?我认为onRenderRow 是用于行而不是标题@Phierru
      猜你喜欢
      • 1970-01-01
      • 2019-06-28
      • 2020-05-15
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多