Power Platform模型驱动应用:表单字段按选择值动态显隐问题
Power Platform模型驱动应用表单字段显示隐藏问题修复
原脚本存在的问题
- 字段值判断错误:Dataverse选项集字段的
getValue()返回底层数字值(Yes对应1,No对应0),而非显示文本"Yes"/"No",原脚本的字符串判断永远不成立。 - 逻辑完全倒置:需求是默认(Yes/1)隐藏字段,No/0时显示,原脚本逻辑正好相反。
- 遗漏目标字段:未处理
lm_drafttoggle自身的显示隐藏,只操作了另外两个字段。 - 缺少实时触发:仅在表单加载和保存时执行逻辑,无法响应用户修改toggle的实时操作。
修正后的代码
// 表单加载时初始化字段显示状态 function onFormLoad(executionContext) { var formContext = executionContext.getFormContext(); updateFieldVisibility(formContext); } // 当lm_drafttoggle值变更时实时触发 function onToggleChange(executionContext) { var formContext = executionContext.getFormContext(); updateFieldVisibility(formContext); } // 统一处理字段显示隐藏逻辑 function updateFieldVisibility(formContext) { var toggleValue = formContext.getAttribute("lm_drafttoggle").getValue(); // 需求:值为1(Yes)时隐藏,值为0(No)时显示 var isVisible = toggleValue === 0; // 操作三个目标字段的显示状态 formContext.getControl("lm_drafttoggle").setVisible(isVisible); formContext.getControl("lm_technicalapprover").setVisible(isVisible); formContext.getControl("lm_cabapprover").setVisible(isVisible); }
配置步骤
- 打开表单编辑器,切换到事件选项卡。
- 给表单添加
onFormLoad事件,绑定上述onFormLoad函数。 - 找到
lm_drafttoggle字段,添加onChange事件,绑定上述onToggleChange函数。 - 保存并发布表单,测试效果。
内容的提问来源于stack exchange,提问作者LostMary
相关产品推荐
相关产品推荐

