Using ValueRule to hide “Add New” Button for an entity’s subgrid in CRM 2011

Hi,

Suppose we have to disable “Add New related record” button for a SubGrid of a custom entity A. The condition is that it should get disabled based on the value of one of the option set in the form (of Custom entity B) to which it is associated with.

AddNewStandard button is the one which we need to refer to do that.

In the ValueRule  new_approvalstatus field is an optionset with the corresponding value (2233770000) for which we want to disable the button in the ribbon.

We can use the below RibbonDiffXml to achieve that.

   <RibbonDiffXml>
        <CustomActions>
          <CustomAction Id="MyOrg_CustomAction" Location="Mscrm.SubGrid.new_promotiondefinition.AddNewStandard">
            <CommandUIDefinition>
              <Button Id="Mscrm.SubGrid.new_promotiondefinition.AddNewStandard" Command="MyOrg_Command" Sequence="20"
LabelText="$Resources(EntityDisplayName):Ribbon.SubGrid.AddNew" Alt="$Resources(EntityDisplayName):Ribbon.SubGrid.AddNew" Image16by16="/_imgs/ribbon/NewRecord_16.png" Image32by32="/_imgs/ribbon/newrecord32.png" TemplateAlias="o1" ToolTipTitle="$Resources(EntityDisplayName):Mscrm_SubGrid_EntityLogicalName_MainTab_Management_AddNewStandard_ToolTipTitle" ToolTipDescription="$Resources(EntityDisplayName):Mscrm_SubGrid_EntityLogicalName_MainTab_Management_AddNewStandard_ToolTipDescription" />
            </CommandUIDefinition>
          </CustomAction>
          <HideCustomAction Location="Mscrm.SubGrid.new_promotiondefinition.AddExistingStandard" HideActionId="Mscrm.SubGrid.new_promotiondefinition.AddExistingStandard.HideAction" />
        </CustomActions>
        <Templates>
          <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
        </Templates>
        <CommandDefinitions>
          <CommandDefinition Id="MyOrg_Command">
            <EnableRules>
              <EnableRule Id="MyOrg_CustomEnableRule" />
            </EnableRules>
            <DisplayRules></DisplayRules>
            <Actions></Actions>
          </CommandDefinition>
        </CommandDefinitions>
        <RuleDefinitions>
          <TabDisplayRules />
          <DisplayRules />
          <EnableRules>
            <EnableRule Id="MyOrg_CustomEnableRule">
              <ValueRule Default="true"  Field="new_approvalstatus" InvertResult="true" Value="223770000"/>
            </EnableRule>
          </EnableRules>
        </RuleDefinitions>
        <LocLabels />
      </RibbonDiffXml>

The thing to remember is that it will override the existing command definition and the rules and actions defined in it. So here we would need to copy those displayrules, enablerules and actions if we want those functionality.

Hope it helps.


Author: Nishant Rana

I love working in and sharing everything about Microsoft.NET technology !

2 thoughts on “Using ValueRule to hide “Add New” Button for an entity’s subgrid in CRM 2011”

    1. hi,
      if i click on subgrid it wil shw the Ribbon up on the page –but here i am having two subgrids on same entity,if i click on first subgrid ribbon must be hide and if i click on second subgrid it must be visible—Can pls post the solution for this

      Like

Share your thoughts

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s