如何用表格中的数据为项目设置颜色?

编程语言 2026-07-11

我想用表格中的数据来给每一项设置颜色,但设计器不允许在颜色属性中使用变量。

即便我尝试在颜色属性中加入条件代码,设计器也要求我使用预定义的字符串(Good、Attention、Warning)。

这是Adaptive Card的代码:

{
    "type": "AdaptiveCard",
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.6",
    "body": [
        {
            "type": "TextBlock",
            "text": "${descricao}",
            "wrap": true,
            "id": "id_descricao"
        },
        {
            "type": "ColumnSet",
            "id": "id_dados",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "spacing": "Small",
                    "items": [
                        {
                            "type": "TextBlock",
                            "size": "Small",
                            "$data": "${dados}",
                            "text": "${programa}",
                            "weight": "Bolder" 
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "auto",
                    "spacing": "Small",
                    "items": [
                        {
                            "type": "TextBlock",
                            "size": "Small",
                            "$data": "${dados}",
                            "text": "${valor}",
                            "color": "${cor}"
                        }
                    ]
                }
            ]
        }
    ]
}

这是我想发送的数据:

{
  "descricao": "Color Test:",
  "dados": [
    { "programa": "Test One",  "valor": "Very good",     "cor": "Good" },
    { "programa": "Test Two",  "valor": "Pay attention", "cor": "Warning" },
    { "programa": "Test Tree", "valor": "Error",         "cor": "Attention" }
  ]
}

结果(未上色):

结果

解决方案

在Adaptive Cards中,color 属性不支持数据绑定,必须使用固定的枚举值,例如 "default""accent""good""warning""attention"。即使数据中包含有效的颜色名称,使用像 "color": "${cor}" 这样的模板化值也是无效的。这一限制在包括Microsoft Teams、Microsoft Outlook和 Microsoft Copilot Studio的各个平台上都适用。虽然Adaptive Card模板支持对属性如 textisVisible、以及 $data 的动态值,但与样式相关的枚举属性如 colorsizeweight、和 spacing 在渲染时必须保持静态。

你可以参考下面的卡片模板-
1. https://adaptivecards.io/explorer/Table.html
2. https://adaptivecards.io/explorer/TextBlock.html

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章