2012-05-09 2 views
3

В настоящее время я пытаюсь показать/скрыть пользовательскую кнопку ленты на основе значения флажка в форме.CRM 2011 Ribbon DisplayRule ValueRule не работает

мне удалось получить мой 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 не по какой-то причине!

+0

Вы уверены, что проверки правильности отображения запуска запускаются после того, как страница загрузилась в первый раз? Я находился под впечатлением. Правила отображения отображались только для загрузки страницы, после чего вы могли просто включить/отключить их. –

+0

Я пробовал открытие записей wherte, значение было как истинным, так и ложным, но ни в коем случае не будет отображаться кнопка – user1173691

ответ

4

Используйте 1 (истина) и 0 (ложь) для сравнения булевых значений - это сработает. У меня такая же проблема.

-1

Я не уверен, как вы работаете, но вот пример определения рабочей команды, которую я использую. Это не использует атрибут значения, но я знаю, что ниже код работает отлично и, кажется, вы теряете ссылку на правила, которые вы создали ...

<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> 
+0

. Вы перечисляете определения команд, которые просто предоставляют ссылки на 'EnableRule' и 'DisplayRule', определенные в ' Раздел правил RuleDefinitions, который он описывает. –

Смежные вопросы