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

时间:2017-08-10 02:16:41

标签: dynamics-crm dynamics-crm-online dynamics-365 dynamics-crm-365 crm-ribbon-workbench

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

这是不受支持的,还是有一些方法可以让它发挥作用?

2 个答案:

答案 0 :(得分:1)

好像你必须做一些额外的伎俩。

  

刷新子网格命令栏

     

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

     

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

Xrm.Page.data.save();
  

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

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

答案 1 :(得分:1)

Arun Vinoth确实找到了一篇很好的文章来描述这个问题,但实际上我发现只是在网格上调用refresh就是实际需要的。

重要的是要注意,这不会重新运行启用规则,只是在状态发生变化时显示按钮。