如何在PowerApps中为SharePoint数字列添加并显示m²后缀
问题描述
- SharePoint 列表内某数字类型列,通过平台自带的后缀配置功能添加了
m²单位后缀,列表视图中输入数值1000可正常显示为1000 m² - 以该列表为数据源搭建的 PowerApps 自定义表单中,对应字段的 DataCardValue 控件仅显示纯数字
1000,未展示配置的m²后缀 - 该 DataCardValue 控件默认格式配置为
TextFormat.Number - 已尝试以下写法实现
1000 m²显示效果,均未生效:
TextFormat.Number & "m²" Parent.Default, "m²" Text(Parent.Default, "m²") DataCardValue3.Text & "m²"
约束要求:实现带后缀的显示效果,不得额外添加标签控件
解决方案
无效原因说明
- SharePoint 列表配置的列后缀属于列表视图层的独立渲染规则,不会自动同步到 PowerApps 的表单控件
TextFormat.Number格式下,文本输入控件仅支持渲染、输入纯数值内容,直接拼接字符串会被控件的数值校验逻辑过滤- 之前尝试的写法本身存在语法/逻辑错误:
TextFormat.Number & "m²":TextFormat属性仅接受对应枚举值,直接拼接字符串属于非法赋值Parent.Default, "m²":不符合PowerApps函数参数语法规则Text(Parent.Default, "m²"):Text函数第二个参数为数值格式串,传入"m²"属于无效格式符DataCardValue3.Text & "m²":在控件自身的Text属性中引用控件Text值,会触发循环引用错误
具体配置步骤(无需新增任何控件)
- 选中对应字段的数据卡,在右侧属性面板点击「解锁」,解锁高级属性编辑权限
- 选中卡内的 DataCardValue 控件,将其
TextFormat属性从TextFormat.Number修改为TextFormat.Text,解除纯数值渲染限制;如果需要在移动端弹出数字输入键盘,额外把控件的VirtualKeyboardMode属性设置为VirtualKeyboardMode.Numeric即可 - 保持控件的
Default属性为原有Parent.Default不要修改,将控件的Text属性修改为以下公式,实现聚焦编辑时显示纯数字、失焦后自动拼接后缀的效果,避免影响正常输入:If( DataCardValue3.Focused, Text(Parent.Default, "[$-zh-CN]#,##0.##"), If(!IsBlank(Parent.Default), Text(Parent.Default, "[$-zh-CN]#,##0.##") & " m²", "") ) - 选中外层数据卡,将数据卡的
Update属性修改为以下公式,保证提交到SharePoint的是纯数值,不会因为带后缀触发字段类型不匹配报错:
该公式会自动过滤后缀字符串,兼容整数、小数类型的数值提交。Value(Substitute(DataCardValue3.Text, " m²", ""))
内容的提问来源于stack exchange,提问作者Jasco
相关产品推荐
相关产品推荐

