C# Gestire Focus sul controllo TextBox

mercoledì 03 maggio 2006 - 11.10

bluelions Profilo | Senior Member

Salve
Avrei la necessità di gestire il focus sul controllo textbox, in pratica dovrei eseguire un metodo che mi carica la lista in una dropdownlist ogni volta cambio un valore dalla text e perdo il focus.
Non riesco a capire se ci sia l'evento.

alx_81 Profilo | Guru

Ciao!
Sul text box esiste l'evento TextChanged.. Ma se vuoi che l'evento sia il lost focus, credo che devi gestirlo lato client (onBlur), magari con un javascript in cui fai la postback passando un parametro che ti consente, nell'evento Load della pagina, di popolare la tua drop down list..


Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluelions Profilo | Senior Member

Visto che non mastico bene il javascript è possibile un esempio?

alx_81 Profilo | Guru

Un attimo..
non vorrei aver capito male...

Marco ti ha proposto il SetFocus..
A te invece serve che alla "lost focus" di un text box venga popolato il drop down, vero?


giusto per risponderti bene..
non vorrei sbagliare
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluelions Profilo | Senior Member

esatto....servirebbe prorpio questo, cioè ogni qualvolta perdo il focus dal textbox devo eseguire un metodo che mi carichi una lista. In VB esisteva LostFocus, in C#?

alx_81 Profilo | Guru

LostFocus esiste ancora, in Window Forms però..

cmq sia..

devi fare il tuo textbox ed aggiungere a runtime l'attributo onblur con la chiamata ad una funzione javascript.

ad esempio, nell'evento load della pagina:


...
txtBox1.Attributes.Add("onblur","javascript: popolaDDL()")
...

in questo modo avrai creato l'attributo onblur dell'input html (creato come textbox nel designer).

Nella funzione javascript:

//devi annullare il vewstate sennò ti da errore
document.tuaform.__viewstate.value = "";
document.tuaform.__viewstate.name = "a";
document.tuaform.action = "tuapagina.aspx?ddl=1";
document.tuaform.submit()


sempre nella load della pagina ti chiedi se il request.querystring("ddl") = "1" ed in caso positivo popoli il drop down..

è sufficientemente chiaro?
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluelions Profilo | Senior Member

ora provo....ti faccio sapere.

bluelions Profilo | Senior Member

ma la funzione in javascript come la devo fare?

alx_81 Profilo | Guru

nell'html..

<html>
<head>
<script language="javascript">
//<!--
function popolaDDL()
{
//devi annullare il vewstate sennò ti da errore
document.tuaform.__viewstate.value = "";
document.tuaform.__viewstate.name = "a";
document.tuaform.action = "tuapagina.aspx?ddl=1";
document.tuaform.submit()
}
//-->
</script>

così, quando perdi il focus dal campo viene lanciata automaticamente..

è questo che ti serviva sapere?
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluelions Profilo | Senior Member

si, proprio questo mi serviva sapere
GRAZIE
molto gentile.....
A proposito il view state lo devo disabilitare nella text VERO?

alx_81 Profilo | Guru

dici la proprietà text?
ehm.. può essere.. non la ricordo a memoria, e non ho strumenti qui con me..
sorry =)

fammi sapere se ti funziona..
ciao!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluelions Profilo | Senior Member

Purtroppo non va, qualcuno sa darmi ancora aiuto?

alx_81 Profilo | Guru

Funziona funziona.. passami il codice che gli diamo un occhio =)))
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluelions Profilo | Senior Member

Ecco ti passo in allegato il file dove è inclusa sia la pagina aspx sia la codebhind
Attendo tue notizie
GRAZIE

bluelions Profilo | Senior Member

Ancora nulla?

alx_81 Profilo | Guru

Dunque..
fai questi controlli.
Nella pagina creata è stato effettivamente aggiunto l'attributo?
aggiungi ".aspx" nella "default" nel javascript.
aggiungi le due righe che svuotano il viewstate, te le ho mandate in precedenti messaggi..

poi, non funziona vuol dire che non fa nulla?
dà un errore javascript?
dà un errore asp.net?
sta fermo?
Alx81 =)

http://blogs.dotnethell.it/suxstellino
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5