ASP.NET - Điều khiển máy chủ

Điều khiển máy chủ là các thẻ mà máy chủ có thể hiểu.

Giới hạn của Classic ASP

Dưới đây là mã được sao chép từ phần trước:

<html>
<body style="background-color:#e5eecc; text-align:center;">
<h2>Hello CodeW3C.com!</h2>
<p><%Response.Write(now())%></p>
</body>
</html>

Mã trên có thể phản ánh giới hạn của Classic ASP: các khối mã phải được đặt ở vị trí cần xuất ra.

Bằng Classic ASP, chúng ta không thể tách mã thực thi khỏi HTML本身. Điều này làm cho trang khó đọc và khó bảo trì.

ASP.NET - Điều khiển máy chủ

Bằng cách sử dụng điều khiển máy chủ, ASP.NET đã giải quyết vấn đề "mã Italy" mà đã được mô tả ở trên.

Điều khiển máy chủ là các thẻ mà máy chủ có thể hiểu.

Có ba loại điều khiển máy chủ:

  • Điều khiển HTML máy chủ - Các thẻ HTML truyền thống
  • Điều khiển máy chủ web - Các thẻ ASP.NET mới
  • Điều khiển máy chủ kiểm tra - Sử dụng để kiểm tra đầu vào

ASP.NET - Điều khiển HTML máy chủ

Điều khiển HTML máy chủ là các thẻ HTML mà máy chủ có thể hiểu.

Các phần tử HTML trong ASP.NET được xử lý như văn bản. Để làm cho các phần tử này có thể lập trình, cần thêm Thuộc tính runat="server"Thuộc tính này chỉ ra rằng phần tử này là một điều khiển máy chủ. Đồng thời cần thêm thuộc tính id để xác định điều khiển máy chủ. Id này được sử dụng để thao tác điều khiển máy chủ trong thời gian chạy.

Ghi chú:Tất cả các điều khiển máy chủ HTML phải nằm trong thẻ <form> có thuộc tính runat="server". Thuộc tính runat="server" chỉ ra rằng biểu mẫu này nên được xử lý trên máy chủ. Nó cũng chỉ ra rằng các điều khiển bao gồm trong biểu mẫu có thể được truy cập bởi mã脚本 máy chủ.

Trong ví dụ dưới đây, chúng ta đã khai báo một điều khiển máy chủ HtmlAnchor trong tệp .aspx. Sau đó, chúng ta đã thực hiện việc thao tác thuộc tính HRef của điều khiển HtmlAnchor trong một trình xử lý sự kiện. Sự kiện Page_Load là một loại sự kiện mà ASP.NET có thể hiểu:

Ghi chú:Trình xử lý sự kiện (event handler) là một thủ tục con được thực hiện mã nguồn cho một sự kiện cụ thể.

<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">Thăm CodeW3C.com!</a>
</form>
</body>
</html>

Lưu ý:Mã nguồn có thể thực hiện đã được di chuyển ra ngoài HTML.

ASP.NET - Điều khiển máy chủ web

Điều khiển máy chủ web là các thẻ ASP.NET mà máy chủ có thể hiểu.

Tương tự như điều khiển máy chủ HTML, điều khiển máy chủ web cũng được tạo ra trên máy chủ, chúng cũng cần thuộc tính runat="server" để hoạt động. Tuy nhiên, điều khiển máy chủ web không cần ánh xạ bất kỳ phần tử HTML đã tồn tại nào, chúng đại diện cho các phần tử phức tạp hơn.

Cú pháp tạo điều khiển máy chủ web là:

<asp:control_name id="some_id" runat="server" />

Trong ví dụ dưới đây, chúng ta đã khai báo một điều khiển máy chủ Button trong tệp .aspx. Sau đó, chúng ta đã tạo một trình xử lý sự kiện cho sự kiện Click, nó có thể thay đổi văn bản trên nút:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="Bạn đã nhấn tôi!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="Nhấn tôi!" runat="server" OnClick="submit"/>
</form>
</body>
</html>

ASP.NET - Điều khiển máy chủ xác thực

Điều khiển máy chủ xác thực được sử dụng để xác thực đầu vào của người dùng. Nếu đầu vào của người dùng không vượt qua xác thực, sẽ hiển thị một thông báo lỗi cho người dùng.

Mỗi điều khiển validation thực hiện một loại kiểm tra đặc biệt (ví dụ như kiểm tra một giá trị cụ thể hoặc một phạm vi giá trị).

Mặc định, khi nhấn Button, ImageButton hoặc LinkButton, sẽ thực hiện kiểm tra trang. Bạn có thể ngăn chặn việc kiểm tra khi nhấn một nút điều khiển cụ thể bằng cách đặt thuộc tính CausesValidation thành false.

Cú pháp tạo điều khiển Validation server là:

<asp:control_name id="some_id" runat="server" />

Trong ví dụ dưới đây, chúng ta đã khai báo một điều khiển TextBox, một điều khiển Button và một điều khiển RangeValidator trong tệp .aspx. Nếu kiểm tra thất bại, văn bản "Giá trị phải từ 1 đến 100!" sẽ hiển thị trong điều khiển RangeValidator:

<html>
<body>
<form runat="server">
<p>Nhập một số từ 1 đến 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="Giá trị phải từ 1 đến 100!"
runat="server" />
</p>
</form>
</body>
</html>

Hiển thị ví dụ này