Evitare doppio click nelle pagine

riminese77

Nuovo Utente
1 Mar 2010
19
0
1
Rimini
www.genialtek.it
Ciao a tutti, ho un problema "logico", ho un datagrid in una pagina asp.net, che al click del link "seleziona", fa una serie di calcoli .

Codice:
 Protected Sub GRID_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Try
            Dim riga As GridViewRow = GRID.SelectedRow()
            Dim index As Integer = riga.RowIndex()
           Lista = Session("Lista")
            Dim G As New RECORDLISTA
            G.Id = riga
            Lista.Add(G)
            GTrasf.DataSource = Lista
            GTrasf.DataBind()
ECC ECC        ....
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

Ora il mio problema è questo una volta premuto il link della griglia, ci vogliono un paio di secondi per fare tutte le operazioni, metto un messaggio di attesa sotto (non riesco a farlo visibile e disabilitare così l'utente), quindi capita che l'utente impaziente schiaccia un altro link magari quello sotto, così il programma alcune volte continua altre volte reinizia e non porta tutto a termine.
Ora chiedo c'è un modo per disabilitare all'utente la pagina in modo che non faccia casini?
Grazie... ho provato con flag, ecc ecc ma non c'è verso.
 
Ultima modifica di un moderatore:
Ciao,

più che disabilitare la pagina secondo me dovresti creare una routine che al click del link

verifichi se ci sono elaborazioni in corso e in caso affermativo non permetta di avviare le

stesse nuovamente.
 
Ciao

Grazie della risposta, tu intendi un thread?Non so bene come funzionino, avevo pensato anche io tipo if Thread(mio).attivo then exit sub .
Per ora ho ovviato alla cosa con il progressbar di Ajax mettendolo come tempo a 10 e lunghezza e altezza tutta la pagina, anche se non è la soluzione più elegante
 
Si, questa potrebbe essere una soluzione ma io pensavo a qualcosa di più semplice

come una variabile booleana che viene impostata a false all'inizio dell'elaborazione e a

true alla fine. In questo modo se si prova a riavviare l'elaborazione basta controllare il

valore di tale variabile.
 
ciao

ho provato con una variabile e con un campo nascosto, ma nella pagina ascx tali valori non li guarda, mi va sempre avanti :) mah!
Cmq si ho messo la progress bar che copre tutto lo schermo a tempo 50 così non si può ricliccare un'altra volta, solizione non bellissima ma efficace .
Alla prox
 
prova ad integrare una finestra modale con jquery-ui, segui questo tutorial "http://jqueryui.com/demos/dialog/#modal-message" in questo modo l'utente ha dinanzi a se il messaggio d'attesa ed è impossibilitato ad interagire con il resto della pagina.
 

Discussioni simili