Bonjour
tout est dans le titre : j'ai un un gridview sur lequel je peux faire des tris sur (presque) chaque colonne. Cela fonctionne très bien et mes tris sont conformes à mes attentes.
Mais pour améliorer l'"experience utilisateur " (), je désire le faire par AJAX. je mets donc simplement mon gridview dans un updatePanel, et là, plus rien ne marche. Les requêtes ajax sont bien envoyées, mais la réponse du serveur est vide.
omet-je quelque chose ?
Mon tri :appelé comme suit :
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 protected void tri(string critere, string sens) { if (ViewState["dv"] != null) { try { DataTable table = (DataTable)ViewState["dv"]; DataView dv = new DataView(table); dv.Sort = critere + " " + sens; GridView1.DataSource = dv; GridView1.DataBind(); UpdatePanel1.Update(); } catch (Exception e) { Response.Write("Erreur sur tri : " + e.Message); } } }La page :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 protected void tarif_tri_desc_Click(object sender, ImageClickEventArgs e) { tri("tarif", "desc"); }
Je précise : les images sur lesquelles on clique pour avoir le tri (tarif_tri_desc_Click) sont dans les entetes du gridview.
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 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true" > <ContentTemplate> Tarifs disponibles : <br /> <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" BorderStyle="None" CssClass="comparateur"> <Columns> (...) </Columns> </asp:GridView> </ContentTemplate> </asp:UpdatePanel>
Un debuggage pas à pas me montre que les méthodes sont convenablement appelées, c'est simplement la réponse qui n'est pas envoyées au navigateur.
PS : Tout ce beau monde se trouve dans un userControl
Partager