Bonjour,
J'utilise actuellement le plugin jQuery SimpleModal dans une application ASP.NET. Ce dernier me permet d'afficher, dans une fenêtre de style popin une gridview ainsi qu'un formulaire. Ces deux éléments se trouvent dans un UpdatePanel. Un bouton permet de valider le formulaire et de mettre à jour la gridview. Malheureusement, les données ne sont pas mises à jour dans ma fenêtre modale.
Concrètement, l'évènement OnClick de mon bouton se déclenche bien, les actions sont réalisées, mais je ne peux pas apercevoir le résultat dans ma fenêtre SimpleModal. Pour cela, il faut que je la ferme, puis l'ouvre à nouveau.
Afin de m'assurer que le problème provenait de SimpleModal et non pas de l'UpdatePanel, j'ai effectué un test avec ce même cas, sans SimpleModal. Cela fonctionne parfaitement.
Voici mon code, simplifié :
ASP.NET
Code-behind
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <asp:UpdatePanel runat="server" ID="UP1" > <ContentTemplate> <div id="div1"> <asp:GridView id="GV1" ... ></asp:GridView> <asp:Button ID="Button1" runat="server" OnClick="Action" Text="Ajouter" /> </div> </ContentTemplate> </asp:UpdatePanel>
jQuery
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Sub Action(ByVal sender As Object, ByVal e As EventArgs) ' Actions GV1.Databind() End Sub
Pour résoudre ce problème, il suffirait selon moi de rafraichir le contenu de la fenêtre simplemodal. Seulement, je ne trouve pas de solution.
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 $("#div1").modal({ appendTo: "form", overlayClose: true, opacity: 70, overlayCss: { backgroundColor: "#fff" }, persist:true, onOpen: function(dialog) { dialog.overlay.fadeIn('fast', function() { dialog.data.hide(); dialog.container.fadeIn('fast', function() { dialog.data.slideDown('slow'); }); }); }, onClose: function(dialog) { dialog.data.slideUp('slow', function() { dialog.container.fadeOut('fast', function() { dialog.overlay.fadeOut('fast', function() { $.modal.close(); }); }); }) } });
Avez-vous une idée ?
Merci par avance.
Partager