50
TÀI LIỆU THAM KHẢO.............................................3 ĐỒ ÁN MÔN HỌC..................................................3 MỘT SỐ THUẬT NGỮ THÔNG DỤNG....................................3 Trang web tĩnh (static web pages)............................4 Trang web động (dynamic web pages)...........................4 HOẠT ĐỘNG CỦA DỊCH VỤ WEB......................................4 Lập trình phía Client (Client-Side)..........................5 Hoạt động của web động Client-Side...........................5 Hoạt động của web động Server-Side...........................6 Lập trình phía Server (Server-Side)..........................6 Chương 1 GIỚI THIỆU ASP.NET...................................7 Gii thiu..................................................7 Thit k m theo asp.net....................................7 Ngôn ngữ lập trình..........................................7 ViewState...................................................7 IsPostBack..................................................7 Chương 2 MỘT SỐ ĐIỂM LƯU Ý...................................8 Lập trình hưng đối tượng....................................8 Thực hành soạn thảo trang web................................9 Chương 3 ĐIỀU KHIỂN TRÊN TRÌNH CHỦ (ServerControl)...........11 1. HTML SERVER CONTROL......................................11 Ví dụ: ExHtmlServerControl.aspx.............................11 2. ASP.NET WEB FORM CONTROL.................................12 Ví dụ: ExWebForm.aspx.......................................12 2.1. <asp:label>...........................................13 2.2. <asp:textbox>.........................................13 2.3. <asp:checkbox>........................................13 2.4. <asp:radiobutton>.....................................13 2.5. <asp:hyperlink>.......................................14 2.6. <asp:image>...........................................14 2.7. <asp:button>..........................................14 2.8. <asp:imagebutton>.....................................14 2.9. <asp:table>...........................................14 3. BIẾN CỐ CLICK, CHANGE, COMMAND...........................15 4. ASP.NET LIST CONTROL.....................................15 4.1. <asp:radiobuttonlist>.................................16 4.2. <asp:checkboxlist>....................................16 4.3. <asp:dropdownlist>....................................16 4.4. <asp:listbox>.........................................17 1

BGi_ASPNET

Embed Size (px)

Citation preview

Page 1: BGi_ASPNET

TÀI LIỆU THAM KHẢO............................................................................................................3ĐỒ ÁN MÔN HỌC......................................................................................................................3MỘT SỐ THUẬT NGỮ THÔNG DỤNG..................................................................................3

Trang web tĩnh (static web pages)............................................................................................4Trang web động (dynamic web pages).....................................................................................4

HOẠT ĐỘNG CỦA DỊCH VỤ WEB.........................................................................................4Lập trình phía Client (Client-Side)..........................................................................................5Hoạt động của web động Client-Side......................................................................................5Hoạt động của web động Server-Side.....................................................................................6Lập trình phía Server (Server-Side)........................................................................................6

Chương 1 GIỚI THIỆU ASP.NET............................................................................................7Giơi thiêu...............................................................................................................................7Thiêt kê ma theo asp.net......................................................................................................7Ngôn ngữ lập trình...............................................................................................................7ViewState...............................................................................................................................7IsPostBack.............................................................................................................................7

Chương 2 MỘT SỐ ĐIỂM LƯU Ý...........................................................................................8Lập trình hương đối tượng......................................................................................................8Thực hành soạn thảo trang web..............................................................................................9

Chương 3 ĐIỀU KHIỂN TRÊN TRÌNH CHỦ (ServerControl)..........................................111. HTML SERVER CONTROL...........................................................................................11

Ví dụ: ExHtmlServerControl.aspx.......................................................................................112. ASP.NET WEB FORM CONTROL.................................................................................12

Ví dụ: ExWebForm.aspx......................................................................................................122.1. <asp:label>...............................................................................................................132.2. <asp:textbox>...........................................................................................................132.3. <asp:checkbox>........................................................................................................132.4. <asp:radiobutton>.....................................................................................................132.5. <asp:hyperlink>........................................................................................................142.6. <asp:image>.............................................................................................................142.7. <asp:button>.............................................................................................................142.8. <asp:imagebutton>...................................................................................................142.9. <asp:table>...............................................................................................................14

3. BIẾN CỐ CLICK, CHANGE, COMMAND...................................................................154. ASP.NET LIST CONTROL..............................................................................................15

4.1. <asp:radiobuttonlist>................................................................................................164.2. <asp:checkboxlist>...................................................................................................164.3. <asp:dropdownlist>..................................................................................................164.4. <asp:listbox>............................................................................................................17

5. ASP.NET VALIDATION CONTROL.............................................................................176. ASP.NET RICH CONTROL.............................................................................................19

6.1 <asp:AdRotator>............................................................................................................196.2 <asp:Calendar>...............................................................................................................196.3 <asp:XML>....................................................................................................................20

7. ASP.NET MOBILE CONTROL.......................................................................................20Chương 4 CÁC ĐỐI TƯỢNG TRONG ASP..........................................................................21

1

Page 2: BGi_ASPNET

1. RESPONSE.........................................................................................................................212. REQUEST...........................................................................................................................21

Ví dụ: ExReqRes.htm, ExReqRes.aspx.vb........................................................................21Ví dụ ExReqRes1.aspx........................................................................................................22

3. APPLICATION..................................................................................................................244. SESSION.............................................................................................................................24

Ví dụ: Global.asax, ExAppSes.aspx.vb................................................................................245. COOKIES...........................................................................................................................256. EXCEPTION......................................................................................................................25

Chương 5 KẾT NỐI DỮ LIỆU VỚI ĐỐI TƯỢNG ADO.NET............................................261. Đối tượng SqlConnection...................................................................................................272. Đối tượng SqlCommand....................................................................................................27

2.1. Phương thức:................................................................................................................272.2. Thuộc tính:...................................................................................................................29

3. Đối tượng DataReader.......................................................................................................294. Đối tượng DataAdapter......................................................................................................295. Đối tượng DataSet..............................................................................................................29

Ví dụ: ExDataSet.aspx.........................................................................................................296. Đối tượng DataTable..........................................................................................................297. Đối tượng DataView...........................................................................................................29

Ví dụ: ExDataTable.aspx.....................................................................................................298. Đối tượng DataRelation.....................................................................................................31

Chương 6 LIST CONTROL.....................................................................................................32Tham khảo thêm: www.asp.net/learn/videos/........................................................................321. Điều khiển GridView..........................................................................................................32

1.1 Các thuộc tính thường dùng........................................................................................32Ví dụ: ExGridView2.aspx, ExGridView2.aspx.vb..............................................................321.2 Hiển thị dữ liêu.............................................................................................................331.3 Phân trang.....................................................................................................................331.4 Sắp xêp...........................................................................................................................331.5 Xóa dữ liêu....................................................................................................................341.6 Cập nhật dữ liêu...........................................................................................................36

2. Điều khiển DataList............................................................................................................372.1 Các thuộc tính thường dùng........................................................................................372.2 Hiển thị dữ liêu từ SQL Server...................................................................................37

Ví dụ: ExDataList.aspx..........................................................................................................372.3 Tạo liên kêt các chức năng...........................................................................................38

3. Điều khiển DetailView........................................................................................................394. Điều khiển FormView........................................................................................................39

2

Page 3: BGi_ASPNET

LẬP TRÌNH WEB (Liên Thông)

TÀI LIỆU THAM KHẢO1. Xây dựng và triển khai ứng dụng thương mại điện tử. Tập 2: với công cụ ASP.Net,

VB.Net, SQL Server. Phạm Hữu Khang.2. www.w3schools.com3. www.asp.net4. www.asp.net/learn/videos/ (Tự nghiên cứu)5. Wrox.Professional.ASP.NET.2.0.Nov.2005.eBook-LinG.pdf 6. (ASP.NET2.0) Visual Web Developer 2005 Express Edition For Dummies (2005,

Wiley).pdf…….

ĐỒ ÁN MÔN HỌC Làm theo nhóm, mỗi nhóm 2 hoặc 3 sinh viên. Yêu cầu: Xây dựng website CỬA HÀNG GIỚI THIỆU SÁCH VÀ NHẬN ĐẶT MUA

SÁCH với đầy đủ các chức năng cơ bản. Các chức năng chính:

1. Giới thiệu và tìm kiếm: Nhà cung cấp, Sách (kết quả xuất theo nhiều cách hợp lý, đẹp, phân trang, sắp xếp, tìm kiếm theo nhiều tiêu chí ...)

2. Đặt mua hàng 3. Thêm Nhà cung cấp, Sách (định dạng trong textarea, kiểm tra thông tin

hợp lệ, thêm tập tin), xóa (nhiều cách), sửa. 4. Thống kê đơn đặt hàng theo ngày

Phân quyền:Các chức năng 3, 4 phải đăng nhập mới thực hiện được.

Lưu ý: mỗi loại thông tin phải có ít nhất 10 dòng dữ liệu, dữ liệu có nội dung thực tế. Có thể làm thêm một số chức năng khác.

Cách chấm điểm: các thành viên của nhóm phải nắm vững tất cả những phần trong báo cáo của nhóm. Nếu 1 thành viên không trả lời được câu hỏi liên quan đến những nội dung báo cáo trong đồ án, cả nhóm sẽ bị trừ điểm.

Nộp bài trong ngày thi môn học theo mẫu (MauBaoCaoDeTaiWeb.doc).

MỘT SỐ THUẬT NGỮ THÔNG DỤNG

WebSite: tập hợp các trang Web của một tổ chức hay cá nhân, có một chủ đề nào đó.

WebPage: là trang Web, có thể hiển thị thông tin dưới dạng: text, image, video …

HomePage: là trang Web đầu tiên được hiển thị trong một Website. ( Thường có tên: index, default …)

3

Page 4: BGi_ASPNET

HyperLink: các mối liên kết giữa các trang Web. (3 loại, trang web nên có nhiều liên kết, trang web không được là ngỏ cụt)

URL (Uniform Resource Locator): đường dẫn chỉ tới một tập tin trong một máy chủ trên Internet

Protocol: giao thức truy cập (http, ftp …) Domain name: tên vùng của nguồn tài nguyên. File name: tên file và đường dẫn nếu có.

Ví dụ: http://www.yahoo.com/email/beta.htm

Nếu liên kết giữa các trang trên cùng một WebSite thì chỉ cần File name

HTTP (port 80: HyperText Transfer Protocol)

FTP (20:data transfer, 21: command) File Transfer Protocol

SMTP (25: Simple Mail Transfer Protocol) POP3 (Post Office Protocol Version 3)

IAP (Internet Access Provider): nhà cung cấp đường truyền Internet.

ISP (Internet Service Provider): nhà cung cấp dịch vụ Internet.

INTRANET: là mạng sử dụng nội bộ (LAN hoặc WAN) dùng để chia sẻ thông tin riêng trong một tổ chức nhưng cũng có thể nối với các trang Web trên Internet.

Web Server: máy lưu trữ và cung cấp thông tin dạng WebCác phần mềm Web Server

- Personal Web Server (PWS Win98) - Internet Information Server (IIS5.0 Win 2000, IIS 5.1 Win XP)- Apache- Netscape Enterprise server- ….

Web Client: máy truy xuất và hiển thị thông tin dạng WebĐể truy xuất các thông tin trên Web Server, các Web Client phải sử dụng một chương trình để duyệt các thông tin này gọi là Web Browser (trình duyệt Web)Các trình duyệt Web

- Internet Explorer (tích hợp từ Win98)- Netscape Navigator- Opera-…

Trang web tĩnh (static web pages)

Trang web động (dynamic web pages)

4

Page 5: BGi_ASPNET

BrowserBrowser processesprocesses

instructionsinstructions and turnsand turns them intothem into

HTML andHTML and displays pagedisplays page

WebServerWebServer locateslocates

HTML andHTML and instructionsinstructions

filefile

Trang Web động nghĩa là trang Web có khả năng tương tác (interact) với người truy cập trang Web đó. Một trong những phương tiện để tạo ra trang Web động là ngôn ngữ script.

HOẠT ĐỘNG CỦA DỊCH VỤ WEBDịch vụ web hoạt động theo mô hình Client/Server: khi một Web Browser gởi một yêu cầu (Request) đến Web Server, Web Server nhận yêu cầu và gởi kết quả trả lời lại cho Web Browser (Response). Web Browser yêu cầu thông tin từ Web Server bằng cách gởi một địa chỉ URL đến Web Server. Web Server trả lại cho Web Browser kết quả là một trang .html. Trang .html có thể là một trang có sẵn trên Web Server hoặc có thể là kết quả xử lý của một trang web động trên Web Server.

Lập trình phía Client (Client-Side)Đoạn lệnh được thi hành tại client.Giảm bớt tải trọng cho webserver.Giảm bớt thời gian xử lý trang web cho server.Thực thi để đáp ứng một sự kiện xảy ra.(JavaScript, VBScript, Java Applets, Flash)

Hoạt động của web động Client-Side

<HTML><HTML><B> Hello </B><B> Hello </B></HTML></HTML>

WEB CLIENTWEB CLIENT

HTTP RequestHTTP Request(http://www.website.com)(http://www.website.com)

HelloHello

WEB SERVERWEB SERVER

HTTP ResponseHTTP Response

5

Page 6: BGi_ASPNET

6

Page 7: BGi_ASPNET

BrowserBrowser processesprocesses

HTML andHTML and displays pagedisplays page

WebServerWebServer locateslocates

instructionsinstructions file andfile and

processesprocesses instructionsinstructions

to createto create HTMLHTML

Hoạt động của web động Server-Side

Lập trình phía Server (Server-Side)Đoạn lệnh được thi hành tại server.Không phụ thuộc vào trình duyệt tại client.Người dùng không thể thấy được mã lệnh.Liên kết cơ sở dữ liệu, các tập tin khác.(CGI, ASP, ASP.NET, JSP, PHP, …)

<HTML><HTML><B> Hello </B><B> Hello </B></HTML></HTML>

<HTML><HTML><% <% Response.Write(“Hello”Response.Write(“Hello”) %>) %></HTML></HTML>

WEB CLIENTWEB CLIENT

HelloHello

HTTP ResponseHTTP Response

HTTP RequestHTTP Request(http://www.website.com)(http://www.website.com)

WEB SERVERWEB SERVER

7

Page 8: BGi_ASPNET

Chương 1 GIỚI THIỆU ASP.NET

Giơi thiêuAsp.net là công nghệ xử lý web phía máy chủ, độc lập với mọi trình duyệt,Ky thuật áp dụng là cho phep mọi thực thi được thực hiện ở trình chủ, tức là trình chủ phải xử lý nhiều vấn đề cùng luc cho nhiều người dùng trình chủ phải có cấu hình mạnh và băng thông tốtTương thích với asp 3.0

Thiêt kê ma theo asp.netTrình tự thực hiện biến cố: Page_Init Page_Load Control Speciifc Event Page_Unload.Giữa webform và code behind có quan hệ kế thừa, ở đầu mọi trang webform ta sẽ thấy có chỉ dẫn khai báo như sau:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="sample.WebForm1"%>

Ngôn ngữ lập trìnhVisual Basic.Net (vb), JScript.Net (js), C Sharp (cs). Mặc định là ngôn ngữ VB, có thể thay đổi ngôn ngữ mặc định trong tập tin machine.config như sau

<compilation debug=”false” explicit=”true” defaultLanguage=”cs”>Net Frameword cho phep sử dụng 3 ngôn ngữ trong 1 ứng dụng, nghĩa là có thể sử dụng mỗi trang web một loại ngôn ngữ.

ViewStateLà định danh dùng lưu trạng thái của mỗi WebForm do Server quản lý, chứa tất cả các trạng thái của điều khiển người dùng trong trang. Khi trả về cho trình khách, viewstate được trình bày dưới dạng thẻ hidden và có giá trị được mã hóa. Có thể vô hiệu hóa hay cho phep viewstate bằng cách sử dụng thuộc tính EnableViewState trong từng thẻ hay trong trang cấu hình của ứng dụng.

IsPostBackThuộc tính của Page, trả về giá trị False khi trang được nạp lần đầu tiên, trả về giá trị True trong các lần nạp tiếp theo.Ví dụ:Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then

‘các câu lệnh chỉ muốn thực thi 1 lần khi trang ‘được nạp lần đầu tiên

End IfEnd Sub

(Tài liệu tham khảo số 1 - Chương 1,2)

8

Page 9: BGi_ASPNET

Chương 2 MỘT SỐ ĐIỂM LƯU Ý

Xem lại VB.NET

Lập trình hương đối tượngĐối tượng: thuộc tính, phương thức, sự kiện.Khai báo đối tượngClass <tên đối tượng>

Public/Protected/Private <thuộc tính> as <kiểu dữ liệu>Public/Protected/Private Sub <tên phương thức> (<tham số>) Public/Protected/Private Function <tên phương thức> (<tham số>) as <kiểu trả về> (gán trị trả về vào tên phương thức/return)

End class

Public: mọi nơi trong chương trình đều thấy và dùng được.Protected: trong class đó và các chương trình con của nó thấy và dùng được. (inherits: con->kế thừa)Private: chỉ trong class đó thấy và dùng được.

Trong cùng class các hàm phải khác tên hoặc khác kiểu tham số hoặc khác số lượng tham số.Ví dụ:

Nếu đã có: Public sub New(Ten as String)Thì sai Public sub New(Ho as String)Thì đung Public sub New(Luong as Double)Thì đung Public sub New(Ten as String, Luong as Double)

Nếu đã có: Public sub New(Ten as String, Luong as Double)Thì sai Public sub New(Ten as String, Optional Luong as Double=10)

Khi viết trùng lại tên thì:Cha là: overrideableCon là: overrides

Chung ta khai báo thuộc tính là Private để bên ngoài không gán trực tiếp giá trị cho thuộc tính được mà phải thông qua Property của Class để có thể kiểm tra giá trị trước khi gán :

Private mMnv As LongPublic Property MNV() As Long

Get Return mMnv End Get Set(ByVal Value As Long) If Value > 0 Then mMnv = Value End If End Set End Property

9

Page 10: BGi_ASPNET

Thực hành soạn thảo trang web

Cài đặt các chương trình cần thiết Internet Information Services (IIS) (CaiDatIIS.doc).Net Framework (Tài liệu tham khảo số 1 - Chương 2)(Nếu cài đặt IIS sau khi cài đặt .Net Framework thì cần đăng ký Aspnet_isapi.dll bằng cách thi hành tập tin Regsvr32.exe hay aspnet_regis.exe)

Khởi động Visual Studio 2005Chọn File/New Web SiteChọn ASP.NET Web site/ chọn vị trí lưu (location), ngôn ngữ

Lưu trang web vào máy tính có chức năng WebServer: phải lưu vào thư mục được xử lý bởi WebServer

Cách 1: C:\InetPub\wwwroot Vào IIS/ Default website – Click chuột phải vào ứng dụng chọn Properties / Tab Directory – chọn Create

Cách 2: Lưu vị trí bất kỳTạo thư mục ảo (Alias) trên WebServer chỉ đến nơi lưu WebSite: start\setting\control Panel\ Administrative Tools\IIS\Website\default website\new\virtual directory\ -> đặt tên alias -> chọn thư mục lưu WebSite thực sự -> chọn quyền: read, run script

Khi tạo trang web tiếng việt lưu ý khi lưu phải luôn chọn Encoding là Unicode (UTF8), xem bài đọc thêm: GioiThieuUnicode_ASP.pdf

Mở trang web để xemTừ trình duyệt gọi trang web từ WebServer. (không click trực tiếp)

http:// tên máy / [Tên Alias] / đường dẫn trang web (thư mục, tập tin) Tên máy có thể là domain name (www.google.com) hay địa chỉ IP (). Nếu trên cùng 1 máy thì có thể thay là localhost.

Cấu truc thư mục, tập tin trong 1 website thường được tạo ra

[App_Data]: lưu dữ liệu

web.config: tập tin định dạng XML luôn nằm trong thư mục gốc của ứng dụng, cho phep cấu hình hệ thống ứng dụng như: định nghĩa các biến toàn cục, bảo mật, ... Mỗi ứng dụng có duy nhất 1 tập tin này.Ví dụ: Định nghĩa biến

<add key="TênBiến" value="GiáTrị"/>Có thể truy cập biến này ở bất kỳ đâu trong ứng dụng

Chuỗi = ConfigurationManager.AppSettings("TênBiến")

10

Page 11: BGi_ASPNET

default.aspx: tập tin chứa các điều khiển (mã giao diện HTML)

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="default.aspx.vb" Inherits="TênLớp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>Untitled Page</title></head>

<body>

</body></html>Muốn viết code trong tập tin này thì dùng <% %> hay <%=tên biến%>, hình thức này gọi là CodeInline

default.aspx.vb: tập tin chứa mã xử lý vb (code behind)Partial Class TênLớp

Inherits System.Web.UI.PageEnd Class

default.aspx.resx: tập tin chứa cấu truc của WebForm dưới dạng XML

11

Page 12: BGi_ASPNET

Chương 3 ĐIỀU KHIỂN TRÊN TRÌNH CHỦ (ServerControl)

So sánh 3 câu lệnh sau: Phần tử HTML

<input type=text name=”tên”>Server Control loại HtmlInputText

<input type=text id=”tên” runat=”server”/>Web Form

<asp:textbox id=”tên” runat=”server”/>

Thuộc tính runat=”server” qui định điều khiển này được biên dịch vào trang và thực thi trên Server khi trang được gọi.Muốn xử lý các điều khiển bằng mã thì cần sử dụng điều khiển dạng ServerControl. Những trường hợp không cần truy cập đến thuộc tính, phương thức và biến cố của phần tử thì không cần dùng ServerControl ví dụ khi phần tử đó chỉ sử dụng để thực thi một Client Script nào đó như: tắt/mở cửa sổ trình duyệt, phần tử là HyperLink ...Khi dùng ServerControl thì không thể khai báo các đoạn Script để kiểm tra tính hợp lệ dữ liệu nhập, cần tài nguyên cho quá trình xử lý trên Server ... Server cần cấu hình đủ mạnh cho một số lượng người dùng cùng truy cập.

1. HTML SERVER CONTROL

Được định nghĩa trong không gian tên System.Web.UI.HtmlControlsBao gồm các điều khiển tương tác thường sử dụng trong thẻ <form> của HTML.

Ví dụ: ExHtmlServerControl.aspx<script runat="server">

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

a.InnerHtml = "Xin Chào" a.Style("color") = "red" a.Style("font-size") = "40px" End Sub</script><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>Untitled Page</title></head><body> <form id="form1" runat="server"> <div id="a" runat=server> </div> </form></body></html>

12

Page 13: BGi_ASPNET

Kết quảCác ví dụ về HtmlServerControl

HtmlGenericControl: tạo ra phần tử Html bất kỳHtmlAnchorControl, HtmlImageControl, HtmlFormControl, HtmlInputButtonControl, HtmlInputTextControl, HtmlInputCheckBoxControl,HtmlInputRadioButtonControl, HtmlInputImageControl, HtmlInputFileControl, HtmlInputHiddenControl, HtmlSelectControl, HtmlTextAreaControl, HtmlTable

Biến cố ServerClick, ServerChangeServerClick: xảy ra khi người dùng tương tác trên các điều khiển như HtmlAnchor, HtmlButton, HtmlInputButton, HtmlInputImage.ServerChange: xảy ra khi người dùng nhấn vào các thành phần điều khiển HtmlInputButton, HtmlInputImage.

2. ASP.NET WEB FORM CONTROLThanh công cụ của web form (toolbox)

HTML: chứa các điều khiển chạy phía client, là các thẻ HTMLStandard : chứa các điều khiển chạy phía server, là các thẻ bắt đầu là chữ asp và có thuộc tính runat=”server”

Ưu điểm web form là: có nhiều chức năng xử lý trên server, kết nối nguồn dữ liệu có sẵnHầu hết các WebForm control đều kế thừa các thuộc tính, phương thức và biến cố lớp cơ sở WebControl được định nghĩa trong không gian có tên System.Web.UI.WebControls

Ví dụ: ExWebForm.aspx

13

Page 14: BGi_ASPNET

2.1. <asp:label>Tương đương thẻ <div>

Thuộc tính Diễn giảiID Nhận dạng điều khiểnText Nội dung hiển thiVisible Cho phep hiển thị hay không (true/false)

Trang aspx:<asp:Label ID="lbThongBao" runat="server" Font-Size="16pt"></asp:Label>

Trang aspx.vb: Dim s As String

Sub Page_Load() s = " " lbThongBao.Text = s End Sub

2.2. <asp:textbox>Thuộc tính Diễn giải

TextMode SingleLine(mặc định), Multiline (rows,columns), Password.

Trang aspx:<asp:TextBox ID="txtTen" runat="server" Font-

Size="16pt"></asp:TextBox>Trang aspx.vb:

s += " Bạn tên: " + txtTen.Text

2.3. <asp:checkbox>Trang aspx:

<asp:CheckBox ID="SoThich1" runat="server" Text="Thể thao" /><asp:CheckBox ID="SoThich2" runat="server" Text="Nghe nhạc" /><asp:CheckBox ID="SoThich3" runat="server" Text="Xem phim" />

Trang aspx.vb:If SoThich1.Checked Then

s += SoThich1.TextEnd IfIf SoThich2.Checked Then

s += SoThich2.TextEnd IfIf SoThich3.Checked Then

s += SoThich3.TextEnd If

2.4. <asp:radiobutton>Thuộc tính Diễn giải

14

Page 15: BGi_ASPNET

GroupName Nhóm các radio cùng bộ Trang aspx:

<asp:RadioButton ID="RadioButton1" runat="server" GroupName="Phai" Text="Nữ" /><asp:RadioButton ID="RadioButton2" runat="server" GroupName="Phai" Text="Nam" />

2.5. <asp:hyperlink>Thuộc tính Diễn giải

ImageUrl Đường dẫn hình ảnh làm nhãn liên kếtTrang aspx:

<asp:HyperLink ID="HuongDan" runat="server" NavigateUrl="HuongDan.htm"> Hướng dẫn thêm</asp:HyperLink>

2.6. <asp:image>Trang aspx:

<asp:Image ID="Image1" runat="server" ImageAlign="Bottom" ImageUrl="Hinh/hinhnguoi.GIF" />

2.7. <asp:button> Tương đương thẻ <input> có type=submit

Trang aspx:<asp:Button ID="txtLuu" runat="server" Text="Lưu" Font-Size="16pt" />

2.8. <asp:imagebutton> Tương đương thẻ <input> có type=image

Trang aspx:<asp:ImageButton ID="ImageButton1" runat="server" AlternateText="Lưu" ImageUrl="Hinh/hinhnguoi.GIF" />

2.9. <asp:table> Trang aspx:

<asp:Table ID="Table1" runat="server" BorderWidth="2px" GridLines="Both">

<asp:TableRow runat="server"><asp:TableCell runat="server">a</asp:TableCell><asp:TableCell runat="server">b</asp:TableCell></asp:TableRow><asp:TableRow runat="server"><asp:TableCell runat="server">c</asp:TableCell><asp:TableCell runat="server">d</asp:TableCell><asp:TableCell runat="server">e</asp:TableCell></asp:TableRow>

</asp:Table>

3. BIẾN CỐ CLICK, CHANGE, COMMAND

15

Page 16: BGi_ASPNET

Các điều khiển Web Form có hai biến cố thông thường là: Click, Change. Biến cố OnClick, OnClientClick sử dụng cho Button, ImageButton. Biến cố OnTextChange xảy ra khi kích hoạt nội dung của textbox và nhấn phím Tab hay trỏ dấu nháy đến điều khiển khác (Lưu ý thuộc tính AutoPostBack). Tương tự như vậy đối với CheckBox là OnCheckedChanged, DropDownList là OnSelectedIndexChanged, RadioButtonList là OnSelectedIndexChanged, ...

OnClick: xử lý hàm phía serverOnClientClick: xử lý hàm phía client (javascript)

Điều khiển chỉ thị (Command Control): Button, ImageButton, LinkButton. Các điều khiển này cho phep khai báo các biến cố khi người sử dụng thực hiện hành động trên Control. Khi nhấn chuột xuống thì biến cố Command trên server sẽ được thực hiện. Có hai thuộc tính là CommandName, CommandArgument.

Trang aspx:<asp:Button ID="Luu" runat="server" Text="Lưu" Font-Size="16pt" onclick=LuuClick/>

Trang aspx.vb:Protected Sub LuuClick(ByVal sender As Object, ByVal e As System.EventArgs)

s += " Bạn tên: " + txtTen.Text lbThongBao.Text = s End Sub

HayTrang aspx:

<asp:Button ID="Luu" runat="server" Text="Lưu" Font-Size="16pt" />

Trang aspx.vb:Protected Sub Luu_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Luu.Click s += " Bạn tên: " + txtTen.Text lbThongBao.Text = sEnd Sub

4. ASP.NET LIST CONTROL

Lớp ASP.NET List Control được kế thừa từ lớp cơ sở có tên ListControl, là một phần của không gian System.Web.UI.WebControls. Cung cấp các thuộc tính, phương thức và biến cố như trong phần Web Form và một số khác biệt.Thuộc tính của ListControl

Thuộc tính Diễn giảiAutoPostBack False: Khi người dùng thay đổi giá trị của ListControl thì trang

web sẽ không được triệu gọi cho đến khi dùng submit.True: Trang web sẽ submit mỗi khi người dùng thay đổi giá trị

16

Page 17: BGi_ASPNET

của ListControl.DataSource Gán hay trả về đối tượng chứa dữ liệu.DataTextField Gán hay trả về tên trường cung cấp nhãn cho ListControlDataValueField Gán hay trả về tên trường cung cấp giá trị cho ListControlSelectedIndex Gán hay trả về giá trị là số nguyên của phần tử được chọn thứ 1

trong ListControl. Trường hợp chọn nhiều phần tử phải sử dụng thuộc tính Selected của đối tượng ListItem.

SelectedItem Trả về tham chiếu của phần tử được chọn thứ 1 trong ListControl. Trường hợp chọn nhiều phần tử phải sử dụng thuộc tính Selected của đối tượng ListItem.

Items Trả về tập các giá trị của các phần tử trong ListControl

4.1. <asp:radiobuttonlist>Trang aspx:

<asp:RadioButtonList ID="Phai" runat="server" RepeatDirection="Horizontal">

<asp:ListItem>Nam</asp:ListItem><asp:ListItem>Nữ</asp:ListItem>

</asp:RadioButtonList>Trang aspx.vb:

s += " - Phái: " + Phai.SelectedValue

4.2. <asp:checkboxlist>Trang aspx:

<asp:CheckBoxList ID="SoThich" runat="server" RepeatDirection="Horizontal">

<asp:ListItem>Thể thao</asp:ListItem><asp:ListItem>Nghe nhạc</asp:ListItem><asp:ListItem>Xem phim</asp:ListItem>

</asp:CheckBoxList></td>Trang aspx.vb:

Sub Page_Load() Dim a As New Hashtable(3)a.Add("1", 1)a.Add("2", 2)a.Add("3", 3)SoThich.DataSource = aSoThich.DataTextField = "Key"SoThich.DataValueField = "Value"SoThich.DataBind()

End Sub

4.3. <asp:dropdownlist>Trang aspx:

<asp:DropDownList ID="Ngay" runat="server"><asp:ListItem Selected="True">Ngày</asp:ListItem>

17

Page 18: BGi_ASPNET

<asp:ListItem>1</asp:ListItem><asp:ListItem>2</asp:ListItem><asp:ListItem>3</asp:ListItem>

</asp:DropDownList><asp:DropDownList ID="Thang" runat="server">

<asp:ListItem Selected="True">Tháng</asp:ListItem></asp:DropDownList>

Trang aspx.vb:Sub Page_Load()

For i = 1 To 12Thang.Items.Add(i)

NextEnd SubhaySub Page_Load()

Dim a As New Hashtable(3) a.Add("1", 1) a.Add("2", 2) a.Add("3", 3) Thang.DataSource = a Thang.DataTextField = "Key" Thang.DataValueField = "Value" Thang.DataBind()End Sub

4.4. <asp:listbox>Thuộc tính Diễn giải

SelectionMode Single/Multiple: chọn một/nhiều phần tử cùng luc.

Trang aspx:<asp:ListBox ID="NgheNghiep" runat="server"><asp:ListItem>Sinh viên</asp:ListItem><asp:ListItem>Giáo viên</asp:ListItem><asp:ListItem>Công nhân</asp:ListItem><asp:ListItem>Kỹ sư</asp:ListItem><asp:ListItem>Khác</asp:ListItem></asp:ListBox></td>

Trang aspx.vb:s += " Nghề nghiệp: " + NgheNghiep.SelectedItem.Value

5. ASP.NET VALIDATION CONTROL

Kiểm tra tính hợp lệ của dữ liệu nhập vào formThuộc tính chung

ControlToValidate: gán/trả về tên điều khiển cần kiểm tra ErrorMessage: chuỗi lỗi phát sinh nếu kiểm tra không hợp lệ.

18

Page 19: BGi_ASPNET

Enabled: gán/trả về giá trị Boolean chỉ ra rằng nếu quá trình kiểm tra giá trị của điều khiển được thực hiện. Gán True nếu muốn kiểm tra dữ liệu nhập bằng các Validation Control, False vô hiệu hóa quá trình kiểm tra.

EnableClientScript: gán/trả về giá trị Boolean chỉ ra rằng cho phep kiểm tra giá trị của điều khiển trên phía trình khách (JavaScript)

5.1. RequiredFieldValidator: kiểm tra điều khiển không được rỗng.Trang aspx:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtTen" ErrorMessage="chưa nhập"> </asp:RequiredFieldValidator>

5.2. RangeValidator: kiểm tra điều khiển phải là chuỗi, số, ngày, …. Nếu rỗng thì không kiểm tra.

Thuộc tính: MaximumValue, MinimumValue, Type (String, Interger, Date, …), …Trang aspx:

<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="Từ 1 đến 10 triệu" MaximumValue="10000000" MinimumValue="1" > </asp:RangeValidator>

5.3. CompareValidator: so sánh điều khiển này với điều khiển khác hay một giá trị cụ thể. Nếu rỗng thì không kiểm tra.

Thuộc tính: ControlToCompare, Operator(Equal, GreaterThan, LessThan, …), Type, ValueToCompare, …

Trang aspx:<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="txtMatKhau" ControlToValidate="txtMatKhauLai" ErrorMessage="không giống " Display="Dynamic"> </asp:CompareValidator>

5.4. RegularExpressionValidator: kiểm tra giá trị trong điều khiển phải phù hợp với giá trị cho trước. Nếu rỗng thì không kiểm tra.

Thuộc tính: ValidationExpression,…Trang aspx:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtEmail" ErrorMessage="không hợp lệ"ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([.]\w+)*"> </asp:RegularExpressionValidator>

5.5. CustomValidator: thực hiện kiểm tra do người dùng tự định nghĩa.Thuộc tính: ClientValidationFunction, OnServerValidation

5.6. ValidationSummary: tập hợp các thông báo lỗi.

19

Page 20: BGi_ASPNET

Thuộc tính: DisplayMode, ShowMessageBox, ShowSummary, …

6. ASP.NET RICH CONTROL

6.1 <asp:AdRotator>Ví dụ: ExXmlfile.xml, ExRichControl.aspxExXmlfile.xml (lưu ý phân biệt chữ hoa, chữ thường)

<?xml version="1.0" encoding="utf-8" ?><Advertisements> <Ad> <ImageUrl>Hinh/hinhnguoi.GIF</ImageUrl> <NavigateUrl>www.a.com</NavigateUrl> <AlternateText>aaa</AlternateText> <Impressions>3</Impressions> </Ad> <Ad> <ImageUrl>Hinh/HoaNho.GIF</ImageUrl> <NavigateUrl>www.b.com</NavigateUrl> <AlternateText>bbb</AlternateText> <Impressions>2</Impressions> </Ad> </Advertisements>

ExRichControl.aspx<asp:AdRotator ID="AdRotator1" runat="server" AdvertisementFile="ExXMLFile.xml" />

Kết quả

6.2 <asp:Calendar> Ví dụ ExRichControl.aspx <asp:Calendar ID="Calendar1" runat="server"> </asp:Calendar>

Kết quả

20

Page 21: BGi_ASPNET

6.3 <asp:XML>

7. ASP.NET MOBILE CONTROL

21

Page 22: BGi_ASPNET

Chương 4 CÁC ĐỐI TƯỢNG TRONG ASP

1. RESPONSEHttpResponse được dùng đê chuyển dữ liệu từ Server về ClientGởi tất cả thông tin xử lý cho các client yêu cầu, chung ta có thể sử dụng đối tượng này để giao tiếp với người dùng. Gởi thông tin từ server cho client.Phương thức

Response.write(str): xuất thông tin dạng chuỗi ra trang web.Response.Redirect: chuyển sang trang khác.WriteFile: ghi luồng dữ liệu ra tập tin. Clear, end, flush…

Ví dụResponse.write (str)Response.write (“str”)Response.Redirect("abc.aspx")

2. REQUESTHttpRequest được dùng để vận tải dữ liệu từ Client về Server.Đối tượng Request trong ASP.NET được cài đặt trong lớp HttpRequest thuộc không gian tên System.WebNhận tất cả giá trị mà trình duyệt của client gởi đến server thông qua một yêu cầu HTTP (HTTP request). Lấy thông tin từ client. Phương thức form

POST: đối tượng Request dùng FORM nhận các dữ liệu gởi đến server.GET: đối tượng Request dùng QueryString nhận các dữ liệu gởi đến server.

Params: lấy giá trị của tham số trên QueryString, Forms, ServerVariables (chứa các thông tin Server_Name, IP, …), CookiesSaveAs: lưu yêu cầu hiện tại trên HTTP ra tập tin. (page54) Request.Form(thamsố)[(index)|.Count]Request.QueryString(thamsố)[(index)|.Count]Request(thamsố)[(index)|.Count]

Ví dụ: QueryString nhận các dữ liệu truyền theo url sau dấu ?

<a href=”têntậptin?biến1=giátrị1&biến2=giátrị2”>Request.QueryString(biến1)Request.QueryString(biến2)

Tập hợp form: thuộc tính count, keysTập hợp querystring: thuộc tính count, keys(i):mảng, trả về tên các tham số

Ví dụ: ExReqRes.htm, ExReqRes.aspx.vbTạo file ExReqRes.htm

<body>

22

Page 23: BGi_ASPNET

<FORM name=f action=ExReqRes.aspx method =post><P>Họ <INPUT name=Ho></P><P>Tên<INPUT name=Ten></P><P>Phái<INPUT type=radio value=Bà name=Phai>Nữ<INPUT type=radio value=Ông name=Phai> Nam </P><P><INPUT type=submit value=OK name=submit1></P>

</FORM></body>

Tạo file ExReqRes.aspx.vbProtected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim h, t, p, str As String h = Request.Form("Ho") t = Request("Ten") p = Request("Phai") str = "Chào " + p + " " + h + " " + t Response.Write(str) End Sub

Kết quả

Ví dụ ExReqRes1.aspx<body><form id="form1" runat="server">

<asp:Label ID="Label1" runat="server" Text="Nghề nghiệp "></asp:Label><asp:ListBox ID="NgheNghiep" runat="server" SelectionMode="Multiple"><asp:ListItem Selected>Gi&#225;o vi&#234;n</asp:ListItem><asp:ListItem>C&#244;ng Nh&#226;n</asp:ListItem><asp:ListItem>Nh&#226;n Vi&#234;n</asp:ListItem><asp:ListItem>Tự Do</asp:ListItem></asp:ListBox><asp:Button ID="Goi" runat="server" Text="Gởi" />

</form></body>

23

Page 24: BGi_ASPNET

Protected Sub Goi_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Goi.Click

If Request.Form.GetValues("nghenghiep").Length > 0 Then

Dim i, n As Integern = Request.Form.GetValues("nghenghiep").Length -

1For i = 0 To n

Response.Write(Request.Form.GetValues("NgheNghiep")(i) + "<br>")

NextEnd If

End Sub

Kết quả

Ví dụ ExReqRes1.aspx.vbProtected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim n As StringFor Each n In Request.ServerVariables

Response.Write("<P><B>" + n + "</B><P>")Response.Write(Request.ServerVariables(n))

NextEnd Sub

Kết quả

24

Page 25: BGi_ASPNET

3. APPLICATIONDữ liêu lưu trong Application sẽ được chia sẽ cho tòan bộ ứng dụng và tòan bộ người dùngVí dụ: Đếm số người dùng đã truy cập.

Application(“tên đối tượng”) = giá trị

4. SESSIONDữ liêu lưu trong Session sẽ được chia sẽ cho tòan bộ ứng dụng của 1 người dùng.

Session(“tên đối tượng”) = giá trị

Ví dụ: Global.asax, ExAppSes.aspx.vbTập tin Global.asax

<script runat="server"> Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) ' Goi 1 lan Application("SoNguoiDaDangNhap") = 0 Application("SoNguoiDangDangNhap") = 0 End Sub Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs when a new session is started Application("SoNguoiDaDangNhap") += 1 Application("SoNguoiDangDangNhap") += 1 Session("TenDangNhap") = "" Session("GioHang") = New ArrayList

25

Page 26: BGi_ASPNET

End Sub Sub Session_End(ByVal sender As Object, ByVal e As EventArgs) Application("SoNguoiDangDangNhap") -= 1 Session("TenDangNhap") = "" End Sub</script>

Tập tin ExAppSes.aspx.vbProtected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Response.Write("Số người đã truy cập: " & Application("SoNguoiDaDangNhap"))Response.Write("<br>Số người đang truy cập: " & Application("SoNguoiDangDangNhap"))

End Sub

5. COOKIESLưu thông tin người dùng trên cùng một máy là như nhau (không bảo mật)Thông tin dữ liệu chứa trong Cookies chia sẽ cho 1 chương trình của 1 người dùng.

6. EXCEPTION Cho phep kiểm soát lỗi

26

Page 27: BGi_ASPNET

Chương 5 KẾT NỐI DỮ LIỆU VỚI ĐỐI TƯỢNG ADO.NET

Tham khảo thêm: www.asp.net/learn/videos/07 - Databinding to User Interface Controls_vb

Lơp kêt nối Lơp không kêt nốiCho phep truy vấn dữ liệu (select) và thao tác (delete, insert, update) đến nguồn dữ liệu

Cho phep thao tác trên dữ liệu tạm thời hay dữ liệu mà có thể đọc hay ghi ra luồng XML, tập tin

Phải dùng .NET Data Provider hỗ trợ cho CSDL kết nối. Bao gồm 4 lớp

1. Connection: lớp kết nối với nguồn CSDL.

2. Command: lớp chứa lệnh thi hành (Select, Insert, Update, Delete).

3. DataAdapter: lớp chứa bộ điều phối dữ liệu.

4. DataReader: lớp đọc luồng dữ liệu từ nguồn dữ liệu một chiều (Forward-only

Dùng .NET Data Provider tùy ý. Bao gồm 3 lớp

1. DataSet: bộ nhớ truy cập nhanh (cache memory), cho phep lưu trữ dữ liệu được lấy từ dữ liệu nguồn. Là một container để chứa đựng và kiểm soát toàn bộ mẩu tin, mà còn giữ nhiều bảng dữ liệu và các quan hệ giữa chung.

2. DataTable: bảng dữ liệu3. DataView: trình bày dữ liệu dưới

các góc nhìn khác nhau.

ADO.NET bao gồm 2 Provider:

SQL Server.NET Data Provider OLE DB.NET Data ProviderSqlConnection: dùng cho SQL Server 7.0 hay các phiên bản về sau

OleDbConnection: dùng cho SQL Server 6.5 hay các phiên bản về trước, tập tin văn bản, bảng tính…phụ thuộc vào nguồn dữ liệu kết nối, cho phep kết nối nhiều loại dữ liệu: Access, Oracle ….

SqlCommand OleDbCommandSqlDataAdapter OleDbDataAdapterSqlDataReader OleDbDataReaderSqlParameter OleDbParameter

Cu pháp hầu như giống nhau.

Khai báo không gian tên ADO.NET Imports System.DataImports System.Data.SqlClienthayImports System.DataImports System.Data.OleDb

27

Page 28: BGi_ASPNET

hayImports System.DataImports System.Data.OdbchayImports System.DataImports System.Data.OracleClient

Khai báo và sử dụng không gian tên của ADO.NET:Imports System.Data.SqlClient

1. Đối tượng SqlConnection

Thiết lập kết nối với nguồn CSDL.

Chuỗi kết nối (ConnectionString): Có thể viết trong trang ASP.NET

StrConn = "server=TênMáyChứaDữLiệu;UID=TênĐăngNhập;PWD=MậtKhẩu;database=TênCSDL;"Dim myConn As SqlConnection = New SqlConnection(StrConn)myConn.Open()

Hay trong tập tin Web.Config<configuration> <appSettings>

<add key="conn" value="server=TênMáyChứaDữLiệu;UID=TênĐăngNhập;PWD=MậtKhẩu;database=TênCSDL;" />

</appSettings>Sau đó dùng trong trang ASP.NET

StrConn = ConfigurationManager.AppSettings("conn")

Phương thức mở / đóng kết nối: myConn.Open() / myConn.Close()Thuộc tính: ConnectionString, ChangeDatabase, DataSource (tên server/địa chỉ IP…), ConnectTimeOut, State (trạng thái kết nối). Phương thức: Open, Close, CreateCommand, BeginTransaction, Rollback, Dispose.

Đối tượng OleDbConnectionTương tự như SqlConnection nhưng có thêm thuộc tính Provider: chọn trình điều khiển dữ liệu.

2. Đối tượng SqlCommandLớp chứa lệnh thi hành (Select, Insert, Update, Delete). Thực thi các câu lệnh SQL hay Stored Procedure

2.1. Phương thức:

28

Page 29: BGi_ASPNET

ExecuteReader:Ví dụ: ExSqlConn.aspx

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim StrConn As String

StrConn = "server=localhost;UID=sa;PWD=sa;database=Sach;" 'StrConn = ConfigurationSettings.AppSettings("conn")

Dim myConn As SqlConnection = New SqlConnection(StrConn) myConn.Open()

Dim StrSQL As String StrSQL = "select * from NhaXuatBan" Dim myCom As SqlCommand = New SqlCommand(StrSQL, myConn) Dim drd As SqlDataReader drd = myCom.ExecuteReader While drd.Read Response.Write("<br>Tên: ") Response.Write(drd("TenNXB").ToString) Response.Write("<br>Địa chỉ: ") Response.Write(drd("DiaChi").ToString) Response.Write("<br>Điện thoại: ") Response.Write(drd("DienThoai").ToString) Response.Write("<br>") End While drd.Close()End Sub

ExecuteNonQueryVí dụ: ExSqlCom.aspx (lưu ý khi refesh)

If Request.Form("TenNXB") <> " " ThenDim StrSQL As StringStrSQL = "insert into NhaXuatBan(TenNXB,DiaChi,DienThoai) values('" + Request.Form("TenNXB") + "','" + Request.Form("DiaChi") + "','" + Request.Form("DienThoai") + "')"Dim myCom As SqlCommand = New SqlCommand(StrSQL, myConn)myCom.ExecuteNonQuery()

End If

29

Page 30: BGi_ASPNET

ExecuteScalarVí dụ: ExSqlCom.aspx

Dim StrSQL1 As String StrSQL1 = "select count(*) from NhaXuatBan" Dim myCom1 As SqlCommand = New SqlCommand(StrSQL1, myConn) Dim n As Integer n = myCom1.ExecuteScalar Response.Write("<br>Đếm cout NXB: " & n)

2.2. Thuộc tính:Connection: chứa đối tượng kết nốiCommandtext: chứa câu lệnh SQL

ThayDim myCom As SqlCommand = New SqlCommand(StrSQL, myConn)

BằngDim myCom As New SqlCommand

myCom.CommandText = StrSQL myCom.Connection = myConn

3. Đối tượng DataReader

4. Đối tượng DataAdapter

5. Đối tượng DataSetVí dụ: ExDataSet.aspx

Response.Write("<br>Sách: ")Dim StrSQL As StringStrSQL = "select * from NhaXuatBan, Sach where NhaXuatBan.MaNXB=Sach.MaNXB"Dim myDataSet As New DataSetDim myDataAdapter As New SqlDataAdapter(StrSQL, myConn)myDataAdapter.Fill(myDataSet)GridView1.DataSource = myDataSetGridView1.DataBind()

6. Đối tượng DataTable

7. Đối tượng DataView

Ví dụ: ExDataTable.aspx Tạo bảng dữ liệu, thêm cột, hàng Dim myConn As SqlConnection Dim myDataSet As DataSet Dim myDataView As DataView

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

30

Page 31: BGi_ASPNET

Dim StrConn As String StrConn = ConfigurationSettings.AppSettings("conn") myConn = New SqlConnection(StrConn) myConn.Open()

TaoBang()

GridView1.DataSource = myDataSet GridView1.DataBind() GridView2.DataSource = myDataView GridView2.DataBind() End Sub Protected Sub TaoBang() Dim myDataTable As DataTable = New DataTable("NhanVien") Dim myDataColumn As DataColumn

myDataColumn = New DataColumn myDataColumn.DataType = System.Type.GetType("System.Int32") myDataColumn.ColumnName = "MaNV" myDataColumn.Unique = True myDataTable.Columns.Add(myDataColumn)

myDataColumn = New DataColumn myDataColumn.DataType = System.Type.GetType("System.String") myDataColumn.ColumnName = "TenNV" myDataTable.Columns.Add(myDataColumn)

Dim key(0) As DataColumn key(0) = myDataTable.Columns("MaNV") myDataTable.PrimaryKey = key

myDataSet = New DataSet myDataSet.Tables.Add(myDataTable)

Dim i As Integer Dim myDataRow As DataRow For i = 0 To 5 myDataRow = myDataTable.NewRow myDataRow("MaNV") = i myDataRow("TenNV") = "Nguyễn " + i.ToString myDataTable.Rows.Add(myDataRow) Next myDataView = New DataView(myDataTable) With myDataView .RowFilter = "MaNV>1"

31

Page 32: BGi_ASPNET

.Sort = "TenNV desc" End With End Sub

8. Đối tượng DataRelation

32

Page 33: BGi_ASPNET

Chương 6 LIST CONTROL

Tham khảo thêm: www.asp.net/learn/videos/ 07 - Databinding to User Interface Controls_vb: DataSource, GridView, DetailView. 08 - Working with the GridView and FormView Controls_vb

1. Điều khiển GridViewCho phep hiển thị dữ liệu dạng bảng, kết quả xuất ra trình duyệt là thẻ <table>. Có thể: phân trang; sắp xếp từng cột dữ liệu; chọn, xóa, cập nhật từng dòng dữ liệu.

1.1 Các thuộc tính thường dùngVí dụ: ExGridView2.aspx, ExGridView2.aspx.vbTập tin ExGridView.aspx: phần xử lý chọn record dữ liệu hiển thị thông tin chi tiết

Danh sách nhà xuất bản<asp:GridView

ID="GridView1" //nhận dạngrunat="server" AutoGenerateColumns="False" //True: tự động tạo các BoundColumn //cho phép hiển thị các cột dữ liệu theo dữ liệu nguồn.//False: muốn chỉ định cột hiểu thị, dùng <columns> …CellPadding="2" //khỏang cách giữa các hàngCellSpacing="3" //khỏang cách giữa các cộtDataKeyNames="MaNXB"DataSourceID="SqlDataSource1" //Nguồn dữ liệu - DataSource: chỉ định đối tượng DataSet/DataReader chứa dữ liệu, cần dùng thêm phương thức DataBind để điều dữ liệu vào GridView.Width="681px"><PagerSettings Position="Top" /> //Định dạng phân trang<Columns>

<asp:BoundField DataField="TenNXB" HeaderText="Tên" />

//Hiểu thị dữ liệu của một cột dữ liệu trong DataSource – Tương tự có thể dùng <asp:templatecolumn …

<asp:BoundField DataField="DienThoai" HeaderText="Điện thoại" />

</Columns><HeaderStyle BackColor="#8080FF" />

33

Page 34: BGi_ASPNET

//Định dạng dữ liệu trình bày trong phần tiêu đề của bảng<AlternatingRowStyle BackColor="#C0C0FF" Font-Bold="True" ForeColor="CornflowerBlue" />//Định dạng dữ liệu dòng lẻ

</asp:GridView>

1.2 Hiển thị dữ liêuNhư ví dụ trong phần kết nối nguồn dữ liệu

1.3 Phân trang Khi số lượng mẩu tin tồn tại trong DataSource quá lớn. bạn nên trình bày thành nhiều trang.

Các thuộc tínhThẻ asp:GridView

AllowPaging="True/False" //Cho phép phân trang và điều hướngPageSize="5" //số lượng mẫu tin trong 1 trang - PageCount(chỉ đọc, số lượng trang)

Thẻ PagerSettings Position=Top/Bottom/TopandBottomMode=Numeric/NumericFirstLast/NextPrevious/NextPreviousFirstLastNextPageTextNextPageImageUrlPageButtonCount //số trang hiểu thị, nếu số trang nhiều hơn số này thì sẽ hiển thị từng phần …

Sự kiên PageIndexChanging TênGridView.PageIndex = e.NewPageIndex

Với e là System.Web.UI.WebControls.GridViewPageEventArgsLưu ý cần nạp lại dữ liệu cho GridView

1.4 Sắp xêp Các thuộc tính

Thẻ asp:GridView AllowSorting="True/False"

Thẻ asp:BoundField SortExpression="TenNXB" //tên trường dữ liệu

Đối tượng ViewState: là biên server dùng để lưu trạng thái hiên hành của trang. Thông tin lưu được ma hóa. Là đối tượng mơi trong .net

34

Page 35: BGi_ASPNET

Sub Page_Load If Not IsPostBack Then ViewState("TenCot") = "TenNXB" ViewState("SapGiam") = True DuLieu() End If End Sub Sub DuLieu()

‘kết nối và lấy dữ liệu

GridView1.DataSource = myDataTable.DefaultView t = ViewState("TenCot") & IIf(ViewState("SapGiam"), " ", " Desc")

myDataTable.DefaultView.Sort = t GridView1.DataBind() End Sub

Sự kiên SortingIf ViewState("TenCot") = e.SortExpression Then

ViewState("SapGiam") = Not ViewState("SapGiam")Else

ViewState("TenCot") = e.SortExpressionEnd Ift = e.SortExpression & IIf(ViewState("SapGiam"), " Desc", "")

Với e là System.Web.UI.WebControls.GridViewSortEventArgs, s là biến toàn cục. Lưu ý cần nạp lại dữ liệu cho GridView

Thuộc tính DefaultView: điều chỉnh khung nhìn của bảng. Khung nhìn dữ liệu trả về bảng dữ liệu có thể lọc, sắp xếp, tìm kiếm.

1.5 Xóa dữ liêu Các thuộc tính

<Columns><asp:CommandField DeleteText ="Xóa" ShowDeleteButton=True />

Có thể dùng hình ảnh thay chữDeleteImageUrl="Hinh.GIF" ButtonType="Image"

Sự kiên RowDeleting StrSQL = "delete from NhaXuatBan where MaNXB=@Ma"

35

Page 36: BGi_ASPNET

Dim myCom As New SqlCommand(StrSQL, myConn)myCom.Parameters.AddWithValue("@Ma", GridView1.DataKeys(e.RowIndex).Value)

myCom.ExecuteNonQuery()

Với e là System.Web.UI.WebControls.GridViewDeleteEventArgs

Xóa nhiều<asp:TemplateField .. hiển thị thêm một cột trống để tùy ý chèn điều khiển vào.

<Columns><asp:TemplateField HeaderText="Xóa">

<ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" /> </ItemTemplate> </asp:TemplateField>

……..

<asp:Button ID="Xoa" runat="server" Text="Xóa" OnClientClick ="return confirm('Bạn thật sự muốn xóa ?')" />

Trong sự kiên Click của nút Xóa Dim c As CheckBox Dim i As Integer Dim s As String = " " Dim myGridViewRow As GridViewRow

For i = 0 To GridView1.Rows.Count - 1 myGridViewRow = GridView1.Rows(i) c = CType(myGridViewRow.FindControl("CheckBox1"), CheckBox) If c.Checked Then Dim StrConn As String Dim myConn As SqlConnection StrConn = ConfigurationManager.AppSettings("conn") myConn = New SqlConnection(StrConn) myConn.Open() Dim StrSQL As String StrSQL = "delete from NhaXuatBan where MaNXB=@Ma" Dim myCom As New SqlCommand(StrSQL, myConn)

myCom.Parameters.AddWithValue("@Ma", GridView1.DataKeys(i).Value)

myCom.ExecuteNonQuery() End If

36

Page 37: BGi_ASPNET

Next

1.6 Cập nhật dữ liêu Các thuộc tính

<Columns><asp:CommandField EditText="Sửa" CancelText="Bỏ qua" UpdateText="Cập nhật" ShowEditButton="True" />

Có thể dùng hình ảnh thay chữEditImageUrl="Hinh.GIF" ButtonType="Image"

Sự kiên RowEditingGridView1.EditIndex = e.NewEditIndex

Với e là System.Web.UI.WebControls.GridViewEditEventArgs Lưu ý cần nạp lại dữ liệu cho GridView

Sự kiên RowCancelingEdit GridView1.EditIndex = -1Với e là System.Web.UI.WebControls.GridViewCancelEditEventArgsLưu ý cần nạp lại dữ liệu cho GridView

Sự kiên RowUpdating

‘kết nối dữ liệu

StrSQL = "update NhaXuatBan set TenNXB=@Ten,DiaChi=@DC,DienThoai=@DT where MaNXB=@Ma"

Dim myCom As New SqlCommand(StrSQL, myConn)

myCom.Parameters.AddWithValue("@Ma", GridView1.DataKeys(e.RowIndex).Value)

Dim myGridViewRow As GridViewRow myGridViewRow = GridView1.Rows(e.RowIndex) Dim t1, t2, t3 As TextBox t1 = myGridViewRow.Cells(0).Controls(0) t2 = myGridViewRow.Cells(1).Controls(0) t3 = myGridViewRow.Cells(2).Controls(0) myCom.Parameters.AddWithValue("@Ten", t1.Text) myCom.Parameters.AddWithValue("@DT", t2.Text) myCom.Parameters.AddWithValue("@DC", t3.Text)

myCom.ExecuteNonQuery() GridView1.EditIndex = -1

37

Page 38: BGi_ASPNET

Với e là System.Web.UI.WebControls.GridViewUpdateEventArgsLưu ý cần nạp lại dữ liệu cho GridView

2. Điều khiển DataList

2.1 Các thuộc tính thường dùng <asp:DataList ID="DataList1" runat="server" DataKeyField="MaS" RepeatColumns=1 RepeatDirection=Horizontal Width="100%">

<ItemTemplate> TenS: <asp:Label ID="TenSLabel" runat="server"

Text='<%# Eval("TenS") %>'></asp:Label><br />

DonGia: <asp:Label ID="DonGiaLabel" runat="server"

Text='<%# Eval("DonGia") %>'></asp:Label><br />

</ItemTemplate> </asp:DataList>

2.2 Hiển thị dữ liêu từ SQL ServerVí dụ: ExDataList.aspxKết nối nguồn dữ liệu Dim StrSQL As String StrSQL = "select * from Sach" Dim StrConn As String Dim myConn As SqlConnection StrConn = ConfigurationManager.AppSettings("conn") myConn = New SqlConnection(StrConn) myConn.Open()

Dim myDataTable As New DataTable

Dim myDataAdapter As New SqlDataAdapter(StrSQL, myConn) myDataAdapter.Fill(myDataTable)

DataList1.DataSource = myDataTable DataList1.DataBind()

Có thể chèn các điều khiển để hiển thị dữ liệu dạng hình ảnh, liên kết ..<asp:Image …<asp:HyperLink …

Dùng sự kiện ItemDataBound để gán dữ liệu vào (xảy ra khi 1 dữ liệu được gán vào DataList) Dim hinh As Image

38

Page 39: BGi_ASPNET

Dim l1 As Label Dim l2 As Label Dim h As HyperLink

hinh = CType(e.Item.FindControl("Image1"), Image) hinh.ImageUrl = "Image/" & e.Item.DataItem("HinhMinhHoa")

h = CType(e.Item.FindControl("HyperLink1"), HyperLink) h.NavigateUrl = "ChiTiet.aspx?Ms=" & e.Item.DataItem("MaS") h.Text = e.Item.DataItem("TenS")

l1 = CType(e.Item.FindControl("Label1"), Label) l1.Text = Format(e.Item.DataItem("DonGia"), "#,##") & " Đồng"

l2 = CType(e.Item.FindControl("Label2"), Label) l2.Text = Format(e.Item.DataItem("NgayCapNhat"), "dd/MM/yyyy")

Trong tập tin ChiTiet.aspx lấy giá trị của MaS trong biến Ms rồi hiển thị tất cả thông tin liên quan đến cuốn sách đó

Dim s As String s = Request.QueryString("Ms")

Lưu ý phân biệt chữ hoa thường: "dd/MM/yyyy"

2.3 Tạo liên kêt các chức năng

Tạo DataList có 1 liên kết<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal"> <ItemTemplate>

<asp:HyperLink ID="HyperLink1" runat="server"> HyperLink</asp:HyperLink>

</ItemTemplate></asp:DataList>

Tạo lớpClass ChucNang Public mTen As String Public mDuongDan As String Public Sub New(ByVal Ten As String, ByVal DuongDan As String) mTen = Ten

39

Page 40: BGi_ASPNET

mDuongDan = DuongDan End SubEnd Class

Tạo mảng các chức năng

Dim a As New ArrayLista.Add(New ChucNang("Nhà xuất bản", "NhaXuatBan.aspx"))a.Add(New ChucNang("Khách Hàng", "KhachHang.aspx"))

Sự kiện ItemDataBound

Dim c As ChucNangDim h As HyperLinkc = CType(e.Item.DataItem, ChucNang)h = CType(e.Item.FindControl("HyperLink1"), HyperLink)h.Text = c.mTen & "|||"h.NavigateUrl() = c.mDuongDan

3. Điều khiển DetailViewTại một thời điểm chỉ cho phep hiển thị một dòng dữ liệu. Có thể: phân trang, xóa, thêm, cập nhật dữ liệu nhưng không sắp xếp. Có thể lấy dữ liệu từ View hay nhiều bảng nhưng luc đó không thể cập nhật dữ liệu.

3.1 Các thuộc tính thường dùng<asp:DetailsView

ID="DetailsView1" runat="server" AllowPaging="true" AutoGenerateRows="False" DataSourceID="SqlDataSource1" ><Fields>

<asp:BoundField DataField="TenNXB" HeaderText="Tên NXB" /><asp:BoundField DataField="DiaChi" HeaderText="Địa Chỉ" />

</Fields></asp:DetailsView>

3.2 Hiển thị dữ liêuTương tự như trên GridView

3.3 Hiển thị dữ liêu theo chọn lựa trên GridView Sự kiên trên GridView: SelectedIndexChanged

DetailsView1.PageIndex = GridView1.SelectedIndex + GridView1.PageSize * GridView1.PageIndex

Với e là System.EventArgs

3.4 Xử lý dữ liêu

4. Điều khiển FormView

40