Bonjour,
J'ai un soucis. Lorsque je clique sur un bouton, j'aimerais qu'un GridView se refraichisse dans la page, à chaques nouvelles entrées.
Le soucis est qu'il ne refraichit rien du tout, et attend que la méthode (très lourde) que j'appelle soit terminée (celle appellée avec l'event du boutton click).
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 <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> <ContentTemplate> <asp:Button ID="ButtonLoc" runat="server" Height="22px" Text="Localise!" onclick="ButtonLoc_Click" /> </p> <p> <asp:TextBox ID="TextBoxResult" runat="server" Width="726px"></asp:TextBox> </p> <p> <asp:GridView ID="GridView1" runat="server" Width="723px" onrowcreated="GridView1_RowCreated"> </asp:GridView> </p> <p> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </p> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="GridView1" EventName="RowCreated" /> </Triggers> </asp:UpdatePanel>
Pour l'instant j'essaie seulement d'afficher la date du jour dans un label lorsqu'un row s'ajoute dans mon GridView
Après divers tests, si je mets un timer qui m'affiche la date du jour toutes les secondes (donc j'utilise le timer dans le trigger), ça marche nickel JUSQU'A ce que je clique sur le boutton. Là, plus rien ne se passe jusqu'à ce que mon event soit terminé. (Je répète que c'est une méthode lourde, qui peut prendre jusqu'à 45 secondes pour se terminer sur ma becanne).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { Label1.Text = DateTime.Now.ToString(); }
Une idée? Je sèche...
Sur mon interface C# j'avais utilisé un thread pour se faire, mais en ASP.net c'est un peu plus compliqué que ça je pense.
Merci à vous!
Partager