Quando si utilizzano le finestre modali (ovvero finestre con il focus esculivo) in Asp.Net ed in tali finestre si utilizzano dati prelevati da un DataBase, si verifica un piccolo "problema": i dati vengono caricati da db solo alla prima apertura della pagina. Se chiudiamo la finestra e la riapriamo i dati non verranno ricaricati ma saranno presi dalla cache.
Per ovviare a questo problema, bisogna inserire nel page load della pagina che verrà utilizzata come finestra modale le seguenti righe di codice:
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.Cache.SetExpires(DateTime.Now - New TimeSpan(1, 0, 0))
Response.Cache.SetLastModified(DateTime.Now)
Response.Cache.SetAllowResponseInBrowserHistory(False)
Ricordo che, per richiamare la finestra in modo che sia modale, si deve utilizzare questa un metodo javascript:
hlkNuovaFinestra.Attributes.Add("onclick", "javascript: window.showModalDialog('PaginaDaAprire.aspx', null, 'status:no; dialogWidth:500px; dialogHeight:400px; dialogHide:true; help:no; scroll:no;')"
In questo esempio, viene aperta una finestra modale di 400x500 pixel, senza barra di stato e senza bottoni e scroll semplicemente cliccando sull'HyperLink denominato hlkNuovaFinestra.
1 commento:
Ottimo! Funziona perfettamente.
Grazie.
Posta un commento