ASP.NET server control là bộ control thứ hai đợc thiết kế với rất nhiều khác biệt. Chúng không thể hiện giống hệt nh các HTML server control. Thay vào đó chúng đợc định nghĩa nh là các control trừu tợng mà đại diện cho các thành phần HTML vì các control này thật sự khác với mô hình để lập trình. Ví dụ RadioButtonList trong ASP.NET là một control nhng nó lại gồm các table trong mã HTML.
ASP.NET server control bao gồm các control trong form truyền thống nh button và textbox các control phức tạp nh tablẹ Chúng cũng gồm có các control cung cấp các chức năng thớng xuyên sử dụng nh là hiển thị dữ liệu trong lới, chọn ngày tháng..
Ví dụ sau miêu tả làm thế nào để đa vào trong trang .aspx một thành phần điều khiển:
<html> <body>
<h3><font face="Verdana">Declaring Server Controls</font></h3>
This sample demonstrates how to declare the <asp:label> server control and
manipulate its properties within a pagẹ <p>
<hr>
<asp:label id="Message1" font-size="16" font-bold="true" forecolor="red" runat=server>This is Message One</asp:label>
<br>
<asp:label id="Message2" font-size="20" font- italic="true" forecolor="blue" runat=server>This is Message Two</asp:label>
<br>
<asp:label id="Message3" font-size="24" font-
underline="true" forecolor="green" runat=server>This is Message Three</asp:label>
</body> </html>
Tìm hiểu Microsoft ASP.NET
Sau đây là các đặc điểm thêm vào trong các control ASP.NET: Mô hình đối tợng phong phú cung cấp nhiều khả năng lập trình.
Tự động xác định trình duyệt. Các control có thể xác định trình duyệt và tạo mã tơng ứng cho trình duyệt đó.
Một số control có khả năng định dạng theo cách ta muốn thể hiện bằng cách sử dụng templates.
Một số control có khả năng xác định các sự kiện và ngay lập tức post lên server hoặc là đợc cache và phát sinh khi form đợc đệ trình.
Trong lúc thiết kế ở dạng HTML, các control xuất hiện trong trang có dạng: <asp:button attributes runat=”server”/>
Các thuộc tính trong trờng hợp này không giống nh các trong các thành phần HTML, thay vào đó chúng là các thuộc tính của Web control.
Khi trang Web form chạy, các web server control trong trang thờng đợc thể hiện nh các thành phần HTML. Ví dụ một textbox control thì giống nh kiểu thẻ <INPUT> hay <TEXTAREA>.
Để thêm các Control vào trang Web Form.
Việc thêm các server control vào trang Web Form đơn giản nh thêm các thành phần HTML. Cú pháp chính xác mà ta sử dụng phụ thuộc vào control mà ta thêm vào, nhng thờng thiết lập theo cách sau đâỵ
Tìm hiểu Microsoft ASP.NET
Các control phải có thuộc tính runat=”server”.
Đặt thuộc tính ID cho các control trừ khi các control đó là một phần của một control phức tạp và sẽ đợc lặp lại( nh các control Repeater, DataList và DataGrid).
Web server control đợc khai báo với một thẻ XML mà tham chiếu đến asp namespacẹ Các thẻ phải đợc đóng lại, ta có thể sử dụng thẻ đóng cụ thể hay nếu các control không có các thành phần con ta có thể dùng thẻ tự đóng.
Tiếp đầu ngữ asp: cho biết điều kgiển đợc tạo ra từ th viện là một thành phần của ASP.NET. Sử dụng tiếp đầu ngữ làm phân vùng tên namespace cho phép ta tạo ra nhiều phần tử hay thành phần điều khiển cùng tên nhng đợc đặt trong các th viện khác nhaụ
ASP.NET cho phép các nhà phát triển thứ 3 cung cấp th viện riêng của họ, những thành phần điều khiển thêm vào sẽ hoạt động chung với các thành phần điều khiển ASP.NET sẵn có thông qua namespace riêng biệt.
Thật sự là mô hình đối tợng
Các Web server control thật sự là mô hình đối tợng. Có thể tơng tác với nó thông qua các phơng thức, thuộc tính và sự kiện (tơng tự mô hình hớng đối tợng trong Visual Basic ).
Các thuộc tính và phơng thức
Khi một điều khiển trong ASP.NET đợc sử dụng, ta hoàn toàn có thể đặt thuộc tính và triệu gọi phơng thức trong nó.
Các sự kiện
Các điều khiển của ASP.NET cho phép đáp ứng một số sự kiện phát sinh từ máy khách ngay trên trình chủ
Sub button1_onclick (Object Sender, EventArgs E)
Tìm hiểu Microsoft ASP.NET
Các server control nội tại thiết kế để thay thế cho các điều khiển HTML. Lý do việc thay thế này là do tính thuần nhất và tơng thích. Một trong những vấn đề yếu kém của HTML đó là không thuần nhất và tơng thích trong cách đặt tên cho các thành phần các chức năng tơng tự nhaụ Ví dụ: Bằng thẻ <input> ta có thể tạo ra rất nhiều điều khiển khác nhau “radio”, ”checkbox”, “button”,.. Chúng không rõ ràng bằng việc định nghĩa các điều khiển nội tại do ASP.NET cung cấp.
Kết quả cuối cùng mà điều khiển nội tại sinh ra để hiển thị trên trình duyệt cũng chỉ là mã HTML đơn giản.
Giới thiệu một số Web Server Control
Label Web Server control: cung cấp cho ta cách để đa một đoạn text ra trang Web Form. Thờng thì ta chỉ nên sử dụng control này khi muố đoạn text đó của ta thay đổi trong lúc thực thị Sử dụng label control thì đơn giản hơn việc dùng textbox hay các control khác, vì kết quả của nó là tĩnh trên trang Web, ngời dùng không thể thay đổị
Button: tơng tự nh các Submit trong HTML. Sử dụng các thành phần điều khiển nút nhấn này khi ta muốn postback dữ liệu lên trình chủ.
Linkbutton (nút liên kết):cho phép ta thực hiện một số thao tác trớc khi post lên trình chủ.
Imagebutton: tơng tự nh button nhng cho phép ta gắn một hình ảnh vào đó. Hyperlink chức năng nh thẻ <a> trong HTML.
Điều khiển textbox: thành phần này cho phép ta nhập dữ liệu vào từ bàn phím khá tơng tự với hộp text trong Visual Basic.
Điều khiển lựa chọn
checkbox: cho phép chọn nhiều đề mục cùng một lúc.
Tìm hiểu Microsoft ASP.NET
Litstbox: hiển thị danh sách các mục để lựa chọn cho phép chọn mỗi lần một đề mục.
Thuộc tính Autopostback
Các điều khiển trên đều có một thuộc tính quản lý trạng thái là Autopostback. Thông thờng dữ liệu và kết quả tơng tác của ngời dùng chỉ đợc gửi lên server xử lý sau khi đã nhấn nút submị Tuy nhiên, nếu ta muốn thao tác postback thực hiện ngay khi nút radio, checkbox hay danh sách đợc chọn ta có thể đặt thuộc tính autopostback của mỗi nút chọn có giá trị là true với chỉ định thủ tục xử lý sự kiện trên server.
Các điều khiển đa năng (Rich control) Điều khiển Adrotator
Chọn ngẫu nhiên các thông tin quảng cáo đợc định dạng sẵn vào trang tài liệu mỗi khi hiển thị.
Điều khiển lịch Calendar
Là điều khiển đơn giản nhng mang lại nhiều tác dụng. Hiển thị lịch vào trang tài liệu theo các kiểu mà ta định mẫụ Ngoài ra ngời dùng có thể tơng tác với điều khiển lịch này Ví dụ sau hiển thị một calendar đã đợc định dạng lại mẫụ
Tìm hiểu Microsoft ASP.NET
Hiện Microsoft đang xây dựng một tập gồm rất nhiều điều khiển đa năng nh treeview, listview, Menụ. những thành phần điều khiển này hoạt động tơng tự nh trong môi trờng phát triển desktop. Thành phần điều khiển đa năng thật sự đem lạicho các nhà phát triển Web khả năng xây dựng ứng dụng nhanh chóng và hiệu quả. Loại bỏ công việc phải xây dựng lặp đi lặp lại các điều khiển thông dụng.
Web server control dùng để kiểm tra dữ liệu nhập vào (validate control) Một trong những lợi ích của việc tạo các trang Web Form cho việc nhập dữ liệu là có thể kiểm tra tính hợp lệ thông tin nhập vào của ngời dùng. ASP.NET cung cấp một bộ control để thực hiện việc này, chúng rất dễ sử dụng có thể kiểm tra lỗi nếu cần thiết thông báo lỗị
2.4.12 Sử dụng Validation Control
Để kiểm tra dữ liệu nhập vào của ngời dùng, ta cần phải thêm vào trong trang Web Form các validation control cho mỗi control. Có nhiều các validation control cho mỗi kiểu kiểm tra khác nhau:
Loại kiểm tra Control đợc sử dụng ý nghĩa
Bắt buộc phải nhập
RequiredFieldValidator Ngời dùng không thể bỏ qua
so sánh giá trị CompareValidator So sánh giá trị nhập
vào với một hằng số, hay giá trị của các control sử dụng các phép so sánh.
Kiểm tra giới hạn RangeValidator Kiểm tra giá trị
nhập vào trong một khoảng xác định, giới hạn với các chữ số,chữ cáị. Ngời dùng thiết lập
CustomValidator Kiểm tra bằng cách sử dụng các quy định của tạ
Mỗi input server control có thể đợc gắn với nhiều Validator để thực hiện nhiều tác vụ. Ví dụ, ta có thể gắn vào một input để kiểm tra điều kiện bắt buộc phải nhập kết hợp với kiểm tra giới hạn nhập vàọ
Tìm hiểu Microsoft ASP.NET
Tuy nhiên các control kiểm tra dữ liệu nhập làm việc giới hạn đối với các thành phần sau:
Control Thuộc tính kiểm tra
HtmlInputText Value HtmlTextArea Value HtmlSelect Value HtmlInputFile Value TextBox Text ListBox SelectedItem.Value DropDownList SelectedItem.Value RadioButtonList SelectedItem.Value
2.4.13 ASP.NET User Web control
Các điều khiển trong ASP .NET đã cung cấp nhiều chức năng rất có ích, nh- ng chúng vẫn không thể đáp ứng đợc hết các yêu cầu trong nhiều hoàn cảnh khác nhaụ Web user control cho phép ta dễ dàng định nghĩa các control mà ta cần trong những ứng dụng, sử dụng cùng một ký thuật lập trình tơng tự nh khi ta viết với các trang Web form. Ta có thể thậm chí chuyển đổi từ một trang Web form thành một Web User Control chỉ với vài thay đổi nhỏ. Có một điều nên nhớ các Web User Control không thể chạy riêng nếu nh nó không đợc đặt vào một trang Web Form nàọ Các User Control đợc xác định có phần mở rộng là .ascx
2.4.13.1 Cấu trúc của User Control
Một User Control tơng tự nh một Web Form hoàn chỉnh, với cả hai giao diện ngời dùng và mã ẩn. Tuy nhiên trang giao diện ngời dùng có một số điểm khác biệt với Web Form:
. file User Control có tên mở rộng là .ascx.
. Trong User Control không còn thẻ <HTML>, <BODY> và thẻ <FORM> Một User Control cũng nh môt trang Web Form. Ta có thể sử dụng các thành phần HTML và Web Control trong User Control hoàn toàn giống với cách làm nh
Tìm hiểu Microsoft ASP.NET
đặt vào trong đó các Button Web server control tạo sự kiện và nắm bắt các sự kiện đó.
2.1.13.2Tạo Web User Control:
Đoạn mã sau tạo một Web user control đơn giản đợc sử dụng nh là một menụ Có bốn menu lựa chọn là các thành phần Hyperlink:
<%@ Control Language="vb" AutoEventWireup="false"
Codebehind="menụascx.vb" Inherits="myProj.menu"%> <P>
<asp:HyperLink id=lnkLogin runat="server" _
NavigateURL="Login.aspx">Login</asp:HyperLink> <asp:HyperLink id=lnkAđToCart runat="server" _
NavigateURL="Cart.aspx>Ađ to Cart</asp:HyperLink> | <asp:HyperLink id=lnkTechSupport runat="server" _
NavigateURL="TechSupport.aspx">Technical Support </asp:HyperLink> |
<asp:HyperLink id=lnkAbout runat="server" _
NavigteURL="AboutUs.aspx">About Us</asp:HyperLink> </P>
Thêm các User Control vào Web Form
Ta có thể thêm một Web User Control vào Web Form bằng việc thêm một chỉ thị @ Registervà một thẻ cho control đến trang. Bằng cách này control đó đã trở thành một phần của trang và nó đợc biểu diễn khi trang dợc xử lý. Hơn nữa các thuộc tính công cộng, sự kiện, phơng thức đợc phơi bày ra cho trang và có thể lập trình đợc ta cũng có thể thêm vào trang các user control một theo cách lập trình.
Để thêm một User Control vào trang Web Form, tại đầu trang trớc cả thẻ <HTML> phải thêm một chỉ thị để đăng ký thông báo cho trang khi nó đợc xử lý. Chỉ thị ta đa vào có gắn với một tên và một namespace bằng giá trị cụ thể:
<%@ Register TagPrefix="myNameSpace" TagName = "myUserControl" Src="userControl1.ascx" %>
Thuộc tính Miêu tả
TagPrefix Chỉ định một namespace duy nhất cho user Control, vì vậy trong trang của ta có thể có nhiều user control có tên giống nhau, nh- ng chúng có thể là hoàn toàn khác nhaụ Ví dụ <myNamespce:xxx>
Tìm hiểu Microsoft ASP.NET
TagName liên kết với tag prefix để xác định namespace duy nhất cho control của ta Đợc dùng để đặt tên cho User control. Tên này đợc sử dụng trong sự
<myNameSpace:myUserControl ... />
Src "/MyApp/Include/UserControl1.ascx".Thuộc tính Src là đờng dẫn ảo tới user control, ví dụ:
.
Trong thẻ <BODY> của trang, tạo một thẻ cho control tại nơi mà ta muốn nó thể hiện. Sử dụng TagPrefix và Tagname mà ta đã đăng ký với thuộc tính runat=”server” nh đoạn mã sau:
<myNameSpace:myUserControl ID="mnuMain" runat="server" /> Nếu control của ta có thuộc tính, ta có thể đặt cho nó trong lúc thiết kế, các thuộc tính đó thờng có giá trị ngay trong thẻ:
<myNameSpace:myUserControl ID="mnuMain" runat="server"
selected="Login" backColor="black" /> Tạo một Web User Control
Ta có thể dùng một trình soạn thảo text hay bất kỳ trình soạn thoả HTML nào để tạo một Web User control. Cú pháp để định nghĩa một User control rất giông nh Web For; điểm khác biệt chính là các User control không có các thẻ <HTML>,<BODY> và <FORM> trên nội dung của nó.
User control chó thể là các file text đơn giản hay có thể chứa các điều khiển phía server. Sau đây là một mã tạo một form login đơn giản mà ta có thể đa vào nhiều trang trong ứng dụng của ta:
Trớc hết để khai báo hai thuộc tính mới trong control của ta và thao tác nó với các thành phần ASP khác:
[Visual Basic]
<script language="VB" runat="server"> Public Property UserId() As [String] Get
Return User.Text End Get
Set
Tìm hiểu Microsoft ASP.NET
Public Property Password() As [String] Get Return Pass.Text End Get Set Pass.Text = value End Set End Property </script>
Sau đó đặt tên cho control của ta và save nó với tên file mở rộng là .ascx
2.5 Truy xuất dữ liệu với ADỌNET
Một trong những lý do khiến cho ASP phát triển rộng rãi là những tiện ích của nó để truy cập cơ sở dữ liệu khác nhau ngay trong ứng dụng Web. ASP gắn với Ado có thể truy cập đến mọi loại cơ sở dữ liệu hiện có. ASP.NET mở rộng khả năng này bằng việc giới thiệu ADỌNET (hay ADO +). Cung cấp cơ chế xử lý dữ liệu linh động dễ dàng thao tác và ràng buộc mọi kiểu dữ liệu vào các thành phần điều khiển Web hiện có.
ActiveX Data Object cho .NET Framework (ADỌNET) là một bộ các lớp để thực hiện các dịch vụ truy xuất dữ liệu cho các lập trình viên .NET, ADỌNET cung cấp rất nhiều các component phong phú cho việc tạo các ứng dụng phân tán và chia xẻ dữ liệụ Nó là một phần đợc tích hợp trong .NET framework, hỗ trợ để truy xuất đến cơ sở dữ liệu quan hệ, XML và cơ sở dữ liệu ứng dụng. Ngoài ra, ADỌNET còn đáp ứng các nhu cầu đa dạng của nhà phát triển.
Qua ADỌNET các trình tiêu thụ (consumer) dữ liệu chia xẻ có thể tiếp cập đến nguồn dữ liệu nh SQL Server hay các nguồn dữ liệu đợc hỗ trợ bởi OLE DB và XML thực hiện các thao tác hay cập nhật dữ liệụ
ADỌNET gồm có .NET data provider để thực hiện việc kết nối tới cơ sở dữ liệu, bộ thực hiện lệnh và kết quả nhận đợc. Những kết quả này có thể đợc xử lý một cách trực tiếp hoặc đợc lu trong đối tợng DataSet để ngời dùng có thể quản lý, kết hợp với dữ liệu từ các các nguồn dữ liệu khác, hay di chuyển đi xa giữa các tầng. Đối tợng DataSet trong ADỌNET có thể đợc sử dụng một cách độc lập nh là một trình cung cấp dữ liệu .NET để quản lý dữ liệu địa phơng cho ứng dụng hay là
Tìm hiểu Microsoft ASP.NET
nguồn cho XML. ADỌNET cung cấp cho ngời phát triển việc viết mã lệnh đợc quản lý một cách chức năng hoá nh các chức năng mà các nhà phát triển khi dùng với ADỌ
2.5 Mục đích thiết kế cho ADỌNET
Ngày nay ngày càng nhiều các ứng dụng sử dụng XML để mã hoá dữ liệu khi qua các kết nối mạng. Các ứng dụng Web sử dụng HTTP nh là bộ khung chung trong việc truyền thông giữa các tầng, và từ đó trạng thái giữa các lần triệu gọi phải đợc nắm bắt một cách rõ ràng. Mô hình mới này rất khác với kiểu lập trình kết nối chặt chẽ mà cụ thể là kiểu client/server, nơi mà một kết nối đợc mở trong suốt thời gian sống của ứng dụng và không có thông tin về trạng thái nào đ- ợc nắm bắt.
Microsoft đã nhận thấy rằng cần phải có một kiểu lập trình mới để truy cập dữ liệụ ADỌNET đợc thiết kế để giải quyết các vấn đề trong mô hình lập trình mới này: Cấu trúc dữ liệu không kết nối, gắn bó chặt chẽ với XML, thể hiện dữ liệu thông thờng với khả năng kết hợp dữ liệu từ các nguồn dữ liệu khác nhau và