Asp.net vb personalizzare OnClientClick

martedì 03 luglio 2012 - 11.45
Tag Elenco Tags  VB.NET  |  .NET 1.0  |  .NET 1.1  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0

mferrara00 Profilo | Newbie

Ciao a tutti,
ho il seguente problema.

Ho un pulsante che prima di fare il suo lavoro,
deve controllare che in una text box l'utente abbia scritto correttamente la sua mail,
quindi vorrei creare un popup che faccia leggere all'utente la mail che ha inserito con 2 tasti conferma o cancella,
in caso affermativo, richiama l'evento onclik e fa quello che deve fare, altrimenti non fa nulla.

ecco ocme ho scritto il mio codice:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

ma come faccio ad inserire la mail che l'utente ha scritto nella textbox?
ho provato a fare così ma non funziona:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Grazie per il supporto.
Marco

matteoct Profilo | Junior Member

Ti consiglio di utilizzare modalpopup extender di ajax

qui c'è il video di esempio: http://www.asp.net/web-forms/videos/ajax-control-toolkit/how-do-i-use-the-aspnet-ajax-modalpopup-extender-control

qui un esempio pratico:
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ModalPopup/ModalPopup.aspx

ciao

mferrara00 Profilo | Newbie

Grazie per la risposta,
ma preferivo non utilizzare ajax.

non c'è altro modo?

io ho provato a fare in questo modo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

ma ora vorrei evitare che venga visualizzato il popup quando l'utente non ha ancora inserito la mail nella texbox.
come fare???

Grazie mille.

matteoct Profilo | Junior Member

Se il tuo intento è quello di evitare l'apertura del popup senza che l'utente abbia digitato la mail, allora puoi usare un controllo RegularExpressionValidator

qui un esempio pratico:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="TextBox1" CssClass="error" Display="Dynamic"
ErrorMessage="Inserire un'indirizzo email valido (per inserire più indirizzi, usare ',' per separarli)"
ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*"></asp:RegularExpressionValidator>

ciao

mferrara00 Profilo | Newbie

Ciao,
grazie mille ancora per la celere risposta.

Nel frattempo stavo provando a scrivermi la funzione in javascript,
ed ecco quanto segue:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


solo che non riesco a prendere il valore dalla textbox (che ha come ID=TextBoxMail)
sai come potrei fare?

Inoltre mi sono accordo che comunque esegue il codice presente quando clicco il bottone, cosa che dovrebbe fare solo se restituisce esito positivo.
Come devo modificare la funziona javascript per fare ciò che mi serve?
Grazie mille.

in questo modo personalizzo il controllo e gli faccio fare ciò che mi serve e posso sempre personalizzarlo.

Grazie mille per il supporto.
Marco

matteoct Profilo | Junior Member

Secondo me sbagli qualcosa, perchè non dovrebbe eseguire il codice quando clicchi sul bottone con la textbox della mail vuota.
la RegularExpressionValidator l'hai associata correttamente alla textbox della mail?

cmq per intercettare il valore della textbox con javascript usa questo:

anzichè: var textBox = "" //document.form1.TextBoxMail.value;

questo;
var textbox= document.getElementById("TextBoxMail").value;

mferrara00 Profilo | Newbie

Ciao,
grazie mille per la risposta ma ho risolto nel modo seguente:

alla fine del tag form ho creato il mio javascript che è il seguente:
</form> <script language="javascript" type="text/javascript"> function confermaMail() { var txtBoxMail = String(document.getElementById("TextBoxMail").value); var txtBoxNome = String(document.getElementById("TextBoxNome").value); if (txtBoxNome == "" || txtBoxMail == "" ) { alert("ERRORE: NON hai compilato tutti i campi!!!"); } else { var esito = confirm('Conferma la tua mail: ' + txtBoxMail); return esito } } </script>
mentre il pulsante l'ho definito in questo modo:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

matteoct Profilo | Junior Member

Ok, l'importante è aver risolto :-)

alexmed Profilo | Guru

Ciao
Sicuramente la soluzione proposta è più completa ma avresti potuto anche mettere:

<asp:Button ID="Button2" runat="server" Text="Button" OnClientClick="return window.confirm('Conferma la tua mail: ' + document.getElementById('TextBoxMail').value);" />

Ciao
alexmed
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5