Problemi con la cache

lunedì 27 marzo 2006 - 10.27

fustaman Profilo | Junior Member

Ho un problema con la cache o almeno cosi credo.

In una pagina ho un semplice repeater che fa il binding dei dati con una xmldatasource creata dinamicamente facendomi restituire l'xml da un webservice.

in pagina poi ho dei linkbutton che dovrebbero far cambiare i dati visualizzati dal repeater filtrandoli, il sistema funziona, ossia il webservice a seconda del linkbutton premuto mi restituisce il giusto xml con il quale creo l'xmldatasource, ma il contenuto del repeater non si aggiorna, è come se fosse stato memorizzato in cache e finche non riavvio l'intero sito non si aggiorna.

Ho provato a rimuovere la pagina dall'outputcahce, a settare il cacheduration della xmldatasource a 0, ma niente di tutto questo a funzionato.

GvnnRules Profilo | Senior Member

Ma il primo caricamento lo fai nella sub Page_Load? se si hai messo il controllo

if not isPostBack() then .... end if

Facendo così eviti che il repeater ricarichi ogni volta il primo dataset.


Peace
Gvnn

http://www.gvnn.it
http://www.sqlwebarchitect.org
http://blogs.dotnethell.it/gvnn/

fustaman Profilo | Junior Member

ho fatto una funzione di caricamento che richiamo dal page load solo sul primo caricamento e che richiamo poi dall'evento del linkbutton.

freeteo Profilo | Guru

ciao,
domanda banale: dopo che hai aggiornato la sorgente dati del repeater richiami anche il metodo "databind" giusto?
lìavro' fatto migliaia di volte...non puo' non cambiare.. ci deve essere sfuggito qualcosa...

ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

fustaman Profilo | Junior Member

si, l'ho messo, ecco il codice che fa il binding:

XmlDocument doc2 = new XmlDocument();
doc2.AppendChild(doc2.ImportNode(ws.findCollection(XQ), true));
XmlDataSource xd = new XmlDataSource();
xd.Data = doc2.OuterXml;
//xd.CacheExpirationPolicy = DataSourceCacheExpiry.Absolute;
//xd.CacheDuration = 0;
xd.XPath = "result/item";
//RepLibri.DataSource = null;
RepLibri.DataSource = xd;
RepLibri.DataBind();


che è all'interno di una funzione che viene richiamata dal click su un linkbutton

una cosa che mi sono dimenticato di dire è che lo sto testando da dentro vs 2005 con il webserver interno di vs.

maurobennici Profilo | Newbie

Ciao ^_^

ho avurt anch'io il tuo stesso problema con un XmlDataSource.
Lo risolvi impostando EnableCaching = false, visto che per questo tipo di oggetto la Cache è abilitata di Default
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5