254 messaggi dal 01 agosto 2003
Ciao a tutti
sono nuovo.

Ho un problema che da giorni non riesco a risolvere.

Nella mia pagina sono riuscito ad inserire un messaggio di attesa grazie a UpdateProgress

eccolo:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Panel ID="panelUpdateProgress" runat="server" CssClass="updateProgress">
<asp:UpdateProgress ID="UpdateProg1" DisplayAfter="0" runat="server">
<ProgressTemplate>

<div id="Layer1" style="width: 350px;   height: 200px;   position: absolute;   top: 50%;   left: 50%;   margin: -100px 0 0 -175px; z-index:1; opacity:0.8;  background-color: #FFFF00; layer-background-color: #FFFF00; border: 1px none #000000; ">

</div>

<div id="Layer1" style="width: 350px;   height: 200px;   position: absolute;   top: 50%;   left: 50%;   margin: -100px 0 0 -175px; z-index:2;   layer-background-color: #FFFF00; border: 1px none #000000; ">
<table align="center" width="100%" height="100%">
<tr><td valign="middle" align="center"><h2>Attendere....</h2></td></tr>

</table>
</div>


</ProgressTemplate>
</asp:UpdateProgress>
</asp:Panel>
<asp:UpdatePanel ID="updatePanel" runat="server">
<ContentTemplate>


<asp:button runat="server" OnClick="controllo_campi_vuoti" ID="bottone"  Text="inserisci" BorderWidth="1" Font-Size="14" BackColor="#00FF66" />
<br><br></ContentTemplate>
</asp:UpdatePanel> 





Quanto un utente schiaccia sul pulsante BOTTONE, si visualizza una div col messaggio di attesa.
Fin qui tutto ok.....




Il problema nasce se nella pagina ci sono delle condizioni if (ce ne sono tante).

Cioe' se la condizione if blocca l'utente per qualcosa (per esempio un dato scritto in modo errato)
allora tutto il discorso di ATTESA si blocca.
Cioe' il messaggio di attesa appare per un secondo e poi scompare, non appare la scritta della condizione if (es. "dato errato"), insomma si blocca tutto.


Cosa posso fare?

grazie a tutti

victor
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Victor,
puoi far vedere il codice degli if?

ciao,
Moreno

Enjoy learning and just keep making
254 messaggi dal 01 agosto 2003
Ciao Moreno
grazie mille per la risposta :-)
sto impazzendo...

allora il mio è un semplice if
if (iltotale <> tt.text and cosafai_cost.selectedvalue="incasso") then
response.Write("<H3><font color=red>ATTENZIONE I TOTALI NON CORRISPONDONO: euro contanti + euro carte + euro a$. + euro bonifico = euro tess. + euro corso - prova = totale ric </font></h3>")


in pratica come dicevo nella discussione, quando un utente clicca sul bottone...vengono lanciate una serie di sub che, prima di inserire i dati, verificano tante cose....

soltanto dopo avere verificato, se è tutto corretto, allora inseriscono.

Il problema è che se la condizione if da un esito negativo allora si blocca tutto
grazie

victor
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, prova a spiegare un po' meglio che vuol dire "si blocca tutto". Spiega bene qual è il comportamento desiderato e cosa invece si sta verificando nell'applicazione. Inoltre, apri gli strumenti di sviluppo del browser (tasto F12) e vedi nella console se si stanno verificando errori javascript.

A naso, penso che il problema dipenda dal fatto che stai usando Response.Write.
response.Write("<H3><font...");

E' sbagliato, perché così vai ad interferire con il corretto output che la chiamata deve produrre. Invece, predisponi una Label nell'UpdatePanel.

<asp:UpdatePanel ID="updatePanel" runat="server">
<ContentTemplate>

<asp:Label Id="Esito" runat="server"></asp:Label>

<asp:button runat="server" OnClick="controllo_campi_vuoti" ID="bottone"  Text="inserisci" BorderWidth="1" Font-Size="14" BackColor="#00FF66" />
<br><br></ContentTemplate>
</asp:UpdatePanel> 


E poi agisci sulla sua proprietà Text.
'All'inizio svuota il contenuto della proprietà Text
Esito.Text = ""

If (iltotale <> tt.text and cosafai_cost.selectedvalue="incasso") Then
  'Poi gli concateniamo il messaggio di errore
  Label.Text += "- ATTENZIONE I TOTALI NON CORRISPONDONO: euro contanti + euro carte + euro a$. + euro bonifico = euro tess. + euro corso - prova = totale ric"
Else
  'Se sei qui vuol dire che tutti i controlli sono passati e puoi compiere l'operazione
End If


ciao,
Moreno

Enjoy learning and just keep making
254 messaggi dal 01 agosto 2003
Ciao
ho fatto come hai detto tu.

Allora succede:

1) inserisco un dato corretto e quindi senza nessun problema mi fa apparire la finestra di attesa e poi mi inserisce tranquillamente i dati
2) inserisco un dato errato, appare per un millisecondo la finestra attesa e poi appare la label di errore che mi hai consigliato tu
3) fin qui tutto ok...
4)pero', dopo che ho corretto il dato errato e clicco nuovamente su inserisci, non mi fa andare avanti. Ovvero il pulsante sembra premuto ma è tutto fermo.

grazie

victor
254 messaggi dal 01 agosto 2003
Ciao Moreno
ho fatto un tentativo...
nel campo di testo in cui vengono inseriti i dati ho messo autopostback=true
e cosi funziona.
Pero' a questo punto vorrei che autopostback=true fosse automatico.
Perchè l'utente, dopo che corregge il dato nel campo di testo, è costratto a cliccare da qualche altra parte dello schermo per attivare l'autopostbak

spero di essere stato chiaro

grazie

victor
11.886 messaggi dal 09 febbraio 2002
Contributi

Perchè l'utente, dopo che corregge il dato nel campo di testo, è costratto a cliccare da qualche altra parte dello schermo per attivare l'autopostbak

Beh, è normale, l'AutoPostBack si attiva quando la textbox perde il focus. Tu vuoi causare un postback ad ogni carattere digitato? O alla pressione di Invio?

Enjoy learning and just keep making
254 messaggi dal 01 agosto 2003
Ciao Moreno
mi sono accorto che ogni volta che si scrive dentro una textbox, poi bisogna fare qualche altra cosa per attivare autopostback nella textbox stessa. Per esempio l'utente dopo che scrive dentro la textbox deve cliccare fuori (nella textbox ho messo l'evento on textchange).
Non esiste qualcosa che attivi autopostback senza che l'utente digiti per forza fuori?

grazie

victor

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.