Piotr Szczepanik – programowanie (.Net, C#, SQL), administracja, IT

blog IT: programowanie, administracja
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
                }; ");
Chcemy ustawić wysokość DIV’a w zależności od rozdzielczości ekranu użytkownika odwiedzającego naszą witrynę.

Np. jeżeli rozdzielczość jest wyższa od danej wartości to wtedy nasz DIV otrzymuje określoną wysokość:
 Javascript |  kopiuj kod |? 
01
<div id="spacer"></div>
02
<script language="JavaScript" type="text/javascript">
03
<!--
04
    if (screen.height >= 768) {
05
        var elem = document.getElementById('spacer');
06
        if (elem != null) {
07
            elem.style.height = '30px';
08
        }
09
    }
10
    -->
11
</script>