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 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 .
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.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 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 borgo italia; 19-06-2012 alle 17:41


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.
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.
ho provato con una variabile e con un campo nascosto, ma nella pagina ascx tali valori non li guarda, mi va sempre avantimah!
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.