252 messaggi dal 03 dicembre 2001
www.fuossbook.it
Ciao a tutti,
vorrei mostrare a video un messaggio "Loading...." dopo aver cliccato su un button che richiama la funzione di upload di un file.
Ho iniziato a fare questo
creato un div

 <div id="loading_screen" style="display: none">
      <h1>Please wait</h1> <br /><br />
      <img  class= "loading" src="/images/loading2.gif" />
    </div>


e due funzioni javascript

  function mostra_loading_screen() {
       
           document.getElementById("loading_screen").style.display = 'block';
       }
       function nascondi_loading_screen() {
       
           document.getElementById("loading_screen").style.display = 'none';
       }




come entro nel nel codice behind del bottone vado a scrivere questo
  if (Page.IsValid)
            {
                ScriptManager.RegisterStartupScript(this, GetType(), "displayalertmessage", "mostra_loading_screen();", true);
               



e fino a qui tutto ok....parte e me lo mostra
quello che non riesco a fare è nascondere a fine operazione il div mostrato

ho aggiunto alla fine dell'operazione di upload un richiamo alla funzione

  
                                        Label1.Text = "La tua foto è stata inserita correttamente!<br> <a href='/mappa'>Visualizza la mappa dei Fuoss</a><br> ";
                                        ScriptManager.RegisterStartupScript(this, GetType(), "displayalertmessage2", "nascondi_loading_screen();", true);
                                        Label2.Visible = true;



ma la console javascript non mi da errore
e nell'html mi ritrovo questo
<script type="text/javascript">
//<![CDATA[
mostra_loading_screen();nascondi_loading_screen();//]]>
</script>
</form>




per capire se richiamava le funzioni ho messo un alert in ognuna di esse
e gli alert mi compaiono, ma uno dopo l'altro nonostante la prima funzione la richiami all'inizio prima di scrivere il file e la seconda alla fine
quindi questo mi fa pensare che il div si mostra e si nasconde istantaneamente e quindi non c'è errore ma non si riesce nemmeno a vedere
Probabilmente quello che io sto facendo è errato proprio concettualmente.
Sapete darmi qualche suggerimento?
Grazie

***************************
webmaster di:
hydrasail.blogspot.it
fuossbook.it
***************************
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
dovresti rendere visibile il messaggio di caricamento con del codice javascript, da eseguire all'evento submit del form. Leggi qui:
http://forum.aspitalia.com/forum/post/398537/Icona-Attesa-Postback.aspx

Il problema del tuo approccio è che stai tentando di richiamare lato server una funzione lato client, quando ormai il server ha iniziato l'elaborazione della pagina aspx. ASP.NET manda l'output al client in un'unica soluzione, solo dopo aver completato interamente il rendering della pagina, e non "a step" come ti saresti aspettato.

Di conseguenza, le invocazioni a mostra_loading_screen() e nascondi_loading_screen() verranno mandate al client insieme ed eseguite l'una dopo l'altra, dandoti l'impressione che il messaggio di caricamento non sia apparso affatto.

Se invece invochi mostra_loading_screen() lato client, proprio prima che si verifichi il postback, allora la funzione verrà invocata immediatamente.
document.forms[0].onsubmit = mostra_loading_screen;


Il nascondi_loading_screen() puoi continuare a richiamarlo con il RegisterStartupScript come stai facendo ora.

ciao,
Moreno
Modificato da BrightSoul il 30 dicembre 2016 10.11 -

Enjoy learning and just keep making
252 messaggi dal 03 dicembre 2001
www.fuossbook.it
Grazie :)

***************************
webmaster di:
hydrasail.blogspot.it
fuossbook.it
***************************

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.