Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Come eseguire finestre di dialogo modali per la visualizzazione di dat...
venerdì 21 novembre 2008 - 12.37
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Leonida
Profilo
| Junior Member
85
messaggi | Data Invio:
ven 21 nov 2008 - 12:37
Ciao a tutti, sono sempre io con un nuovo quesito, ma che devo dirvi, sto capendo più cose e più in fretta qui che cercando all'impazzata in rete. Vorrei usare una finestra di dialogo modale personalizzata per due scopi:-
1. Visualizzare messaggi di errore dettagliati sollevati dalla parte di codice per la gestione di un DB. Per esempio, se un utente si registra tramite form ed è già registrato (univocità di chiave), deve comparire all'utente un messaggio in una nuova finestra di dialogo che lo informi della presenza dei suoi dati nel DB. L'utente deve poter solo chiudere la finestra cliccando su un tasto OK o simile.
2. Visualizzare delle informazioni nella finestra di dialogo. Per esempio vorrei che un utente dopo la compilazione del form, in seguito alla pressione del tasto di conferma, possa visualizzare i dati inseriti nella finestra di dialogo e registrati nel database. Anche in questo caso deve poter interagire con la finestra unicamente tramite il tast Ok per chiuderla.
Come sempre sto lavorando in ASP.NET e C# con Visual studio 2005. Se possibile vorrei evitare l'utilizzo di javascript, se non è possibile fa niente. Chiaramente non pretendo che qualcuno mi scriva il codice, ma se lameno potesse suggerirmi qualche Classe specifica da studiare o indirizzarmi in questo senso...
Grazie a tutti
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
ven 21 nov 2008 - 15:13
tra le diverse maniere che ci sono puoi usare:
- ModalPopup Ajax, ma .... e un po macchinoso e anche complesso se stai appena iniziando (se non fosse cosi potresti provare)
- Alert in javascript usando per il primo caso la seguente istruzione dopo aver evaluato il login / password (occhio il codice è in vb)
Dim strMsg As String = "<script>" & _
"alert('User/password non esiste, verifica.');" & _
"</script>"
ClientScript.RegisterClientScriptBlock(Me.GetType(), "non_log", strMsg) includo anche un link illustrativo di questo commando
http://msdn.microsoft.com/it-it/library/system.web.ui.page.registerclientscriptblock
(VS.80).aspx
invece per il secondo puoi usare il OnClientClick del pulsante per inserire questa funzioncina in js per farti vedere i dati dentro un alert
spero ti serva, buona fortuna....lo sai siamo sempre qui
, e ricorda che tutti in qualche momento abbiamo avuto un po di paura o rabbia verso Javascript ma purtroppo "per dire purtroppo" è molto utile in tante situazioni e quando riesci a digerirle vedrai che non puoi farne a meno, ti parlo come si stai iniziando in questo ma se non fosse cosi lo saprai meglio di me.
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
Leonida
Profilo
| Junior Member
85
messaggi | Data Invio:
ven 21 nov 2008 - 15:39
Mmmh, ok grazie, in realtà sto iniziando ora, quindi ogni consiglio è più che ben accetto. Sto già facendo qualche tentativo con alert, vediamo come va...uff
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
ven 21 nov 2008 - 16:07
con il alert puoi fare in questa maniera in c#
StrScript = "<script>alert('errore login'); '"
StrScript += "</" + "script>"
ClientScript.RegisterClientScriptBlock(Me.GetType(), "non_log", strMsg)
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
Leonida
Profilo
| Junior Member
85
messaggi | Data Invio:
ven 21 nov 2008 - 16:35
>con il alert puoi fare in questa maniera in c#
>StrScript = "<script>alert('errore login'); '"
>StrScript += "</" + "script>"
>ClientScript.RegisterClientScriptBlock(Me.GetType(), "non_log", strMsg)
Ok fatto, ho inserito il mio codice in un catch in corrispondenza dell'evento Button_click nel file aspx.cs. In pratica il catch è in corrispondenza di un errore sul DB e in teoria dovrebbe mostrarmi una finestra di dialogo con la stampa dell'errore, ma non funziona!!!Potresti dirmi dove sbaglio!? Premetto che nella pagina .aspx non ho aggiunto niente:-
catch (SqlException ex)
{
string error = ex.ToString();
// Form the script that is to be registered at client side.
String scriptString = "<script language=\"JavaScript\">";
scriptString += "alert(\"Errore\");}<";
scriptString += "/";
scriptString += "script>";
//RegisterClientScriptBlock("clientScript", scriptString);
ClientScript.RegisterClientScriptBlock(this.GetType(), "erroreSql", scriptString);
}
Mi manca un pezzo mi sa...
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
ven 21 nov 2008 - 16:51
hai un errore in questa riga
scriptString += "alert(\"Errore\");}<"; <-----togli la graffa
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
ven 21 nov 2008 - 16:58
poi perché usi il try-catch per verificare s'è giusto o no il login? non sarebbe più conveniente controllare se il tuo source di dati e tornato vuoto
ricorda che il try-catch ti serve per fare eventuali procedure di fronte a gli errore o eccezioni, cioè, quello che voglio dirti è che si per caso non hai una connessione a DB attiva o funzionante, o la tua query non è corretta sempre se ne andrà per questa via, non è conveniente e devo aggiungere che come struttura condizionale è pesante (cosa di millisecondi ma approfitto per fartelo sapere)
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
Leonida
Profilo
| Junior Member
85
messaggi | Data Invio:
ven 21 nov 2008 - 17:06
Hai ragione, la stanchezza comincia a farsi sentire eheh...ora però mi da un altro problema, in pratica mostra il messaggio di errore in una nuova finestra ma non carica la pagina finquando non clicco sul tasto di conferma della finestra di errore
... è una prerogativa dell'allert?
Se è così stavo pensado a questo punto di costruire una finestra ex novo passando i dovuti parametri, in modo da stampare anche quaclosa di più complesso che una stringa di errore o conferma...e con questo quesito per oggi stacco, sono fuso...grazie per l'aiuto
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
ven 21 nov 2008 - 17:27
purtroppo si!!!, quando lo fai in questa maniera perché praticamente questo script viene registrato nella pagina e nel client dopo il postback, se questa stessa procedura fosse fatta come una function java dentro la pagina come si deve questo no accadrebbe (non potresti neanche valutare il risultato del suo log-in), una maniera sarebbe fare un callback ma è tutta un'altra procedura, un po più lunga. Poi ricordate che purtroppo PER ADESSO il codice lato cliente e lato server sono come olio ed acqua, non possono andare assieme
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
gio 4 dic 2008 - 15:55
potresti però usare anche lo stesso metodo
ClientScript.RegisterStartupScript (this.GetType(), "erroreSql", scriptString); il quale si esegue dopo il rendering della pagina invece
il RegisterClientScriptBlock si registra prima del rendering della pagina. provaci e qualcosa fammi sapere
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
Torna su
Stanze Forum
Elenco Threads
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 !