使用JavaScript设置可编辑子网格为只读
422 字
2 分钟
使用JavaScript设置可编辑子网格为只读
在 Dynamics 365 模型驱动应用(Model-driven App) 中,可编辑子网格(Editable Subgrid)为数据录入提供了非常高效的体验
但在某些业务场景下,我们可能希望子网格整体可编辑,但部分列只读,或在特定时机(如选中行后),临时禁止编辑
遗憾的是Dynamics 365并没有提供开箱即用的方式来控制可编辑子网格中单个列的只读状态。因此,通常需要通过 JavaScript Client API 在子网格行被选中时动态控制字段的可编辑性
本文将介绍两种常见实现方式:
- 将子网格中所有列设置为只读
- 仅将指定列设置为只读
全部列设置为只读
下面的示例中,在子网格行被选中时,遍历当前行的所有字段,并将其对应的控件统一设置为只读。
Disabled_XXXXX_SubGridOnSelect: function (ExecutionContext) { let that = this; let objFormContext = ExecutionContext.getFormContext(); let entObject = objFormContext.data.entity; entObject.attributes.forEach(function (attribute) { let allColumnControl = attribute.controls.get(0); allColumnControl.setDisabled(true); });}指定列设置为只读
如果只需要控制部分字段,可以根据字段的 Logical Name 进行判断
Disabled_XXXXX_SubGridOnSelect: function (ExecutionContext) { let objFormContext = ExecutionContext.getFormContext(); let entObject = objFormContext.data.entity; entObject.attributes.forEach(function (attribute) { let columnName = attribute.getName(); if ( columnName == "your field name 1" || columnName == "your field name 2" || columnName == "your field name 3" || columnName == "your field name 4" || columnName == "your field name 5" || columnName == "your field name 6") { attribute.controls.get(0).setDisabled(true); } });}事件绑定方式
打开目标表单,选中 可编辑子网格,为其绑定上述 JavaScript 方法。
需要注意两点:
- 事件选择:On Record Select
- 勾选:将执行上下文作为第一个参数传递

(完)
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
使用JavaScript设置可编辑子网格为只读
https://mgrowup.com/posts/dynamics365/set-editable-subgrid-columns-to-read-only/相关文章智能推荐
1
Dynamics 365 事件框架、事件执行管道
Dynamics 365Dynamics 365 插件运行的“流水线”到底长什么样?
2
使用API调式工具访问Dynamics 365
Dynamics 365本文详细介绍如何使用API测试工具访问Dynamics 365,包括注册Azure应用、获取ClientId和ClientSecret、配置身份验证和API权限,以及在Postman中设置环境变量和获取访问令牌
3
为Dynamics 365添加系统更新日志页面(自定义)
Dynamics 365本文介绍在通过自定义开发为 Dynamics 365 添加系统更新日志画面,通过新建“系统更新日志”与“日志明细”实体,并结合 HTML、Vue3、Element Plus,实现按日期汇总并可视化展示系统更新内容。
4
使用 ClientSecret 授权方式 在 .NET 控制台应用中连接 Dynamics 365
Dynamics 365本文演示如何使用ClientSecret授权方式,在Dot NET Framework控制台应用中连接Dynamics 365
5
使用 Office365 授权方式 在 .NET 控制台应用中连接 Dynamics 365
Dynamics 365本文演示如何使用Office365授权方式,在Dot NET Framework控制台应用中连接Dynamics 365
随机文章随机推荐
