PowerApps下拉菜单默认项匹配对应选项的IF语句配置问题
故障原因
PowerApps下拉控件的Default属性必须返回与Items集合结构完全一致的单条记录,才能完成选项匹配。你当前配置返回的是字符串类型的"1"/"2"/"3",和下拉选项的{Text: 文本值, Val: 数值}结构不匹配,因此无法自动选中对应项。另外你给数值加了引号转成文本,和选项里Val的数字类型也存在类型不匹配问题,进一步导致匹配失败。
正确配置
推荐写法(低维护成本)
直接将下拉控件的Default属性替换为以下代码,无需嵌套多层If判断:
LookUp( Self.Items, Val = ThisItem.ORD_TYPE_SID2 )
该逻辑会直接从下拉控件自身的选项集合中,查找Val值与当前表单记录ORD_TYPE_SID2相等的完整选项记录,结构完全匹配,只要ORD_TYPE_SID2取值为1/2/3就会自动选中对应项,天然覆盖你需要的值为1、3时自动匹配的需求。后续如果调整下拉选项的Text、Val内容,不需要同步修改Default属性的逻辑。
保留If判断的写法
如果你需要明确使用If分支判断,不要返回单独的字符串/数值,必须返回结构和下拉选项完全一致的记录对象,代码如下:
If( ThisItem.ORD_TYPE_SID2 = 1, {Text: "Renouvellement", Val: 1}, ThisItem.ORD_TYPE_SID2 = 2, {Text: "Nouveau Patient", Val: 2}, ThisItem.ORD_TYPE_SID2 = 3, {Text: "Non Renseigner", Val: 3} )
补充说明
- 如果你使用的是支持多选的组合框(ComboBox)控件,上述逻辑需要配置在
DefaultSelectedItems属性下,而非Default属性 - 确认下拉控件的
Value属性选择为Text字段,避免选项显示异常 - 匹配时注意字段类型一致,不要给数字类型的
Val值加引号转为文本,否则会出现类型不匹配导致选中失败
内容的提问来源于stack exchange,提问作者Yoan Tufel
相关产品推荐
相关产品推荐

