【问题标题】:CRM 2011 Ribbon DisplayRule ValueRule not workingCRM 2011 功能区 DisplayRule ValueRule 不起作用
【发布时间】:2012-09-26 21:53:39
【问题描述】:

我目前正在尝试根据表单上复选框的值显示/隐藏自定义功能区按钮。

我已经设法让我的 XML 与我创建的 <EnableRule> 一起正常工作,但是一旦我尝试使用 <DisplayRule>,无论我在 new_is_trading 字段中输入什么值,相关按钮都会消失。

下面是我的 XML:

        <CommandUIDefinition>
          <Group Id="Mscrm.Form.account.CustomGroup.Group" 
                 Command="Mscrm.Form.account.CustomGroup.Command" 
                 Title="Client Commands" 
                 Sequence="51" 
                 Template="Mscrm.Templates.Flexible2">

              <Controls Id="Mscrm.Form.account.CustomGroup.Controls">
              <Button Id="Mscrm.Form.account.CustomGroup.Button.A" 
                      Command="Mscrm.Form.account.CustomGroup.Button.A.Command"
                      Sequence="10" 
                      LabelText="Custom Button" 
                      ToolTipTitle="Description" 
                      ToolTipDescription="Should only be shown if this account is trading" 
                      TemplateAlias="o1" 
                      Image16by16="/_imgs/ribbon/CustomEntity_16.png" 
                      Image32by32="/_imgs/ribbon/CustomEntity_32.png" />
            </Controls>
          </Group>
        </CommandUIDefinition>

然后在我的规则定义中:

    <RuleDefinitions>
      <TabDisplayRules />
      <DisplayRules>
        <DisplayRule Id="Mscrm.Form.account.CustomDisplayRules.DisplayIfClient">
          <ValueRule Field="new_is_trading" Value="true" />
        </DisplayRule>
      </DisplayRules>
      <EnableRules>
        <EnableRule Id="Mscrm.Form.account.CustomEnableRules.EnableIfClient">
          <ValueRule Field="new_is_trading" Value="true" />
        </EnableRule>
      </EnableRules>
    </RuleDefinitions>

同样,我的EnableRule 工作正常,但我的DisplayRule 出于某种原因却不行!

【问题讨论】:

  • 您确定在页面首次加载后会触发显示规则检查吗?我的印象是显示规则仅用于页面加载,之后您可以简单地启用/禁用它们。
  • 我试过打开记录,值是真假,但在任何情况下按钮都不会显示

标签: dynamics-crm-2011 ribbon


【解决方案1】:

使用 1(true) 和 0(false) 比较布尔值 - 这将起作用。 我也有同样的问题。

【讨论】:

    【解决方案2】:

    我不确定您的启用是如何工作的,但这是我正在使用的工作命令定义的示例。这不使用 value 属性,但我知道下面的代码可以正常工作,而且您似乎缺少对您创建的规则的引用...

        <CommandDefinitions>
          <CommandDefinition Id="Mscrm.Isv.account.grid.ShowMap.Command">
            <EnableRules>
              <EnableRule Id="Mscrm.Isv.account.Clients.EnableRule" />
              <EnableRule Id="Mscrm.Isv.account.grid.OneSelected.EnableRule" />
            </EnableRules>
            <DisplayRules>
              <DisplayRule Id="Mscrm.Isv.account.Clients.DisplayRule" />
            </DisplayRules>
            <Actions>
              <JavaScriptFunction Library="$webresource:way_showBingMapAll.js" FunctionName="showBingMap" />
            </Actions>
          </CommandDefinition>
        </CommandDefinitions>
    

    【讨论】:

    • 您列出了命令定义,它只是提供了对他所描述的RuleDefinitions 部分中定义的EnableRules 和DisplayRules 的引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多