2011-10-03 4 views
66

C'è una casella di testo in una pagina di contenuto. Quando l'utente preme Invio in quella casella di testo, sto tentando di attivare un pulsante "Invia" in questa pagina di contenuto. Mi piacerebbe sparare l'evento di quel particolare pulsante.come impostare un 'inserimento' predefinito su un determinato pulsante

Invece, c'è un pulsante di ricerca & nella parte superiore della pagina da un MasterPage e l'evento di questo pulsante di ricerca si spegne.

Come controllo per attivare questo pulsante di invio di ContentPage, anziché il pulsante di ricerca di MasterPage?

Sto utilizzando Ektron CMS per la gestione dei miei contenuti.

+0

Avete un pannello nella pagina di contenuto, forse potresti impostare il pulsante predefinito come invio in quel caso – V4Vendetta

+0

Grazie V4Vendetta, sì, ho risolto questo problema aggiungendo un pannello e impostando il pulsante predefinito per inviare – Ron

risposta

81

Il modo più semplice è quello di mettere i campi e pulsante all'interno di un pannello e impostare il pulsante predefinito per il pulsante che si desidera essere attivato al momento dell'inserimento.

<asp:Panel ID="p" runat="server" DefaultButton="myButton"> 
    <%-- Text boxes here --%> 
    <asp:Button ID="myButton" runat="server" /> 
</asp:Panel> 
+1

Grazie Kirk, la soluzione perfetta - ha funzionato bene per me !! – Ron

+0

Si prega di notare che questa soluzione si basa su JavaScript, come qualcosa di simile 'onkeypress = "javascript: return WebForm_FireDefaultButton (evento, ' ctl00_MainContentPlaceHolder_btnSave ')">' viene aggiunto alla tua pagina –

+0

soluzione perfetta - Grazie Kirk – Sensa

14

È possibile utilizzare la proprietà DefaultButton su un controllo form lato server o su un controllo Panel. Nel tuo caso, raggruppare i controlli insieme in un Panel che dovrebbe sparare lo stesso tasto:

<asp:Panel ID="SearchBox" runat="server" DefaultButton="BtnSearch"> 
    ... 
    <asp:Button ID="BtnSearch" runat="server" Text="Search!" /> 
</asp:Panel> 
.... 
<asp:Panel ID="UserPanel" runat="server" DefaultButton="BtnUserSubmit"> 
    ... 
    <asp:Button ID="BtnUserSubmit" runat="server" Text="Submit" /> 
</asp:Panel> 
+0

Grazie Mellamokb, asp: Pannello funzionato !!! – Ron

29

se avete bisogno di farlo dal codice, utilizzare

Me.Form.DefaultButton = Me.btn.UniqueID 

Dove btn è il vostro controllo pulsante.

+0

Se in un controllo, Me.Page.Form.DefaultButton funziona. – NYCdotNet

3

È ora possibile utilizzare la proprietà UseSubmitBehavior per disabilitare tutti i tasti che non si desidera al fuoco quando colpisce presentare (controllare la documentazione per ulteriori informazioni)

<asp:Button ID="BtnNotToFIre" runat="server" Text="Search" UseSubmitBehavior="false" /> 
+1

Stella assoluta! Questo è ciò di cui ho bisogno! –

+0

E non richiede ulteriori elementi html/asp.net che potrebbero non funzionare con il layout di pagina. – Walter