在创建和只读表单类型期间使功能区按钮不可用

时间:2014-05-12 20:22:05

标签: javascript dynamics-crm-2011 crm-ribbon-workbench

在CRM 2011中,我正在Case页面上开发一个功能区按钮,用于启动自定义对话框。到目前为止,这种方法运作良好。

现在我正在尝试在创建案例期间以及案例关闭后禁用该按钮。

在customization.xml中,这是我在CommandDefinitions中使用RuleID“Mscrm.DisableDeactivateButton”的原因

<CommandDefinitions>
      <CommandDefinition Id="Cmd_DialogEscalateCase">
        <EnableRules>
          <EnableRule Id="Mscrm.DisableDeactivateButton" /> ----> this is the name of the Rule
        </EnableRules>
        <DisplayRules />
        <Actions>
          <JavaScriptFunction FunctionName="launchModalDialog" Library="$webresource:new_launchDialog">
            <!-- dialogID, typeName, recordId -->
            <StringParameter Value="38d3bc89-ac5f-4097-94df-e9b165177777" />
            <StringParameter Value="incident" />
            <CrmParameter Value="FirstPrimaryItemId" />
          </JavaScriptFunction>
        </Actions>
      </CommandDefinition>

然后这是我的Mscrm.DisableDeactivateButton“定义,它触发了一个名为”DisableDialogBu​​tton“的jscript webresouce:

<EnableRule Id="Mscrm.DisableDeactivateButton">
          <CustomRule FunctionName="DisableDialogButton" Library="$webresource:nwp_launchDialog" Default="true" />
        </EnableRule>

最后,当formType为1(创建)或3(只读)时,他的DisableDialogBu​​tton javascript返回false:

function DisableDialogButton()
{
var formType = Xrm.Page.ui.getFormType();
if (formType = 1 || formType = 3)
{return false;
}
else
{return true;
}
}

但是此功能仍无效。你能指导一下我应该采取的方向吗?

2 个答案:

答案 0 :(得分:0)

尝试使用以下代码:

function DisableDialogButton()
{
    var formType = Xrm.Page.ui.getFormType();
    if (formType == 1 || formType == 3)
    {
        return false;
    }
    else
    {
        return true;
    }
}

答案 1 :(得分:0)

不是您问题的直接答案。但是,对于工具栏中的添加和启用按钮,存在一个良好的CRM解决方案:

Ribbon Workbench vor Dynamics CRM