Newsgroup: it.comp.lang.visual-basic
Titolo: [ASP.NET] Strano comportamento nel passaggio dati tra WebForms

Ciao a tutti,
ho il seguente noiosissimo problema:
per poter far stampare una griglia di dati in maniera "pulita" ho aggiunto
ad un WebForm un bottone "Versione Stampabile" (il classico Printer Friendly
che si trova su molte pagine web), questo altro non fa che fare il Render
HTML del controllo datagrid e salvarlo nell'oggetto session, aprire una
finestra popup tramite javascript (un altro webform) completamente pulito
che nel Page_load ha il seguente codice:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
If Not Page.IsPostBack Then
    Response.Write(Session.Item("AppoGrid"))
End If
End Sub
Dove AppoGrid è la Key in cui ho salvato il Render.
Tutto funziona a meraviglia e se i dati della griglia vengono cambiati (sono
interrogazioni ad un Db) la modifica viene correttamente riportata al
richiamo della funzione, tranne che su alcune macchine dell'Azienda (un pò
datate) che nonostante l'aggiornamento del Browser alla versione 6.0 SP1
presentato un difetto:
Viene eseguito correttamente il tutto la prima volta, se i dati nella
griglia di partenza cambiano ed io richiamo la funzione di "Printer
friendly" a prescindere che la finestra popup sia stata chiusa o sia ancora
aperta viene visualizzata sempre la prima versione del Render!!! Se però
faccio manualmente un "aggiorna" della pagina allora vengono visualizzati i
dati correttamente.
Ho provato ad aggiungere un reload automatico della pagina tramite
Javascript con Location.Reload() posto dopo il response.write controllando
che il ciclo non entri il Loop, ma il difetto permane !!!
Sembra quasi che su queste macchine ci sia un ritardo di propagazione delle
modifiche apportate alla key AppoGrid, l'unica cosa che ho potuto notare e
che tutte le macchine in questione sono Pentium II della stessa serie con
64Mb di RAM e Windows NT Workstation 4.0 SP6.
Grazie in atnticipo x l'aiuto ed i consigli.
<LuigI>

che il ciclo non entri il Loop, ma il difetto permane !!!
Non so come .net traduca il Location.Reload() nell'html finale, e'
certamente un problema di gestione della cache.
Innanzi tutto se ci sono dei proxy di mezzo sei nelle loro mani :-(
Poi nell' html puo' essere utile la presenza di tutti o alcuni dei
seguenti tag:
// una data nel passato
<META HTTP-EQUIV=Expires CONTENT="Thu, 01 Jan 1998 12:00:00 GMT">
// un altro modo di definire una data nel passato
<META HTTP-EQUIV="Expires" CONTENT="-1">
// un invito a non mettere la pagina nella cache
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
// un altro modo per rifiutare la cache
<META Http-Equiv="Cache-Control" Content="no-cache">
Poi dipende anche un po' dalle impostazioni del browser, ma cosi'
potresti farcela.
-- 
ciao, hal

Ciao,
ho pensato anch'io a problemi di cache, ma essendo un pivellino della
programmazione 
ASP.NET
 non sapevo bene come risolvere il problema e mi stavo
concentrando sulle configurazioni del browser...
Proverò ad aggiungere i TAG che mi hai dato e vediamo un pò che succede...
Forse le impostazioni di cache sono settabili direttamente con una del
milione delle proprietà e metodi che ha Page :) Che come al solito sono
mooolto brevemente descritti nell'help di 
VS.NET
 2002.
Grazie mille
<LuigI>

Prova effettuata e risolto il tutto con successo,
ho aggiunto i META nella parte HEAD del WebForm (dove ci sono le altre
"dichiarazioni" meta messe in automatico da VS) e il tutto funziona a
meraviglia...
Grazie mille x l'aiuto
<LuigI>