eseguire il postback al verificarsi di un evento lato client (tipo il click) può essere molto utile, ed il codice non risulta essere molto complicato, una volta identificato l'evento da "catturare" e il controllo interessato, si possono percorrere due strade, realizzare un user control o un web control, per la semplicità di ridistribuzione preferisco il secondo metodo, ma si ottengono in tutti e due casi i medesimi risultati.
prendo ad esempio la mia discussione con Massimomm in questo post.
l'obbiettivo è eseguire il postback quando vengono raggiunti un tot di caratteri digitati, visto che il codice per realizzare il web control è descritto nel post, vediamo cosa sarebbe successo nel caso la scelta fosse caduta sull'user control:
inizializziamo una nuova istanza della classe StringBuilder e registriamo la nostra funzione javascript nella pagina:
StringBuilder mySB = new StringBuilder(180); mySB.Append("<script type=\"text/javascript\">"); mySB.Append("function ValutaLunghezza(elmnt,content)"); mySB.Append("{if <strong>(content.length==elmnt.maxLength</strong>){"); mySB.Append(<strong>this.Page.GetPostBackClientEvent(this,string.Empty</strong>)); mySB.Append("}}</script>"); this.Page.RegisterClientScriptBlock("ValutaLunghezza",mySB.ToString()); }
in grassetto il semplice controllo effettuato tramite JavaScript, e un metodo della classe Page che permette di recuperare un riferimento ad una funzione lato client responsabile del postback, adesso non ci resta che fa si che la TexBox richiami la funzione javascript "ValutaLunghezza".
per far questo utilizziamo la proprietà Attributes della TexBox che restituisce una collezione di attributi che verranno inseriti nel tag di apertura.
myTextBox. Attributes.Add("onkeyup","ValutaLunghezza(this,this.value)" );
fatto con questo abbiamo terminato possieamo eseguire queste poche righe al caricamento della pagina, magari assicurandoci tramite Page.IsStartupScriptRegistered("ValutaLunghezza") che lo script non sia stato precedentemente "menorizzato" nella pagina
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Modificare il controllo TreeView, il 2 dicembre 2008 alle 19:27
- Perfezioniamo il ProfileDataSorce, il 13 ottobre 2008 alle 11:14
- Un DataSource per il Profile, il 10 ottobre 2008 alle 15:06
- TrueSpace 7 gratuito, il 24 luglio 2008 alle 10:59
- adesso dico la mia sull'Iphone, il 22 luglio 2008 alle 10:33
- Come tutto ebbe inizio, il 21 luglio 2008 alle 09:22