关于Adaptive Card中TextBlock无法显示数字数据的技术咨询
这确实是 Adaptive Cards 的默认设计行为,不是你遗漏了什么设置——TextBlock 的 text 属性默认只接受字符串类型的值,当绑定数字类型数据时,不会自动进行类型转换,所以就会显示为空。
解决方法
1. 提前将数字转换为字符串类型
这是最直接的方式,在你的数据源里把数字字段转为字符串,就像你测试的那样:
{ "data":"11111" }
2. 使用 Adaptive Cards 表达式进行类型转换
如果你的渲染环境支持 Adaptive Cards 表达式(比如微软 Bot Framework、Power Apps 等场景),可以直接在 TextBlock 的 text 属性里用表达式把数字转为字符串,修改你的卡片模板:
{ "type": "AdaptiveCard", "version": "1.0", "body": [ { "type": "TextBlock", "text": "{=string(data)}" } ], "$schema": "http://adaptivecards.io/schemas/adaptive-card.json" }
这样即使数据源里的data是数字类型{ "data":11111 },渲染时也会自动转换为字符串并显示出来。
3. 有没有专门支持数字的文本控件?
目前 Adaptive Cards 并没有专门的"数字文本框"控件,所有需要显示文本内容的场景都依赖 TextBlock。不过通过上面的两种方法,完全可以实现数字内容的显示,不需要额外控件。
内容的提问来源于stack exchange,提问作者vilmarci
相关产品推荐
相关产品推荐

