CRM 功能区 Workbench - 在子网格上隐藏 + 按钮

CRM Ribbon Workbench - Hide + Button on Sub-Grid

我在一个名为 Issues 的新实体上有一个子网格,该子网格用于另一个名为 Cost Detail 的新实体。 我将它们都加载到我的名为 Issue 的解决方案中,并在功能区 workbench.

中打开了问题

我想要做的是,当您在问题表单上并且可以看到子网格时,我希望能够隐藏显示的 + 按钮。但是,当我在功能区 workbench 中隐藏此按钮时,它还会在 'Associated View' 中隐藏添加新按钮,因此无法添加任何记录。

如何才能只隐藏子网格上的 + 按钮而不隐藏其他视图?

编辑: 为了隐藏添加按钮,您需要取消对用户所在角色的创建权限,或者您可以像这样进行黑客攻击(不受支持):

function hideAddButton(){
    var addButton = $('#NameOfGrid_addImageButton');
    if(addButton.size())
        addButton.hide();
    else
        setTimeout(hideAddButton, 1000);//checks every second to see if the button exists yet
}

并在表单加载时调用 hideAddButton 函数

我找到了一个答案。如果您有一个对该实体唯一的字段,那么您可以使用简单的 javascript 代码来完成。
以下是功能区 workbench 中必须遵循的步骤:

  1. 右键单击按钮并自定义按钮。
  2. 添加启用规则,在步骤部分添加自定义 Javascript 规则,其中包含您的库和函数名称,请确保默认为真。 这必须在您的 javascirpt 库中:

function hideAddNew(){
 if(Xrm.Page.getAttribute("yourField")){
  return false;
 }
 else {
  return true;
 }
}

  1. 添加包含我们创建的启用规则的命令。
  2. 将命令添加到按钮。

就是这样。我测试它,它正在工作。