Bonjour,
Présentation de l'archi : Struts 2, Appel AJAX JQuery, Récupération des données sous format HTML via une JSP qui utilise DisplayTag..
Autant dire que je m'attends pas forcément à ce que quelqu'un ait déjà rencontré le problème. Bref.
Voila mon problème vient du fait que je dois afficher dans une fenêtre modal (dialog) le contenu d'un tableau récupérer par un appel AJAX, et ce lors d'un clic sur un lien.
Voici la fonction JS qui permet de lancer la modal et l'appel AJAX.
Voici le code qui est retourné via une JSP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 /** * Affiche une boite de message information detail reprise */ function openPopupRepriseDetail(infoId,date,auteur,commentaire){ document.getElementById("valueDate").innerHTML = date; document.getElementById("valueAuteur").innerHTML = auteur; document.getElementById("valueCommentaire").innerHTML = commentaire; jQuery("#repriseDetailDIV").dialog({ autoOpen : true, modal : true, width : 700, height: 500, buttons : { "Ok" : function() { jQuery(this).dialog("destroy"); } } }); jQuery.ajax({ type: "GET", url: '/batchdesk/getListBatchExecUnitaireModal.action?infoId='+infoId, dataType: "html", beforeSend:function(){ jQuery('#listeRepriseBatchUniteAjax').html(getLoadingPanel(0, 0)); }, success:function(data){ jQuery('#listeRepriseBatchUniteAjax').html(data); jQuery('#listeRepriseBatchUniteAjax').css('display','block'); } }); }
Maintenant la problèmatique..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <%@ taglib uri="http://ajaxtags.sourceforge.net/tags/ajaxtags" prefix="ajax"%> <%@ taglib uri="http://displaytag.sf.net" prefix="display"%> <%@taglib prefix="s" uri="/struts-tags"%> <ajax:displayTag id="listBatchExecUnitaireDIVDisplayTagReprise"> <display:table name="requestScope.lsBatchExecUnitairesReprise" pagesize="12" requestURI="/getListBatchExecUnitaireModal.action" id="tableListeExecBatchUnitaireReprise" defaultorder="descending" defaultsort="1"> <display:column property="execUnitId" title="Id Exec" sortable="true" /> <display:column property="unitId" title="Id" sortable="true" autolink="true" /> <display:column property="dossier" title="dossier" sortable="true" autolink="true" /> <display:column property="dateDebut" title="Début" decorator="fr.acmn.ihm.decorator.DateDecorator" sortable="true" autolink="true" /> <display:column property="dateFin" title="Fin" decorator="fr.acmn.ihm.decorator.DateDecorator" sortable="true" autolink="true" /> <display:column property="exitCode" title="Statut" sortable="true" autolink="true" /> </display:table> </ajax:displayTag>
Lors du premier chargement (cas initial soit) j'affiche mes données, je clique sur le lien qui va bien et ma boite de dialog s'affiche et affiche bien les données.
Du coup je suis content j'ai récupérer les informations que j'attendais, je ferme ma dialog et je souhaite avoir la même information pour un autre cas donc je clique sur une autre instance du même lien.
Et là, ma boite de dialog s'ouvre bien, l'appel AJAX est bien effectué, les données sont bien retourner (je l'ai vu en mettant en place un alert de Data dans la méthode success de l'appel AJAX), mais elle ne s'affiche pas dans la div qui va bien...
Pour avoir tester de multiple solution et avoir tourner le problème dans tous les sens, je peux aussi vous dire que lorsque j'affiche le résultat via la méthode success dans une div qui n'est pas contenu dans la boite de dialog bah l'information s'affiche bien..
Si vous avez des idées, des pistes je suis preneur.
Merci d'avoir lu!
Partager