【问题标题】:How to Asynchronously Show a Create New Button On a CRM Sub Grid?如何在 CRM 子网格上异步显示创建新按钮?
【发布时间】:2017-08-10 02:16:40
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    刷新子网格命令栏

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

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

    Xrm.Page.data.save();
    

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • @ArunVinoth 是的,我也学到了一些新东西。还很高兴使用不允许同步加载模块的 requireJS 来处理这个问题。
      猜你喜欢
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多