如何在CRM子网格上异步显示"新建"按钮?



我需要隐藏子网格上的"添加新"按钮,直到满足某些条件。 调用Xrm.Page.ui.refreshRibbon将触发我的启用规则中定义的 JS 函数,但我无法显示+按钮。

这是不支持的,还是有一些方法可以让它工作?

似乎你必须做一些额外的技巧。

刷新子网格命令栏

您会发现,加载表单时,如果您在启用规则中引用的属性中有值,则"新增"按钮将可见。但是,如果值发生更改,则子网格命令栏不会自动刷新以反映新状态。在子网格中添加或删除行时,命令栏将刷新 - 但在这种情况下没有多大用处。

可以使用Xrm.Page.ui.refreshRibbon()刷新主窗体命令栏,但这不会刷新子网格命令栏。相反,我们可以将 onchange 事件添加到 VaueRule 中使用的字段并调用:

Xrm.Page.data.save();

这将刷新子网格并重新评估任何启用规则,但它也会保存任何其他脏属性,因此如果您没有启用自动保存,则应谨慎使用。

参考: https://ribbonworkbench.uservoice.com/knowledgebase/articles/489288-show-or-hide-the-add-new-button-on-form-sub-grid

Arun Vinoth 确实找到了一篇很棒的文章来描述这个问题,但实际上我发现只需在网格本身上调用刷新即可。

请务必注意,这不会重新运行启用规则,只会在状态发生更改时显示按钮。

最新更新