Asp.net e messaggio di upload in corso

lunedì 11 giugno 2007 - 12.13

Opeth Profilo | Newbie

Salve a tutti.
Ho un form di upload e ho l'esigenza di far apparire un messaggio del tipo "Attendere, prego..." al click del pulsante di upload. Ho provato ad inserire semplicemente una label che andavo a valorizzare nella funzione di click del pulsante, ma non funziona.
Chi mi può aiutare?
Vi posto parte del codice, spoglio da qualsiasi implementazione mia volta a risolvere il problema.

Lato client:
<form id="form1" runat="server">
<div>
<table width="380" align="center" border="0">
<tr>
<td align="center" colspan="2">
<asp:Label ID="Label6" runat="server" Font-Size="Medium" ForeColor="Teal" Text="UPLOAD MANAGER"></asp:Label></td>
</tr>
<tr>
<td>
<asp:FileUpload ID="FU1" runat="server" /></td>
<td>
<div id="file1">
</div>
</td>
</tr>
<tr>
<td align="center" style="height: 45px">
<asp:ImageButton ID="imgbtnup" runat="server" Height="43px" ImageUrl="~/loopnone.gif" Width="94px" />
</td>
</tr>
</table>
</div>
</form>

Lato server:
Protected Sub imgbtnup_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgbtnup.Click

If FU1.HasFile Then

If System.IO.Path.GetExtension(FU1.PostedFile.FileName) = ".txt" Then
Try
FU1.SaveAs(Server.MapPath("upload/" & FU1.FileName.Replace(" ", "_")))
Catch ex As Exception
Response.Write("<font color='#ffffff'>Errore nel trasferimento del file " & FU1.FileName & " a causa di: " & ex.Message & "</font>")
End Try
Else
Response.Write("<font color='#ffffff'>Si possono caricare solo files in formato testo!</font>")
End If
End If

End sub

Wamba Profilo | Expert

potresti inserire un div con style="display:none;" in cui c'è scritto il tuo messaggio. Sull'evento client del pulsante lo rendi visibile Style = ""; da JS.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

Opeth Profilo | Newbie

Infatti così ho fatto, ma nel momento in cui clicco sul pulsante, avviene il richiamo alla funzione javascript che mi visualizza il div, ma non avviene il richiamo alla funzione lato server che effettua l'upload del file.
Come mai?

Wamba Profilo | Expert

hai messo un return true in fondo alla funzione?
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

Opeth Profilo | Newbie

Ora funziona. Ho esplicitato il richiamo della funzione lato server nell'onclick del pulsante.
Mi si è presentato un nuovo problema, però.
In un'altra pagina (download), devo implementare lo stesso messaggio di attesa nel momento in cui un utente clicca sul tasto di download. In pratica, al click eseguo uno spool di una tabella di un db e lo esporto in csv. Il messaggio di attesa compare durante tutto il procedimento di spool, ma resta li' anche dopo aver effettuato il salvataggio. Ho provato ad impostare il div lato server con un runat="server" e poi modificargli la visibilità subito dopo il salvataggio del file, ma non succede niente.
Help, pls!

Wamba Profilo | Expert

>Ora funziona. Ho esplicitato il richiamo della funzione lato
>server nell'onclick del pulsante.
>Mi si è presentato un nuovo problema, però.
>In un'altra pagina (download), devo implementare lo stesso messaggio
>di attesa nel momento in cui un utente clicca sul tasto di download.
>In pratica, al click eseguo uno spool di una tabella di un db
>e lo esporto in csv. Il messaggio di attesa compare durante tutto
>il procedimento di spool, ma resta li' anche dopo aver effettuato
>il salvataggio. Ho provato ad impostare il div lato server con
>un runat="server" e poi modificargli la visibilità subito dopo
>il salvataggio del file, ma non succede niente.
>Help, pls!

Prova a rendere visibile/non visibile con l'attributo style.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

Opeth Profilo | Newbie

Ho provato così, ma niente:
ProgressBar.Style("visibility") = "hidden"

Wamba Profilo | Expert

>Ho provato così, ma niente:
>ProgressBar.Style("visibility") = "hidden"

devi useare
ProgressBar.Style("Display") = "none"
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

Opeth Profilo | Newbie

Innanzitutto, grazie mille, sei veramente gentilissimo e pazientissimo.
Avevo già provato anche come hai detto tu (ProgressBar.Style("Display") = "none") ma niente...è come se ignorasse completamente il comando!
E se provassi a ricaricare la pagina, una volta prodotto il file di output da scaricare, in modo da resettare il valore del div?

EDIT:
Ho provato ad inserire una riga di codice lato server per mostrare il div (che all'avvio della pagina è nascosto) e con un'analoga sintassi di cui sopra (ProgressBar.Style("Display") = "block") funziona!!!! ma com'è possibile che quando invece richiamo quella riga di codice per nascondere il div, la ignora completamente?!?!?!

Wamba Profilo | Expert

>EDIT:
>Ho provato ad inserire una riga di codice lato server per mostrare
>il div (che all'avvio della pagina è nascosto) e con un'analoga
>sintassi di cui sopra (ProgressBar.Style("Display") = "block")
>funziona!!!! ma com'è possibile che quando invece richiamo quella
>riga di codice per nascondere il div, la ignora completamente?!?!?!

Difficile da dire... sembra un problema di postback. Sei sicuro che la pagina venga aggiornata al termine dell'operazione?
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

Opeth Profilo | Newbie

No, appunto! Il problema è proprio questo, la pagina non viene aggiornata al termine dell'operazione, CREDO perchè, effettuando il download e uscendo la finestra di salvataggio file, la pagina non viene eseguita completamente. Insomma è come se si interrompesse ad un certo punto (quando esce la finestra di salvataggio file).
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