2017-10-17 15 views
0

Actuellement, j'essaie d'ouvrir une boîte de dialogue modale qui contient un formulaire rempli avec les valeurs d'un bean backing. Le bean est chargé (ou devrait être chargé, comme pour le moment ne fonctionne pas) avec un objet fourni dans le bouton car chaque bouton est lié à une entrée dans une table. Le code actuel du bouton est le suivant.Impossible de mettre à jour le bootstrap modal avec onclick

Le modal et le bouton qui déclenche l'événement sont sur la même page, mais cette page contient 2 beans. Un utilisé pour le modal qui devrait être montré dès que vous cliquez sur le bouton (utilisé pour modifier l'objet donné) et un autre pour imprimer toutes les données dans la fenêtre principale. Fondamentalement ce que j'essaye de faire est d'instancier un bean passant un objet donné à la méthode de @PostConstruct que le deuxième bean a par la demande, et ayant le modal montré après que tout ce processus soit accompli, actualisant le modal et ensuite le montrer.

<b:button value="" 
    icon-size="2x" 
    onclick="#{bean.dummy()}" 
    style="height: 64px; width: 64px; float: right; border: none; margin-top: 25px; border-radius: 0px;" 
    oncomplete="$('.config_modal').modal()"> 
     <f:param name="action" value="#{bean.value}" /> 
</b:button> 

En dehors de ce code, j'ai essayé plusieurs modifications listées ci-dessous. Le précédent est le plus récent.

  • Auparavant, l'appel JS modal() se trouvait dans un événement 'onclick'.
  • Ajout d'une méthode «fictive» car la boîte de dialogue modale n'est jamais affichée avec le code réel, car je pensais avoir besoin d'une sorte de déclencheur.
  • Ce n'est pas un b:commandButton car il actualise toute la page et la boîte de dialogue n'est jamais affichée.
+0

pourriez-vous essayer 'oncomplete =" $ ('. config_modal'). modal ('true'); "' et assurez-vous que le 'b: modal 'a styleClass comme config_modal ie' b: modal id = "config_modal" styleClass = "config_modal" ' – MitchBroadhead

+0

mais l'oncomplete ne se déclenchera pas après un rechargement de page. vous auriez besoin d'utiliser ajax. par exemple. ''. toute partie de la page que vous voulez redessiner devrait être à l'intérieur du '' – MitchBroadhead

+1

@MitchBroadhead merci pour la réponse Mitch, j'ai fait ce que vous avez recommandé dans votre deuxième commentaire, mais ne fonctionne toujours pas, je ne sais toujours pas ce que je Je fais mal ... La valeur est reçue correctement dans l'autre bean. Ok trouvé la faute de frappe dans mon cas, enlevé ** 'vrai' ** de l'intérieur .modal() et maintenant ça marche. Merci beaucoup! Répondre avec une réponse pour que je puisse l'accepter. – SkPr0

Répondre

0

l'oncomplete ne se déclenchera pas après un rechargement de page. vous auriez besoin d'utiliser ajax. par exemple. <h:form><b:commandButton value="click" action="#{bean.dummy}" oncomplete="$('.config_modal').modal('true');"><f:ajax render="@form"/></b:commandButton></h:form>. toute partie de la page que vous voulez redessiner devrait être à l'intérieur de la <h:form>