ASP.NET keypress

domenica 12 giugno 2005 - 12.09

mgianluca Profilo | Junior Member

Volevo sapere come fare in ASP.NET ad intercettare la pressione di un tasto.
In modo particolare mi servirebbe intercettare la pressione del tasto TAB dentro una textbox.

Questo perchè lasciando la textbox con il tasto TAB mi dovrebbe eseguire una funzione VB con una query al db dove gli passo il valore della textbox.

Vedevo in giro che in ASP.NET a differenza di VB.NET non esistono gli eventi keypress. Posso simularli? Eventualmente anche con un javascript che mi va a richiamare una funzione VB.

Come si fa?

Grazie

FrancescoGuadagno Profilo | Senior Member

Il problema è che stai parlando di codice client e non server-side. Per cui l'unica soluzione per catturare quell'eventp è appunto javascript. Ma javascript non ti permette di effettuare interrogazioni sul server.

Le soluzioni sono due:

1) cambiare strategia

2) una volta ho gestito l'evento lato client "ontextchanged" di una textbox in questo modo:

nell'ASPX
ontextchanged="MiaFunzione"
nel codebehind
protected void MiaFunzione(object sender, System.EventArgs e)
{
...
}

ricordandoci naturalmente di impostare AutoPostBack per la textbox a true.

mgianluca Profilo | Junior Member

infatti alla fine sono riuscito a risolverlo con il secondo metodo che tu mi consigliavi anche se ora sto cercando di gestire il focus in quanto me lo perde.

Quando scatta l'evento faccio una query. Sia che vada a buon fine sia che no... mi perde il focus.

Ciao

FrancescoGuadagno Profilo | Senior Member

Dovresti ricorrere nuovamente a javascript. Lato server, a seconda di ciò che ti serve, imposti il focus. Il focus infatti è normale che venga perso ad ogni postback.

Fai una registrazione del js seguente.

<SCRIPT language="javascript">
document.getElementById("tbOggetto").focus();
</SCRIPT>

ps. se la textbox su cui vuoi impostarte il focus è lato server, non devi usare il metodo RegisterStartupScript, perchè nella head i controlli non esistono ancora.

mgianluca Profilo | Junior Member

ok riuscito

Grazie mille
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