C# Gestire un controllo TextBox

martedì 18 luglio 2006 - 17.18

bluelions Profilo | Senior Member

Salve,
Ho creato una funzione java-script che mi permette di inserire un valore in una textbox e caricare la dropdownlist in base al numero inserito.Poi nell'evento onchange della text chiamo la funzione e ogni qualvolta cambio il valore e perdo il focus mi ripopola la dropdownlist,però vorrei che il ripopolamento avviene non quando perdo il focus,ma quando cambio il valore rimanendo sul focus sempre nella text.
Mi chiedevo è possibile fare una cosa del genere?
Se si quale evento dovrei utilizzare?
Premetto che utilizzo l'evento lato client onChange.
Vi posto anche la funzione javascript.
Resto in attesa di una vostra risposta.
GRAZIE

<script language="javascript">
function txt1onBlur()
{
while (document.getElementById("DropDownList1").options.length > 0)
document.getElementById("DropDownList1").options.remove(0);
for(var i=1;i<=document.getElementById("TextBox1").value;i++)
{
var o = document.createElement("OPTION");
document.getElementById("DropDownList1").options.add(o);
o.value= i;       
o.innerHTML = i;
}

}
</script>

alx_81 Profilo | Guru

ciao!
prova ad usare l'evento onKeyPress, trappando il valore inserito ed usadolo per popolare il tuo dropdownlist..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluelions Profilo | Senior Member

Usando l'evento onKeyPress,funziona ma in modo strano. Cioè quando inserisco un primo valore non succede nulla,poi cambio valore mi ricarica la lista in base al valore precedente. Cosa intendi trappando il valore?

alx_81 Profilo | Guru

devi catturare il tasto che hai premuto.. ad esempio, il seguente codice "cattura" l'invio..

<SCRIPT TYPE="text/javascript"> <!-- function submitenter(myfield,e) { var keycode; if (window.event) keycode = window.event.keyCode; else if (e) keycode = e.which; else return true; if (keycode == 13) { myfield.form.submit(); return false; } else return true; } //--> </SCRIPT>

in questo modo proverei a trasformare in intero il valore relativo al keycode per poi usarlo per popolare la dropdownlist (senza fare controlli sul valore di keycode come nell'esempio precedente).
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluelions Profilo | Senior Member

praticamente,ho capito ciò che dici,ma in realtà quello che hai fatto,controlla il tasto invio,mentre io vorrei far in modo che ogni qualvolta cambio il numero nelle text senza fare nulla mi va a ricaricare la drop

alx_81 Profilo | Guru

esatto.. devi usare le funzioni di conversione da ascii al suo valore per controllarlo..

ad esempio, al posto del controllo sull'invio:

// ricavi il tasto premuto var premuto = parseInt(String.fromCharCode(window.event.keyCode)) // ora, all'interno di premuto hai l'indice finale del tuo ciclo.. if (!isNaN(premuto) { //riempi il combo }

ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluelions Profilo | Senior Member

ok, ho risolto ma con l'evento onKeyUp,e cioè al rilascio del tasto mi esegue la funzione.
Comunque grazie per le info.

alx_81 Profilo | Guru

ok.. bene lo stesso =)
accetta la risposta, così chiudiamo il post..

ciao!
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5