Gestire evento click con il tasto

mercoledì 22 marzo 2006 - 11.34

bluelions Profilo | Senior Member

Salve amici !!!!!
Avrei se bisogno se possibile di un vostro aiuto per gestire l'evento click di un pulsante.
Espongo meglio la problematica:
Ho un controllo ascx nella quale sono inclusi una textbox e un pulsante che inserito nella pagine aspx mi permettono di gestire delle ricerche.Ora su una pagina ho due volte lo stesso controllo perchè sul primo devo gestire la ricerca per nome e sull'altro la ricerca per codice.Ora in questo caso se scrivo qualcosa sulla prima text e clicco sul primo pulsante mi funziona la ricerca; ed è così anche per l'altro. Quello che adesso servirebbe è che una volta scritto una parola nelle text devo premere invio per gestire la ricerca,questo accade solo sul primo controllo se scrivo qualcosa e premo invio mi fa la ricerca mentre se scrivo qualcosa sulla text del secondo controllo e premo invio mi parte il searchCommand sempre del primo controllo.Quindi infine avendo due ascx uguali come posso gestire il button con il pulsante invia? Perchè quando inserisco un testo nella seconda text e premo invio mi parte il searchcommand del primo controllo?
Spero che mi sarete di aiuto.
Attendo fiducioso la vostra risposta.
GRAZIE

bluelions Profilo | Senior Member

eh, si ma in pratica l'evento click con il tasto invia lo devo gestire ad entrambi.

Brainkiller Profilo | Guru

>eh, si ma in pratica l'evento click con il tasto invia lo devo
>gestire ad entrambi.

Puoi fare in Javascript una roba di questo tipo:

txtSearch.Attributes.Add("onkeypress", "javascript:redirect(event,this)");

e poi implementare il Javascript così:

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

Io di solito uso questo frammento e recupero dalla pagina i valori dei moduli e delle textbox e li passo nella URL. C'è anche un metodo per far fare il submit alla pagina tipo con document.nome_form.submit(); ma non l'ho mai usato.
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

freeteo Profilo | Guru

ciao,
aggiungo solo che nel caso volessi forzare il postback classico di .net (quello che associ all'evanto lato server) nella in javascript puoi usare la "__doPostBack" che ti renderzza asp.net di default.
Ad esempio se hai il bottone invia e vuoi che venga eseguito lo stesso codice anceh se si preme [enter] fai cosi':

__doPostBack('btnInvia','');

e quindi ti esegue anche il codice associato al bottone lato server per intenderci il :

protected void btnInvia_Click(object sender, EventArgs e)
{

ovviamente la doPostBack non la devi scrivere, ti viene aggiunta in automatico...tu la "scrocchi" diciamo

ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

bluelions Profilo | Senior Member

mmmm, ho provato la soluzione ma non credo si quella giusta. Forse non mi sono spiegato bene io, allora il problema è il seguente:
Ho un controllo ascx, su questo controllo c'è semplicemente una textbox e un pulsante; lo utilizzo semplicemente nelle pagine per impostare delle ricerche.Fino adesso mi è capitato di mettere sulla pagina un solo controllo, quindi quando scrivevo qualcosa all'interno e premevo invio, gestiva direttamente il pulsante.Ora però mi è capitato di inserire sulla stessa pagina più volte lo stesso controllo per gestire ricerche diverse, e quindi ora cosa succede che sul primo controllo scrivo qualcosa premo invio e tutto mi funziona la ricerca,se invece scrivo qualcosa sulla text del secondo controllo e premo invio mi parte il pulsante del primo.
Vi posto il codice così magare è più semplice da vedere meglio; vi anticipo che prendendo il caso del secondo controllo,quando clicco il tasto <Invia> nel pulsante il sender.ClientID è sempre l'ID del primo e non del secondo.
Spero in una Vostra risposta

isola81 Profilo | Newbie

Ho lo stesso problema e non sono ancora riuscito a trovare una soluzione valida.

Inoltre dovrei evitare di usare codice script lato client per via delle direttive Wai-AA.

Credo che ti potrebbe risolvere la questione verificando da code-behind l'identificativo del componente che ha scatenato l'evento postBack.

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