Ricerca con tasto Invio

sabato 23 giugno 2007 - 10.41

gigi90 Profilo | Senior Member

Sto implementando una funzione di ricerca nel mio sito web, come posso fare che quando premo il tasto invio, la ricerca si effettua tipo google, la procedura di ricerca attualmente viene gestita da un pulsante cerca, ma io vorrei che si avviase anche alla pressione dell'Invio.



Grazie

alx_81 Profilo | Guru

>Sto implementando una funzione di ricerca nel mio sito web, come
>posso fare che quando premo il tasto invio, la ricerca si effettua
>tipo google, la procedura di ricerca attualmente viene gestita
>da un pulsante cerca, ma io vorrei che si avviase anche alla
>pressione dell'Invio.
Ciao,
se il bottone è un asp button, dovrebbe farlo automaticamente..
hai più di un bottone? come hai gestito il pulsante? come lo hai creato?
>
>
>
>Grazie
di nulla!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

gigi90 Profilo | Senior Member

Il pulsante e un controllo Asp.Net, e poi si ho più di un pulsante, in pratica al click su questo viene gestita la ricerca in base al testo della textbox.
Come posso fare??

alx_81 Profilo | Guru

>Il pulsante e un controllo Asp.Net, e poi si ho più di un pulsante,
>in pratica al click su questo viene gestita la ricerca in base
>al testo della textbox.
>Come posso fare??
Quindi deduco che il pulsante che vuoi premere non è il "primo"..
In automatico l'invio gestisce il primo dei pulsanti submit che hai impostato.
Quindi puoi gestire la cosa lato client, in javascript, catturando l'evento della pressione di un tasto:
function submitButton1(e) { var keynum var keychar var numcheck if(window.event) // IE { keynum = e.keyCode } else if(e.which) // Netscape/Firefox/Opera { keynum = e.which } if (keynum == 13) // Invio { alert('invio'); // scateni l'evento del pulsante che ti serve } }

l'html è il seguente (esempio):
<body> <form id="form1" runat="server"> <div> <asp:TextBox id="txtTesto" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Cerca" TabIndex="1" /> <asp:TextBox id="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="btnInvio" runat="server" Text="Cerca" TabIndex="2" /> </div> </form> </body>

e lato server aggiungi l'attributo:

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

ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

gigi90 Profilo | Senior Member

Grazie!!

alx_81 Profilo | Guru

>Grazie!!
di nulla!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

drigo83 Profilo | Senior Member

Come faccio a scatenare l'evento?

alx_81 Profilo | Guru

>Come faccio a scatenare l'evento?
devi accedere all'oggetto con il clientID e fare click:

var controllo = document.getElementByID('<% = tuoButton.ClientID%>'); controllo.Click();

Ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

drigo83 Profilo | Senior Member

Ma funziona anche con ASP.NET 1.0? Perchè non mi va

alx_81 Profilo | Guru

>Ma funziona anche con ASP.NET 1.0? Perchè non mi va
Così non ti so rispondere.. dovresti dirmi l'errore o cosa ti succede..
e poi dovrei vedere il codice della tua pagina.. altrimenti così non posso aiutarti

Alx81 =)

http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

drigo83 Profilo | Senior Member

Non mi da nessun errore specifico.

Questo è il codice java:

<SCRIPT type="text/javascript">
function submitButton1(e)
{
var keynum
var keychar
var numcheck

if(window.event) // IE
{
keynum = e.keyCode
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which
}
if (keynum == 13) // Invio
{
var controllo = document.getElementByID('<% = btn_Cerca.ClientID%>');
controllo.Click();
}
}
</SCRIPT>
</HEAD>

Blackat.NET Profilo | Newbie

Ma perché fare queste cose complicate quando esiste già la soluzione in ASP.NET ?

Praticamente se metti tutto all'interno di un Panel puoi specificare l'attributo DefaultButton dire qual è l'ID del bottone di Default per l'azione di PostBack.

Salvo.

drigo83 Profilo | Senior Member

Grazie, non lo sapevo proprio. Provo e ti faccio sapere.

Grazie ancora

Ciao

drigo83 Profilo | Senior Member

Ho messo i due controlli all'interno di un panel, ma non ho trovato la proprietà di cui parli.

Puoi spiegarmi come fare?

Grazie

Blackat.NET Profilo | Newbie

>Ho messo i due controlli all'interno di un panel, ma non ho trovato
>la proprietà di cui parli.
>
>Puoi spiegarmi come fare?
>
>Grazie

Sicuro ? Hai fatto tipo ...

<asp:Panel runat="server" id="myPanel1" DefaultButton="b1" >
<asp:Button runat="server" id="b1" />
</asp:Panel>

drigo83 Profilo | Senior Member

Questo è il mio codice:

<asp:Panel id="Panel1" style="Z-INDEX: 105; LEFT: 16px; POSITION: absolute; TOP: 88px" runat="server"
Width="186px" Height="48px" DefaultButton="btn_Cerca">
<P>
<asp:textbox id="txt_Cerca" runat="server" Width="184px"></asp:textbox><BR>
<asp:button id="btn_Cerca" runat="server" Width="60px" CausesValidation="False" Text="Cerca"></asp:button></P>
</asp:Panel></form>

Mi sottolinea in rosso DefaultButton e se ci posiziono il puntatore dice: "Impossibile trovare l''attributo DefaultButton dell'elemento Panel

Blackat.NET Profilo | Newbie

Troppo strano!

A me non da nessun problema. Ma che versione di ASP.NET stai utilizzando ?


Se vedi nella documentazione MS esiste l'attributo...

http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx

drigo83 Profilo | Senior Member

ASP.NET 1.1, penso sia questo il problema.

Blackat.NET Profilo | Newbie

Credo proprio di sì....

drigo83 Profilo | Senior Member

Ho trovato la soluzione!!!!

http://www.aspitalia.com/script/579/Definire-Button-Default-WebForm-ASP.NET.aspx

Grazie comunque per il tuo supporto!

Ciao ciao
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