Bonjour Webmestres,

je me retrouve face à un probleme de cache et de pagination dans un gridview.

La fonctionnalité de cache de la page fonctionne très bien. En dehors du fait que mêlée à la pagination dans un gridview cela me génère des pages blanches.

Je m'explique, ma page affiche des annonces. Ces annonces sont récupérées à l'aide d'un sqldatasource relié à un gridview.
J'ai deux indices de page au niveau du gridview.
Lorsque je clique sur la 2ème page du gridview, cela fonctionne. Mais quand je veux cliquer ensuite sur l'indice 1, je me retrouve avec une page blanche.

Si je clique sur un lien vers une autre page et que je reviens dans ma page d'annonces, je récupère bien le résultat obtenu, la page a bien été mise en cache.

Ci-dessous vous trouverez mon code.
En vous remerciant d'avance.

code page .aspx
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
<%@PageLanguage="VB"MasterPageFile="~/MasterPage.master"AutoEventWireup="false"CodeFile="AdministrerAnnonces.aspx.vb"Inherits="AdministrerAnnonces"title="Administrer les annonnces" %>
<%@OutputCacheDuration="3600"VaryByParam="none" %> 
<asp:ContentID="Content1"ContentPlaceHolderID="Main"Runat="Server">
<asp:SqlDataSourceID="dsannonces"runat="server"EnableCaching="true"
ConnectionString="<%$ ConnectionStrings:csAffairesSansRisque %>"SelectCommand="SELECT * FROM [Annonces]"></asp:SqlDataSource>
<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"DataKeyNames="Ann_Id"DataSourceID="dsAnnonces"
EmptyDataText="Il n'y a aucun enregistrement de données à afficher."AllowPaging="True"EnableTheming="False">
<Columns>
<asp:BoundFieldDataField="Ann_Email"HeaderText="Ann_Email"SortExpression="Ann_Email"/>
<asp:BoundFieldDataField="Ann_Ville"HeaderText="Ann_Ville"SortExpression="Ann_Ville"/>
<asp:BoundFieldDataField="Ann_CodePostal"HeaderText="Ann_CodePostal"SortExpression="Ann_CodePostal"/>
<asp:HyperLinkFieldDataNavigateUrlFields="Ann_Id"DataNavigateUrlFormatString="DetailsAnnonce.aspx?ID={0}"HeaderText="Détails"Text="Détails..."/>
</Columns>
</asp:GridView>
<asp:LabelID="Label1"runat="server"Text="Label"EnableTheming="false"></asp:Label>
</asp:Content>
code page .aspx.vb
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
PartialClass AdministrerAnnonces
Inherits System.Web.UI.Page
ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
Label1.Text = "Page générée à : " & DateTime.Now.ToLongTimeString()
EndSub
EndClass