如何用表格中的数据为项目设置颜色?
我想用表格中的数据来给每一项设置颜色,但设计器不允许在颜色属性中使用变量。
即便我尝试在颜色属性中加入条件代码,设计器也要求我使用预定义的字符串(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模板支持对属性如 text、isVisible、以及 $data 的动态值,但与样式相关的枚举属性如 color、size、weight、和 spacing 在渲染时必须保持静态。
你可以参考下面的卡片模板-
1. https://adaptivecards.io/explorer/Table.html
2. https://adaptivecards.io/explorer/TextBlock.html
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。