Kontrola serwera są znaczniki, które są rozumiane przez serwer.
Ograniczenia w Classic ASP
Aukcja poniżej została skopiowana z poprzedniego rozdziału:
<html>
<body bgcolor="yellow">
<center>
<h2>Hello w3ii!</h2>
<p> <%Response.Write(now())%> </p>
</center>
</body>
</html>
Powyższy kod ilustruje ograniczenia w klasycznym ASP: Blok Kod musi być umieszczony tam, gdzie chcesz wyjście do stawienia się.
Z Classic ASP niemożliwe jest oddzielenie kodu wykonywalnego z samego HTML. To sprawia, że strona trudne do odczytania i trudne w utrzymaniu.
Kontrole Server - ASP.NET
ASP.NET rozwiązał "spaghetti-code" problemu opisanego powyżej, sterowania serwera.
Kontrola serwera są znaczniki, które są rozumiane przez serwer.
Istnieją trzy rodzaje kontroli serwerów:
- Kontrole serwerowe HTML - Tradycyjne znaczniki HTML
- Sterowanie Web Server - Nowe znaczniki ASP.NET
- Kontrole Server walidacji - walidacji wejściowego
Kontrole HTML Server - ASP.NET
Kontrola serwera HTML są znaczniki HTML zrozumiane przez serwer.
elementy HTML w plikach ASP.NET są domyślnie traktowane jako tekst. Aby te elementy programowalne, należy dodać atrybut runat = „server” do elementu HTML. Atrybut ten wskazuje, że element powinien być traktowany jako kontrolę serwera. id atrybut jest dodawany do identyfikacji kontrolę serwera. Odniesienie id mogą być wykorzystywane do manipulowania formantu serwera w czasie wykonywania.
Note: Wszystkie kontrolki serwerowe HTML musi być w <form> znacznik z runat="server" atrybutu. runat="server" cecha oznacza, że forma powinna być przetwarzany na serwerze. Wskazuje również, że załączone kontrole mogą być dostępne przez skrypty serwera.
W poniższym przykładzie możemy zadeklarować kontrolę serwera HtmlAnchor w pliku .aspx. Potem manipulować HRef atrybutu kontrolą HtmlAnchor w obsługi zdarzeń (an event handler is a subroutine that executes code for a given event) . Zdarzenie Page_Load jest jednym z wielu wydarzeń, które ASP.NET rozumie:
<script runat="server">
Sub Page_Load
link1.HRef="http://www.w3ii.com"
End Sub
</script>
<html>
<body>
<form runat="server">
<a id="link1" runat="server">Visit w3ii!</a>
</form>
</body>
</html>
Sam kod wykonywalny został przeniesiony poza HTML.
ASP.NET - Kontrola Web Server
Kontrola serwera WWW są specjalne znaczniki ASP.NET zrozumiane przez serwer.
Jak kontrole serwerowych HTML, Kontrola serwera WWW są tworzone na serwerze i wymagają one runat = „server” atrybut do pracy. Jednak kontrole serwera WWW nie muszą map do wszelkich istniejących elementów HTML i mogą reprezentować bardziej skomplikowanych elementów.
Składnia dla tworzenia formantu serwera sieci Web jest:
<asp:control_name id="some_id" runat="server" />
W poniższym przykładzie możemy zadeklarować kontrolę serwera przycisku w pliku .aspx. Następnie tworzymy obsługi zdarzeń dla zdarzenia Click, który zmienia tekst na przycisku:
<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="You clicked me!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="Click me!"
runat="server" OnClick="submit"/>
</form>
</body>
</html>
Kontrole Server Validation - ASP.NET
Kontrola serwera walidacji są wykorzystywane do sprawdzania poprawności wejściowe użytkownika. Jeśli użytkownik-wejściowy nie przechodzi walidacji, wyświetli się komunikat o błędzie dla użytkownika.
Każda kontrola poprawności wykonuje specyficzny rodzaj weryfikacji (jak walidacji na podstawie określonej wartości lub zakresu wartości).
Domyślnie, walidacja strona jest wykonywana, gdy przycisk, ImageButton lub kontrola kliknięciu LinkButton. można zapobiec, gdy kontrola poprawności kliknięciu przycisku przez ustawienie właściwości CausesValidation false.
Składnia dla tworzenia formantu serwera Validation jest:
<asp:control_name id="some_id" runat="server" />
W poniższym przykładzie możemy zadeklarować jedną kontrolę tekstowym jedną kontrolę przycisk, a jedną kontrolę RangeValidator w pliku .aspx. Jeśli sprawdzanie poprawności nie powiedzie się, tekst "The value must be from 1 to 100!" będą wyświetlane w kontroli RangeValidator:
Przykład
<html>
<body>
<form runat="server">
<p>Enter a number from 1 to 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="The value must be from 1 to 100!"
runat="server" />
</p>
</form>
</body>
</html>
Pokaż przykład »