187 messaggi dal 23 marzo 2006
Buongiorno,
vorrei attivare l'update progress al caricamento della pagina.
Normalmente si attiva solo in fase di post back...

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
spiega dettagliatamente la situazione in cui ti trovi, mi aiuterà a darti un consiglio più preciso.

Immagino che al primo caricamento di pagina tu voglia mostrare dei dati nell'UpdatePanel, e dato che questa operazione richiede un certo numero di secondi, l'UpdateProgress ti serve a comunicare all'utente di restare in attesa.

Il problema è che, mentre la pagina asp.net è in esecuzione, nessun output html viene inviato al browser, e quindi neanche l'UpdateProgress.
Soltanto al termine dell'esecuzione, e quindi dopo i vari secondi di attesa, la pagina viene mostrata interamente nel browser. A quel punto, far apparire l'UpdateProgress non è più di alcuna utilità perché il contenuto è ormai già stato generato.

La soluzione consiste nel rendere il primo caricamento di pagina molto veloce, evitando quell'estrazione dati che richiede vari secondi.
Cioè: qualsiasi controllo tu abbia nell'UpdatePanel non effettuarne il databinding al primo caricamento di pagina.

Come risultato, la pagina si mostrerà all'utente molto rapidamente ma l'UpdatePanel apparirà vuoto. Adesso non resta che mettere un paio di linee di javascript in fondo alla pagina, subito prima della chiusura del tag body.
<script type="text/javascript">
    function pageLoad(sender, args) {
        if (!args._isPartialLoad)
            document.getElementById('<%= bottone.ClientID %>').click();
    }
</script>

Questo javascript simulerà il click sul bottone che scatenerà il postback parziale e, come conseguenza, vedrai apparire l'UpdateProgress.

La condizione (!args._isPartialLoad) serve a fare in modo che il click non venga eseguito anche in caso di postback parziali (altrimenti avresti un loop infinito).

ciao
Modificato da BrightSoul il 07 aprile 2013 14.41 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.