Qui n’as jamais été tenté d’utiliser le content control dans son application ? Contrôle qui permet d’ajouter un iFrame dans un formulaire, permettant d’insérer un 2ème formulaire à l’intérieur du premier.

Plusieurs avantages :

  • Permet de passer un paramètre du formulaire parent pour afficher des données
  • pouvoir changer le contenu d’une partie d’un formulaire sans recharger la page complète

Une fois en place, arrive la fameuse problématique : “Mince, comment appeler une règle présente dans le formulaire contenu dans mon content control ?”  🙄

La solution est assez simple, il faut passer par du JavaScript pour mettre en place ce mécanisme :

  • Dans le formulaire présent dans le contrôle content :
function SaveData() {
$('#00000000-0000-0000-0000-000000000000_e9f68a84-dafc-4dd8-b32f-27397cfe33e8').click(); 
}

Cette fonction JavaScript sera appelée par le formulaire parent, l’ID contenu dans mon exemple (00000000-0000-0000-0000-000000000000_e9f68a84-dafc-4dd8-b32f-27397cfe33e8) correspond a l’ID du bouton que je souhaite appeler. Pour trouver ces ID, rien de plus simple, lancer le formulaire et utiliser la fonction F12 pour localiser le bouton et récupérer son identifiant.
😎 Astuce : Ce dernier ne changera pas lorsqu’on changera d’environnement.

  • Dans le formulaire parent :
$(".content-control-iframe")[0].contentWindow.SaveData();

Point d’attention, le formulaire parent ne peut pas savoir que la règle exécutée dans le formulaire enfant est terminée, il faut donc être vigilent sur les requêtes couteuses en temsp d’exécution pour ne pas fermer le formulaire trop vite.

 

A vous de jouer  😉

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *