ASP.NET - Kontrolki serwerowe
- Poprzednia strona Strony WebForms
- Następna strona Zdarzenia WebForms
Kontrolki serwerowe są etykietami rozumianymi przez serwer.
Ograniczenia Classic ASP
Poniżej znajduje się kod skopiowany z poprzedniego rozdziału:
<html> <body style="background-color:#e5eecc; text-align:center;"> <h2>Hello CodeW3C.com!</h2> <p><%Response.Write(now())%></p> </body> </html>
Powyższy kod odzwierciedla ograniczenia Classic ASP: bloki kodu muszą być umieszczone w miejscach, gdzie ma miejsce wyjście.
Przez Classic ASP, nie możemy oddzielić kodu wykonywalnego od HTML. To sprawia, że strona jest trudna do odczytania i utrzymania.
ASP.NET - Kontrolki serwerowe
Przez kontrolki serwerowe, ASP.NET rozwiązał problem "kod spaghetti", o którym mowa powyżej.
Kontrolki serwerowe są etykietami rozumianymi przez serwer.
Istnieją trzy typy kontrolki serwerowej:
- Kontrolki serwerowe HTML - tradycyjne etykiety HTML
- Kontrolki serwerowe Web - nowe etykiety ASP.NET
- Kontrolki serwerowe walidacji - do walidacji wejścia
ASP.NET - Elementy HTML serwerowe
Kontrolki serwerowe HTML to etykiety HTML rozumiane przez serwer.
Elementy HTML w ASP.NET są przetwarzane jako tekst. Aby te elementy były programowalne, należy dodać do nich Atrybut runat="server"Ta właściwość wskazuje, że ten element jest kontrolką serwerową. Należy również dodać atrybut id, aby zidentyfikować kontrolkę serwerową. Id ten można użyć do operacji na kontrolkach serwerowych w czasie działania.
Komentarz:Wszystkie kontrolki serwerowe HTML muszą znajdować się wewnątrz etykiety <form> z atrybutem runat="server". Atrybut runat="server" wskazuje, że formularz powinien być przetwarzany na serwerze. Jednocześnie wskazuje, że zawarte w nim kontrolki mogą być dostępne dla skryptów serwerowych.
W poniższym przykładzie, w pliku .aspx zadeklarowaliśmy kontrolkę serwerową HtmlAnchor. Następnie w programistę zdarzenia operowaliśmy na właściwości HRef kontrolki HtmlAnchor. Zdarzenie Page_Load jest jednym z wielu zdarzeń rozumianych przez ASP.NET:
Komentarz:Programista zdarzenia (event handler) to procedura, która wykonuje kod dla danego zdarzenia.
<script runat="server"> Sub Page_Load link1.HRef="http://www.codew3c.com" End Sub </script> <html> <body> <form runat="server"> <a id="link1" runat="server">Odwiedź CodeW3C.com!</a> </form> </body> </html>
Wskazówka:Kod wykonywalny został przeniesiony poza HTML.
ASP.NET - Kontrolki serwerowe do Internetu
Kontrolki serwerowe do Internetu są specjalnymi etykietami ASP.NET rozumianymi przez serwer.
Podobnie jak kontrolki serwerowe HTML, kontrolki serwerowe do Internetu są tworzone na serwerze, wymagają one również atrybutu runat="server", aby działały. Jednak kontrolki serwerowe do Internetu nie muszą mapować istniejących elementów HTML, reprezentują bardziej złożone elementy.
Gramatyka tworzenia kontrolki serwerowej do Internetu:
<asp:control_name id="some_id" runat="server" />
W poniższym przykładzie, w pliku .aspx zadeklarowaliśmy kontrolkę serwerową Button. Następnie utworzyliśmy programistę do zdarzenia Click, który może zmienić tekst na przycisku:
<script runat="server"> Sub submit(Source As Object, e As EventArgs) button1.Text="Kliknąłeś mnie!" End Sub </script> <html> <body> <form runat="server"> <asp:Button id="button1" Text="Kliknij mnie!" runat="server" OnClick="submit"/> </form> </body> </html>
ASP.NET - Kontrola serwerowa do walidacji
Kontrola serwerowa do walidacji danych wprowadzonych przez użytkownika. Jeśli dane wprowadzone przez użytkownika nie przeszły walidacji, do użytkownika wyświetlona zostanie komunikat o błędzie.
Każdy kontroler walidacji wykonuje specyficzny typ walidacji (np. walidacja konkretnej wartości lub zakresu wartości).
Domyślnie, po kliknięciu przycisku Button, ImageButton lub LinkButton, wykonuje się walidacja strony. Możesz zablokować walidację przycisku, ustawiając atrybut CausesValidation na false.
Gramatyka tworzenia kontrolki serwerowej walidacji to:
<asp:control_name id="some_id" runat="server" />
W poniższym przykładzie, w pliku .aspx zadeklarowaliśmy kontrolkę TextBox, przycisk Button oraz kontrolkę RangeValidator. Jeśli walidacja zakończy się niepowodzeniem, tekst "Wartość musi wynosić od 1 do 100!" zostanie wyświetlony w kontrolce RangeValidator:
<html> <body> <form runat="server"> <p>Wprowadź liczbę od 1 do 100: <asp:TextBox id="tbox1" runat="server" /> <br /><br /> <asp:Button Text="Submit" runat="server" /> </p> <p> <asp:RangeValidator ControlToValidate="tbox1" MinimumValue="1" MaximumValue="100" Type="Integer" Text="Wartość musi wynosić od 1 do 100!" runat="server" /> </p> </form> </body> </html>
- Poprzednia strona Strony WebForms
- Następna strona Zdarzenia WebForms