Power Apps中当两个DataCardValue值为NON-STOCK时禁用操作按钮
解决Power Apps按钮禁用问题:当两个字段均为"NON-STOCK"时禁用操作按钮
嘿,我来帮你搞定这个Power Apps的按钮禁用需求!首先明确:推荐直接通过按钮的DisplayMode属性来实现,而不是OnSelect函数——因为DisplayMode是Power Apps专门用来控制控件是否可用的属性,逻辑更直观,也能从UI层面直接限制操作,比在点击时判断要靠谱得多。
你之前的公式为啥失败?
先帮你捋捋之前踩的坑:
- Power Apps里的逻辑与运算符是
&&,不是And(虽然And也能运行,但行业惯例更常用&&) in运算符是用来判断文本是否包含子串,或者元素是否在集合中,这里你需要的是精确相等判断,用=才是正确的- 不需要用
Value()转换,因为DataCard的Text属性本身就是文本类型,强行转数值只会导致布尔值和文本类型不匹配的错误
正确的实现步骤
- 选中你要禁用的操作按钮
- 在右侧属性面板找到
DisplayMode属性(或者直接在公式栏输入) - 粘贴以下公式:
If( DataCardValue6.Text = "NON-STOCK" && DataCardValue7.Text = "NON-STOCK", DisplayMode.Disabled, DisplayMode.Edit )
这个公式的逻辑很清晰:当两个输入框的文本都精确等于"NON-STOCK"时,按钮变为禁用状态;否则保持可编辑(可点击)状态。
进阶优化:直接绑定SharePoint字段值
如果DataCardValue6是绑定到SharePoint列表的AMC_ItemType字段,你也可以直接用数据源的字段值来判断,这样能避免手动修改控件文本导致的判断误差,公式改成:
If( ThisItem.AMC_ItemType = "NON-STOCK" && DataCardValue7.Text = "NON-STOCK", DisplayMode.Disabled, DisplayMode.Edit )
为啥不推荐用OnSelect?
OnSelect是按钮被点击时才触发的逻辑,就算按钮看起来是禁用的,极端情况下可能还是会被触发(比如通过代码强制调用)。而DisplayMode是从控件底层控制可用性,不仅按钮会变灰,用户也根本点不了,体验和安全性都更好。
内容的提问来源于stack exchange,提问作者smills777
相关产品推荐
相关产品推荐

