Qui n’a 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 à 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 e-mail ne sera pas publiée.