You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于值为Blazor FluentDataGrid单元格设置样式实现热图效果?

Blazor FluentDataGrid 无JS热图实现方案

核心思路:通过单元格模板绑定CSS变量

利用CellTemplate获取每行数据的MyValue,动态设置CSS自定义属性,再用CSS的calc()计算热图颜色,全程无需编写JavaScript。

实现代码

1. 网格组件修改

替换原PropertyColumn的默认渲染逻辑,改用自定义单元格模板:

<FluentDataGrid Items="@Items?.AsQueryable()">
    <PropertyColumn Title="Value">
        <CellTemplate>
            <div class="heatmap-cell" style="--intensity: @context.Item.MyValue">
                @context.Item.MyValue.ToString("F2")
            </div>
        </CellTemplate>
    </PropertyColumn>
</FluentDataGrid>

context.Item直接指向当前行的数据对象,可直接获取MyValue并绑定到--intensity变量。

2. CSS热图样式

基于HSL颜色模型实现渐变效果,以下是从蓝色(低数值)到红色(高数值)的示例:

.heatmap-cell {
    padding: 0.5rem;
    /* 色调从240(蓝色)线性过渡到0(红色),饱和度100%,亮度50% */
    background-color: hsl(calc(240 - (var(--intensity) * 240)), 100%, 50%);
    color: white;
    text-align: right;
}

自定义调整

如果需要其他颜色渐变范围:

  • 绿色到红色:将色调起始值改为120,即calc(120 - (var(--intensity) * 120))
  • 调整颜色柔和度:修改HSL的亮度参数,比如改为60%降低颜色饱和度

内容的提问来源于stack exchange,提问作者SWilliams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 13:24:57