[asp.net] Chiamare funzione server da jquery

giovedì 27 settembre 2012 - 12.49
Tag Elenco Tags  C#  |  .NET 4.0  |  Visual Studio 2010  |  Javascript

fleapak Profilo | Newbie

Buongiorno a tutti!
Ho un panel contenente varie textbox.
Vorrei, che, alla pressione del tasto invio, venga richiamata una funzione serverside che modifichi il selectCommand di un SqlDataSource(contenuta nella stessa Pagina) con il conseguente bind dei nuovi dati in un gridview.

Ecco il codice per una maggiore chiarezza...

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


Vorrei sapere se sia possibile fare ciò, se ho quasi azzeccato la soluzione o se si può fare in modo completamente differente.
Grazie in anticipo!

Luca

alexmed Profilo | Guru

Ciao
Potresti utilizzare la proprietà DefaultButton del Panel impostastandola su un Button1 (visible="true").
In questo modo quando premi invio è come se richiamassi la funzione associata al tuo Button1: "ovvero sds_ricerca.SelectCommand"
L'utente potrà scegliere di cliccare il tasto invio o quello di invio.

http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.panel.defaultbutton.aspx

Ciao

alexmed

fleapak Profilo | Newbie

Ciao,
innanzi tutto grazie per la risposta.
Avevo già vagliato quest'ipotesi, ma il bottone non deve essere visibile...ho impostato altezza e larghezza =0, ma ho dei problemi di visibilità, per esempio su chrome si vede un rettangolino della dimensione di qualche pixel...
Ovviamente ho provato ad impostare la visibilità del bottone su false, ma la funzione non viene lanciata...
Alternative?
Grazie Luca

alexmed Profilo | Guru

<asp:Button ID="Button1" runat="server" Text="Ok" Style="visibility: hidden;" />
Così su IE 9 funziona.
Prova.

Ciao

alexmed

Gluck74 Profilo | Guru

scusa domanda,
ma non capisco perché devi richiamare la funzione sul click del pulsante, quando la stai già richiamando sul TextChanged delle textbox
____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

fleapak Profilo | Newbie

Perché non so come lanciare quell'evento
solo alla pressione del tasto invio...è l'unica cosa che devo fare...
ciao Luca

Gluck74 Profilo | Guru

ok,
allora togli tutti gli OnTextChanged dai TextBox che non servono a nulla.

Poi metti un pulsante all'interno del panel
<asp:Button runat="server" ID="btn_Invio" />
ora facendo doppio click sul pulsante ti genera in automatico la funzione che verrà richiamata sull'evento Click.
bene, da questa funzione non devi fare altro che richiamare la tua funzione "miaFunzione".

Per raffinare il tutto segui il suggerimento di alexmed:
<asp:Button runat="server" ID="btn_Invio" style="visibility:hidden;" />
Ed imposta la proprietà DefaulButton del Panel, con l'ID del bottone, così funzionarà il tasto invio della tastiera.

ciao

____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5