Często zdarza się, iż wrzucamy na naszą WebForm kontrolkę TextBox, a zaraz obok niej przycisk, który wywołuje jakąś akcję związaną z treścią wpisaną do kontrolki, np. pole wyszukiwania.

Co zrobić, żeby użytkownik zamiast klikania w przycisk wcisnął Enter po wpisaniu treści do pola TextBox ?

Poniżej przedstawię dwa sposoby:

Sposób 1 – kontrolka Panel

Umieszczamy obydwie kontrolki wewnątrz asp:Panel, której atrybut defaultButton ustawiamy na nasz przycisk.

 ASP |  kopiuj kod |? 
1
<asp:panel defaultbutton="btnSearch runat=">
2
    <asp:textbox id="textbox1" runat="server">
3
    <asp:button id="btnSearch" runat="server" text="Szukaj">
4
</asp:button></asp:textbox></asp:panel>

Sposób 2 - JavaScript

Na kontrolce TextBox dodajemy obsługę zdarzenia OnClick (np. w zdarzeniu PageLoad).
 Javascript |  kopiuj kod |? 
01
textbox1.Attributes.Add("onkeydown", 
02
            @"if(event.which || event.keyCode){
03
                  if ((event.which == 13) || (event.keyCode == 13)) {
04
                      document.getElementById('" + btnSearch.UniqueID.Replace('$', '_') + 
05
                      "').click();
06
                      return false;
07
                      }
08
                } else {
09
                    return true
10
                }; ");