Répondre

1

Arun Vinoth a trouvé un grand article pour décrire la question, mais en fait je l'ai trouvé que simplement appeler rafraîchissement sur la grille elle-même était tout ce qui était réellement nécessaire.

Il est important de noter que cela ne ré-exécute pas les règles d'activation, mais montre simplement le bouton si l'état a changé.

+0

Bon à savoir et apprendre quelque chose de nouveau .. –

+0

@ArunVinoth Oui, j'ai aussi appris quelque chose de nouveau. J'ai aussi eu la joie de me débarrasser de mes cheveux en utilisant requireJS qui ne permet pas un chargement synchrone d'un module. – Daryl

1

On dirait que vous devez faire quelques trucs supplémentaires.

Rafraîchissant la commande sous-maille bar

Vous constaterez que lorsque le formulaire est chargé, s'il y a une valeur dans l'attribut que vous avez référencé dans votre règle d'activation, le bouton Ajouter Nouveau sera visible . Si toutefois la valeur change, la barre de commande de sous-grille ne sera pas automatiquement actualisée pour refléter le nouvel état. Lors de l'ajout ou de la suppression de lignes dans la sous-grille, la barre de commande est actualisée - mais cela n'est pas très utile dans ce cas.

La barre de commande du formulaire principal peut être actualisée à l'aide de Xrm.Page.ui.refreshRibbon(), mais les barres de commande du sous-réseau ne seront pas actualisées. Au lieu de cela, nous pouvons ajouter un événement onchange aux champs qui sont utilisés dans notre VaueRule et appellent:

Xrm.Page.data.save(); 

Réactualise les sous-réseaux et de réévaluer des EnableRules mais il sera également enregistrer tous les autres attributs sales et doit donc être utilisé avec précaution si vous n'avez pas activé l'enregistrement automatique.

Ref: https://ribbonworkbench.uservoice.com/knowledgebase/articles/489288-show-or-hide-the-add-new-button-on-form-sub-grid