Chương 15 Ứng dụng Web với Web Forms
15.2 Hiển thị chuỗi lên trang
Đầu tiên ta cần chạy Visual Studio .NET, sau đó tạo một dự án mới kiểu Web Application, ngôn ngữ chọn là C# và ứng dụng sẽ có tên là ProgrammingCSharpWeb. Url mặc nhiên của ứng dụng sẽ có tên là http://localhost/ ProgrammingCSharpWeb.
Hình 15-1 Cửa sổ tạo ứng dụng Web mới
Visual Studio .NET sẽ đặt hầu hết các tập tin nó tạo ra cho ứng dụng trong thư mục
Web mặc định trên máy người dùng, ví dụ :
D:\Inetpub\wwwroot\ProgrammingCSharpWeb. Trong .NET, một giải pháp
Ứng dụng Web với Web Forms Gvhd: Nguyễn Tấn Trần Minh Khang
(Solution) có một hay hiều dự án (Project), mỗi dự án sẽ tạo ra một thư viện liên kết động (DLL) hay tập tin thực thi (EXE). Để có thể chạy được ứng dụng Web Form, ta cần phải cài đặt IIS và FrontPage Server Extension trên máy tính.
Khi ứng dụng Web Form được tạo, .NET tạo sẵn một số tập tin và một trang Web có tên mặc định là WebForm1.aspx chỉ chứa mã HTML và WebForm1.cs chứa mã quản lý trang. Trang mã .cs không nằm trong cửa sổ Solution Explorer, để hiển thị nó ta chọn Project\Show All Files, ta chỉ cần nhấn đúp chuột trái trên trang Web là cửa sổ soạn thảo mã (Editor) sẽ hiện nên, cho phép ta viết mã quản lý trang. Để chuyển từ cửa số thiết kế kéo thả sang cửa sổ mã HTML của trang, ta chọn hai Tab ở góc bên trái phía dưới màn hình.
Đặt tên lại cho trang Web bằng cách nhấn chuột phải lên trang và chọn mục Rename để đổi tên trang thành HelloWeb.aspx, .NET cũng sẽ tự động đổi tên trang mã của trang thành HelloWeb.cs. NET cũng tạo ra một số mã HTML cho trang : Hình 15-2
.NET đã phát sinh ra một số mã ASP.NET :
<%@ Page language="c#"
Codebehind="HelloWeb.cs"
AutoEventWireup="false"
Inherits="ProgrammingCSharpWeb.WebForm1" %>
Thuộc tính language chỉ ra ngôn ngữ lập trình được dùng trong trang mã để quản lý trang, ở đây là C#. Codebehide xác định trang mã quản lý có tên HelloWeb.cs và thuộc tính Inherits chỉ trang Web được thừa kế từ lớp WebForm1 được viết trong HelloWeb.cs :
public class WebForm1 : System.Web.UI.Page
Ta thấy trang này được thừa kế từ lớp System.Web.UI.Page, lớp này do ASP.NET cung cấp, xác định các thuộc tính, phương thức và các sự kiện chung cho các trang phía máy chủ. Mã HTML phát sinh định dạng thuộc tính của Form :
<form id="Form1" method="post" runat="server">
Ứng dụng Web với Web Forms Gvhd: Nguyễn Tấn Trần Minh Khang
Thuộc tính id làm định danh cho Form, thuộc tính method có giá trị là “POST”
nghĩa là Form sẽ được gởi lên máy chủ ngay lập tức khi nhận một sự kiện do người dùng phát ra ( như sự kiện nhấn nút ) và cờ IsPostBack trên máy chủ khi đó sẽ có giá trị là true. Biến cờ này có giá trị là false nếu Form được đệ trình với phương thức “GET” hay lần đầu tiên trang được gọi. Bất kỳ điều khiển nào hay Form có thuộc tính runat=”server” thì điều khiển hay Form này sẽ được xử lý bởi ASP.NET Framework trên máy chủ. Thuộc tính MS_POSITIONING =
“GridLayout” trong thẻ <Body>, cho biết cách bố trí các điều khiển trên Form theo dạng lưới, ngoài ra ta còn có thể bố trí các điều khiển trôi lổi trên trang, bằng cách gán thuộc tính MS_POSITIONING thành “FlowLayout”.
Hiện giờ Form của ta là trống, để hiển thị một chuỗi gì đó lên màn hình, ta gõ dòng mã sau trong thẻ <body> :
Hello World! It is now <% = DateTime.Now.ToString( ) %>
Giống với ASP, phần nằm trong dấu <% %> được xem như là mã quản lý cho trang, ở đây là mã C#. Dấu = chỉ ra một giá trị nhận được từ một biến hay một đối tượng nào đó, ta cũng có thể viết mã trên lại như sau với cùng chức năng :
Hello World! It is now
<% Response.Write(DateTime.Now.ToString( )); %>
Thực thi trang này ( Ctrl-F5 ), kết quả sẽ hiện trên trình duyệt như sau : Hình 15-3 Hiển thị chuỗi thời gian
Để thêm các điều khiển cho trang, hoặc là ta có thể viết mã trong của sổ HTML hoặc là kéo thả các điều khiển trên bộ công của Web Form vào cửa sổ thiết kế trang.
ASP.NET sẽ tự động phát sinh ra kết quả từ mã HTML thành các điều khiển cũng như từ các điều khiển trên trang thiết thành mã HTML tương ứng. Ví dụ, kéo hai RadioButton vào trang và gán cùng một giá trị nào đó cho thuộc tính GroupName của cả hai điều khiển, thuộc tính này sẽ làm cho các nút chọn loại trừ lẫn nhau. Mã HTML của trang trong thẻ <Form> do ASP.NET phát sinh sẽ như sau :
Ứng dụng Web với Web Forms Gvhd: Nguyễn Tấn Trần Minh Khang
Hình 15-4
Các điều khiển của ASP.NET, có thêm chữ “asp:” phía trước tên của điều khiển đó, được thiết kế mang tính hướng đối tượng nhiều hơn.
<asp:RadioButton>
<asp:CheckBox>
<asp:Button>
<asp:TextBox rows="1">
<asp:TextBox rows="5">
Ngoài các điều khiển của ASP.NET, các điều khiển HTML chuẩn cũng được ASP.NET hỗ trợ. Tuy nhiên các điều khiển không tạo sự dễ đọc trong mã nguồn do tính đối tượng trên chúng không rõ ràng, các điều khiển HTML chuẩn ứng với năm điều khiển trên là :
<input type = "radio">
<input type="checkbox">
<input type="button">
<input type="text">
<textarea>