Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Bianca

les bons tuyaux !

Comment cacher un champ dans un formulaire Dynamics CRM 4.0

Quelle est la problématique ?

Le Form Object Model de Dynamics CRM 4.0 ne permet pas de cacher dynamiquement un champ dans un formulaire. Du coup, il faut exploiter le DHTML.

Comment faire ?

Avant d’appliquer les propriétés et méthodes du DHTML il faut vous demander quel est le rendu HTML du champ (contrôle) que vous voulez cacher dans le formulaire CRM. Par exemple un attribut de type nvarchar, représenté par une zone de texte dans un formulaire CRM, a pour rendu un élément INPUT de type text dans la page HTML résultante (Notez que rien ne garantit que le choix du rendu d’un attribut de type nvarchar sera maintenu en INPUT dans la prochaine version de CRM…)

image

image

Une fois que vous connaissez le type d’élément HTML, vous pouvez donc appliquer les propriétés et méthodes de l’objet correspondant du DHTML. Pour cacher le champ Prénom du formulaire, vous pourriez donc écrire :

        crmForm.all.firstname.style.display = 'none';

Mais ce code a pour effet de cacher l’élément INPUT uniquement, c’est-à-dire sans le libellé associé, donc vous obtenez :

image

Pour supprimer un champ intégralement du formulaire, vous devez donc aussi repérer la structure de table dans laquelle il est affiché. Par exemple, pour cacher le champ Prénom du formulaire, vous devez cacher les deux balises <td> correspondant au libellé Prénom et à la zone de texte associée. Les deux balises ont pour Identifiant respectif firstname_c et firstname_d. Cela donne le code suivant :

        crmForm.all.firstname_c.style.display = 'none';
        crmForm.all.firstname_d.style.display = 'none';

Pour réafficher le champ, on coderait :

        crmForm.all.firstname_c.style.display = '';
        crmForm.all.firstname_d.style.display = '';

Pour supprimer la ligne entière (contenant le champ Prénom et le champ Téléphone personnel), il ne faut pas hésiter à supprimer la balise <tr> englobant les balises <td>. Celle-ci n’ayant aucun identifiant, on pourrait procéder ainsi :

        crmForm.all.firstname.parentElement.parentElement.style.display = 'none';

S’il s’agit d’un attribut de type ntext (zone de texte de plusieurs lignes) en revanche, le rendu n’est pas un élément INPUT mais un élément textarea.

image

Les propriétés de cet élément HTML n’étant pas les mêmes que pour un élément INPUT, le code pour le cacher est le suivant :

        crmForm.all.description.style.visibility = 'hidden';

Liens utiles : Pour vous aider à trouver le rendu des champs et la structure de la page HTML généré par Dynamic CRM, utilisez l’Internet Explorer Developer Toolbar. Attention celle-ci n’est pas compatible avec IE8 pour lequel vous pouvez utiliser les outils de développement intégrés.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: jeudi 1 octobre 2009 12:22 par bianca
Classé sous :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Comment mapper une vue SQL sur une collection de complex type? par Matthieu MEZIL le il y a 5 heures et 2 minutes

- SQL Server : Query Notification ou comment être notifié de modifications de données côté application (SqlDependency) par SQL Server vu par Christian Robert le il y a 11 heures et 2 minutes

- [WF4] Un Binding Activity/ActivityDesigner qui passe mal? par Blog de Jérémy Jeanson le il y a 12 heures et 25 minutes

- MyTIC – SharePoint 2010 : déjà un mythe Microsoft ? par Le Blog (Vert) d'Arnaud JUND le il y a 17 heures et 13 minutes

- TechDays 2010 Genève : Retrouvez-moi pour une session sur la Haute disponibilité et le ScaleOut avec SQL Server par SQL Server vu par Christian Robert le 03-18-2010, 15:45

- [MIX10] Keynote deuxième journée – Internet Explorer 9, Html5, Visual Studio 2010, OData par Atteint de JavaScriptite Aiguë [Cyril Durand] le 03-17-2010, 19:40

- Certifications beta .NET 4 par Kévin Gosse le 03-17-2010, 19:33

- [Mix 2010] – Microsoft Translator Technology Preview V2 par RedoBlog - The .NET Gentleman !!! le 03-17-2010, 18:53

- Lancement en Preview de Cyclone lors des TechDays 2010! par Blog de Frédéric Queudret le 03-17-2010, 16:30

- [WP7] Je ne veux pas d’un nouvel iPhone par Le blog de FremyCompany le 03-17-2010, 13:11