Giáo trình ASP.net (Phần 1)

Cùng với sự phát triển mạnh mẽ về công nghệ thông tin, đặc biệt là sự phát triển hệ thống

mạng intranet, internet. Trong các lĩnh vực ngày nay như : thương mại, y tế, giáo dục., nhu

cầu trao đổi thông tin thực sự là cần thiết, giúp cho công việc được triển khai nhanh , chính

xác, dễ dàng và tiết kiệm chi phí, thông tin được cập nhật kịp thời. Do đó vấn đề đặt ra là

chúng ta cần phải có một ứng dụng cho phép trao đổi thông tin mọi lúc, mọi nơi, dễ sử dụng,

thông qua mạng. Ứng dụng Web đáp ứng được các yêu cầu đặt ra và sau đây là các lý do tại

sao chúng ta phải sử dụng Web :

 Dễ dàng trao đổi và chia sẽ thông tin thông tin qua mạng .

 Sử dụng giao diện đồ họa giúp cho người dùng dễ sử dụng .

 Hỗ trợ về multimedia như : hình ảnh , âm thanh, phim ảnh,

 Hỗ trợ nhiều chương trình(web-browser) để truy cập Web.

 Hỗ trợ truy cập web trên các thiết bị đi động: PocketPC, SmartPhone,

 Hỗ trợ nhiều ngôn ngữ để phát triển Web: ASP, ASP.NET, JSP,

pdf 314 trang kimcuc 17660
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình ASP.net (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình ASP.net (Phần 1)

Giáo trình ASP.net (Phần 1)
MỤC LỤC 
Chƣơng 1. Lập trình Web & ASP.NET ................................................................................ 1 
1.1. Giới thiệu về ứng dụng Web ........................................................................................ 1 
1.2. Giới thiệu về ASP và ASP.NET ................................................................................... 4 
1.3. Web Server IIS ........................................................................................................... 10 
1.4. Tạo ứng dụng Web với ASP.NET .............................................................................. 13 
1.5. Khảo sát giao diện Visual Studio .NET 2008 ............................................................ 16 
1.6. Bài thực hành chương 1.............................................................................................. 19 
Chƣơng 2. Tìm hiểu và sử dụng các Server Controls ........................................................ 21 
2.1. Cấu trúc trang ASP.NET ............................................................................................ 21 
2.2. Biến cố trang ASP.NET  ........................................................................................ 26 
2.3. Giới thiệu ASP.NET Server Controls ........................................................................ 28 
2.4. HTML Server Controls .............................................................................................. 29 
2.5. ASP.NET Server Controls .......................................................................................... 52 
2.6. Sự kiện PageLoad và thuộc tính IsPostBack .............................................................. 79 
2.7. Thuộc tính AutoPostBack của một số Web Server Controls ..................................... 83 
2.8. Bài thực hành chương 2.............................................................................................. 88 
Chƣơng 3. Master Page – Web Navigation ......................................................................... 94 
3.1. Master Page ................................................................................................................ 94 
3.2. Web Navigation ........................................................................................................ 104 
3.3. Web User Control ..................................................................................................... 113 
3.4. Đối tượng Request, Response và Server .................................................................. 122 
3.5. Bài thực hành chương 3............................................................................................ 131 
Chƣơng 4. Quản lý trạng thái ............................................................................................ 137 
4.1. Vấn đề trạng thái ...................................................................................................... 137 
4.2. Xem trạng thái (View State) ..................................................................................... 138 
4.3. Chuyển thông tin giữa các trang ............................................................................... 140 
4.4. Đối tượng Cookies ................................................................................................... 145 
4.5. Đối tượng Session .................................................................................................... 148 
4.6. Đối tượng Application .............................................................................................. 150 
4.7. Tập tin Global.asax................................................................................................... 153 
4.8. Tập tin Web.config ................................................................................................... 154 
4.9. Bài tập chương 4 ...................................................................................................... 157 
Chƣơng 5. Sử dụng các Validation Controls .................................................................... 160 
5.1. RequiredFieldValidator ............................................................................................ 161 
5.2. Điều khiển RangeValidator ...................................................................................... 164 
5.3. Điều khiển CompareValidator .................................................................................. 166 
5.4. Điều khiển RegularExpressionValidator .................................................................. 169 
5.5. Điều khiển Custom Validator ................................................................................... 172 
5.6. Điều khiển ValidationSummary ............................................................................... 174 
5.7. Bài thực hành chương 5............................................................................................ 179 
Chƣơng 6. Các đối tƣơng dữ liệu (Rich Controls – Login .............................................. 183 
6.1. Điều khiển hiển thị các trang khác nhau MultiView. .............................................. 183 
6.2. Điểu khiển Wizard.................................................................................................... 190 
6.3. Nhóm Điều khiển Login ........................................................................................... 197 
6.4. Bài tập chương 6 ...................................................................................................... 203 
Chƣơng 7. Giới thiệu ADO.NET ........................................................................................ 216 
7.1. Kiến trúc ADO.NET................................................................................................. 216 
7.2. Tìm hiểu trình cung cấp dữ liệu của ADO.NET ...................................................... 217 
7.3. Các namespace của ADO.NET ................................................................................ 219 
7.4. Tìm hiểu cơ chế kết nối của ADO.NET qua Connected Layer ................................ 223 
7.6. Disconnected Layer .................................................................................................. 247 
7.7. Đối tượng dữ liệu SqlDataSource ............................................................................ 256 
7.8. Bài tập chương 7 ...................................................................................................... 264 
Chƣơng 8. Tìm hiểu và ứng dụng cơ chế Data Binding ................................................... 268 
8.1. Các dạng Data Binding. ............................................................................................ 268 
8.2. Bài tập chương 8 ...................................................................................................... 274 
Chƣơng 9. Các đối tƣơng dữ liệu (Data Controls) ........................................................... 279 
9.1. Đối tượng dữ liệu GridView. ................................................................................... 279 
9.2. Đối tượng dữ liệu DetailsView ................................................................................ 299 
9.3. Đối tượng dữ liệu FormView ................................................................................... 302 
9.4. Đối tượng dữ liệu DataList ....................................................................................... 304 
9.5. Đối tượng dữ liệu Repeater ...................................................................................... 308 
9.6. Bài thực hành chương 9............................................................................................ 310 
Chƣơng 10. Bảo mật các ứng dụng Web ........................................................................... 312 
10.1. Giới Thiệu về Bảo Mật Trong ASP.Net. ................................................................. 312 
10.2. Thí dụ minh họa ...................................................................................................... 313 
Chƣơng 11. Giới thiệu AJAX ............................................................................................ 319 
11.1. Giới thiệu Ajax. ..................................................................................................... 319 
11.2. Ajax làm việc như thế nào? ................................................................................... 319 
11.3. ASP.Net Ajax Server Control ............................................................................... 328 
11.4. Giới thiệu Ajax Toolkit 3.5 ................................................................................... 331 
11.5. Tìm hiểu một số điều khiển trong Ajax Toolkit 3.5.............................................. 336 
11.6. Bài thực hành chương 11 ...................................................................................... 382 
Chƣơng 12. Lập trinh LINQ .............................................................................................. 396 
12.1. Giới Thiệu LINQ. ................................................................................................. 396 
12.2. Các Khái Niệm Cơ Bản ........................................................................................ 398 
12.3. LINQ to Objects .................................................................................................... 404 
12.4. LINQ to DataSet ................................................................................................... 405 
12.5. LINQ to SQL ........................................................................................................ 408 
Chƣơng 13. Lập trình Web Services ................................................................................ 415 
13.1. Giới thiệu Web services. ....................................................................................... 415 
13.2. Kiến trúc và các thành phần Web services ........................................................... 416 
13.3. Xây Dựng Ứng Dụng Web Service ...................................................................... 420 
Chƣơng 14. Xây dựng Website bán hàng ......................................................................... 427 
Chƣơng 15. Thiết kế Website bán hàng –Mức dữ liệu .................................................... 436 
Chƣơng 16. Thiết kế Website bán hàng –Mức xử lý ........................................................ 451 
Chƣơng 17. Thiết kế Website bán hàng –Mức trình diễn ............................................... 474 
Lưu hành nội bộ Trang 1 
 Chƣơng 1: Lập Trình Web & ASP.Net 
Kết thúc chƣơng này các bạn có thể : 
 Trình bày được khái niệm ứng dụng thương mại điện tử 
 Mô tả được các khái niệm cơ bản về Web,kiến trúc Client-Server 2 lớp và 3 lớp. 
 Mô tả được các ngôn ngữ lập trình Web: HTML, DHTML, VBScript,JavaScript. 
 Trình bày và cài đặt được Web Server IIS. 
 Trình bày được các đặc điểm của ASP và ASP.Net 
 Sử dụng được Visual Studio .Net 2008 để tạo ứng dụng Web 
1.1 Giới Thiệu về Ứng Dụng Web 
Cùng với sự phát triển mạnh mẽ về công nghệ thông tin, đặc biệt là sự phát triển hệ thống 
mạng intranet, internet... Trong các lĩnh vực ngày nay như : thương mại, y tế, giáo dục..., nhu 
cầu trao đổi thông tin thực sự là cần thiết, giúp cho công việc được triển khai nhanh , chính 
xác, dễ dàng và tiết kiệm chi phí, thông tin được cập nhật kịp thời. Do đó vấn đề đặt ra là 
chúng ta cần phải có một ứng dụng cho phép trao đổi thông tin mọi lúc, mọi nơi, dễ sử dụng, 
thông qua mạng. Ứng dụng Web đáp ứng được các yêu cầu đặt ra và sau đây là các lý do tại 
sao chúng ta phải sử dụng Web : 
 Dễ dàng trao đổi và chia sẽ thông tin thông tin qua mạng . 
 Sử dụng giao diện đồ họa giúp cho người dùng dễ sử dụng . 
 Hỗ trợ về multimedia như : hình ảnh , âm thanh, phim ảnh, 
 Hỗ trợ nhiều chương trình(web-browser) để truy cập Web. 
 Hỗ trợ truy cập web trên các thiết bị đi động: PocketPC, SmartPhone, 
 Hỗ trợ nhiều ngôn ngữ để phát triển Web: ASP, ASP.NET, JSP, PHP 
 Web client (Browser) 
Máy khách(Client) sẽ sử dụng chương trình để truy cập đến các trang web gọi là trình 
duyệt web hay browser. Hiện rất nay có nhiều trình duyệt web như : Internet Explorer , 
Nescape, Mozila FireFox,.. 
 Web server 
Các máy chủ(Server) chứa các ứng dụng Web, sẳn sàng truy xuất các trang web hay các 
tài liệu và gửi về cho client khi nhận được yêu cầu từ phía Client. Hiện nay có rất nhiều 
Web server và chạy trên nhiều hệ thống như : Apache, Microsoft,Sun, 
 Giao thức HTTP 
Quá trình giao tiếp giữa client và server được thực hiện thông qua giao thức chuẩn 
HTTP(HyperText Transfer Protocol).Hình minh họa sau mô tả việc truy cập ứng dụng 
Web. 
Lưu hành nội bộ Trang 2 
Hình 1.1: Minh họa truy cập ứng dụng Web 
 Web được phát triển trên mô hình client-server 
 Giao thức HTTP: Quá trình giao tiếp giữa client và server được thực hiện thông qua 
giao thức chuẩn HTTP(HyperText Transfer Protocol). 
 Mô hình gồm hai thành phần chính là: máy khách(client) và máy phục vụ(server). Máy 
phục vụ(server) sẽ chứa các ứng dụng Web và các ứng dụng Web này sẽ được quản lý 
tập trung bởi trình quản lý gọi là Web Server (IIS,). Các máy khách(client) truy cập 
đến ứng dụng web sử dụng trình duyệt web(browser). 
 Client sử dụng giao thức HTTP Request để gửi yêu cầu(trang web) lên Server, Server 
xử lý và sử dụng giao thức HTTP Response để gửi kết quả về cho Client. 
 Ngôn ngữ HTML 
 Ngôn ngữ chuẩn để tạo một trang Web. HTML cho phép người viết có thể phân chia và 
trình bày thông tin trên một trang tin. HTML đơn giản, dễ học. HTML đơn giản là tập 
tin có phần mở rộng .htm(.html), sử dụng các thẻ(tag): kiểu văn bản, danh sách, các 
liên kết(hyperlinks) Chúng ta có thể dùng FrontPage, DreamWeaver để thiết kế 
các trang HTML, 
 Ngôn ngữ đánh dấu HTML sử dụng các ký hiệu quy định sẵn (được gọi là tag) để 
trình bày nội dung văn bản. 
Hình 1.2 Trang siêu văn bản HTML 
Lưu hành nội bộ Trang 3 
Thí dụ 1.1: Nội dung trang web Sample.htm 
 Client Scripting và Server Scripting 
Các ngôn ngữ dùng để viết mã cho trang web. Một trang web được xử lý ở Server và trả 
kết quả về cho Client. Do đó các ngôn ngữ viết mã cho trang web được chia thanh hai 
dạng: 
 ClientScript: được xử lý tại trình duyệt (Browser) trên máy Client. Các ngôn ngữ dùng 
để viết là :VBScript, JavaScript, DHTML 
o JavaScript là ngôn ngữ phỗ biến sử dụng nhiều nhất hiện nay. JavaScript được 
dùng để kiểm tra việc nhập liệu, kiểm tra trình duyệt, 
o DTHML:là sự kết hợp của HTML,Style Sheet(CSS) và JavaScript nhằm làm cho 
trang web dễ tương tác, điều khiển và giảm bớt việc xử lý phía Server. 
o VBScript là ngôn ngữ script của Microsoft. Chức năng của VBScript cũng 
giống như JavaScript. 
 Server Scripting: được xử lý tại Web server trên máy Server. Các ngôn ngữ dùng để 
viết là :ASP,ASP.NET,PHP,JSP, Trong giáo trình này chúng ta sẽ khảo sát ngôn ngữ 
ASP và ASP.NET. 
 Các mô hình ứng dụng 
 Mô hình ứng dụng 2 lớp 
Hình 1.3 Mô hình 2 lớp (Two Tier) 
Đây là một dạng mô hình đơn giản, khá phổ biến của một ứng dụng phân tán. Trong mô 
hình này, việc xử lý dữ liệu được thực hiện trên Databas ... rên một dòng của GridView, sẽ cho phép bạn cập nhật thông tin cca1c vùng 
thuộc tính (ngoại trừ thuộc tính khóa). Click [Update] để cập nhật, [Cancel] để hủy thao tác. 
9.1.8.3 Xóa dữ liệu 
Quay lại thí dụ trên và thiết kế lại giao diện trang , click smart tag và click chọn mục 
[x]Enable Deleting. Xuất hiện thêm nút [Delete] 
Phần mã lệnh thiết kế trang GridViewEdit.aspx : 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridViewEdit.aspx.cs" 
Inherits="GridViewEdit" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
""> 
 Untitled Page 
Lưu hành nội bộ Trang 297 
 <asp:GridView ID="GridView2" runat="server" DataSourceID="sourceProducts" 
 AutoGenerateColumns="False" DataKeyNames="ProductID"> 
 <asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" 
 InsertVisible="False" SortExpression="ProductID" /> 
 <asp:BoundField DataField="ProductName" HeaderText="ProductName" 
 SortExpression="ProductName"/> 
 <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" 
 SortExpression="UnitPrice" /> 
<asp:SqlDataSource id="sourceProducts" runat="server" 
SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]" 
ConnectionString="" 
 UpdateCommand="UPDATE [Products] SET [ProductName] = @ProductName, 
[UnitPrice] = @UnitPrice WHERE [ProductID] = @original_ProductID AND [ProductName] = 
@original_ProductName AND (([UnitPrice] = @original_UnitPrice) OR ([UnitPrice] IS NULL 
AND @original_UnitPrice IS NULL))" 
 ConflictDetection="CompareAllValues" 
 DeleteCommand="DELETE FROM [Products] WHERE [ProductID] = 
@original_ProductID AND [ProductName] = @original_ProductName AND (([UnitPrice] = 
@original_UnitPrice) OR ([UnitPrice] IS NULL AND @original_UnitPrice IS NULL))" 
 InsertCommand="INSERT INTO [Products] ([ProductName], [UnitPrice]) VALUES 
(@ProductName, @UnitPrice)" OldValuesParameterFormatString="original_{0}" 
> 
Phần mã lệnh thực thi trang 
Lưu hành nội bộ Trang 298 
public partial class GridViewEdit : System.Web.UI.Page 
{ 
 protected void Page_Load(object sender, EventArgs e) { } 
} 
Kết quả thực thi 
Click nút [Delete] tại một dòng trên GridView, mẫu tin tại dòng sẽ bị xóa. 
9.2 Đối tƣợng dữ liệu DetailsView 
Dùng để trình bày dữ liệu là một mẫu tin tại một thời điểm. Chúng ta sẽ xem thí dụ dưới đây 
qua đó nắm vững cách sử dụng đối tượng này. 
Thí dụ : 
Thiết kế giao diện trang DetailsViewTest.aspx : 
Phần mã lệnh thiết kế trang DetailsViewTest.aspx : 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DetailsViewTest.aspx.cs" 
Inherits="DetailsView" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
""> 
 Untitled Page 
 <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" CellPadding="4" 
 DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" 
Height="50px" 
Lưu hành nội bộ Trang 299 
 Width="336px" AutoGenerateRows="False" DataKeyNames="ProductID" 
AutoGenerateEditButton="True" AutoGenerateInsertButton="True" 
AutoGenerateDeleteButton="true" OnDataBound="DetailsView1_DataBound"> 
 <asp:BoundField DataField="ProductID" HeaderText="ProductID" 
InsertVisible="False" 
 ReadOnly="True" SortExpression="ProductID" /> 
 <asp:BoundField DataField="ProductName" HeaderText="ProductName" 
SortExpression="ProductName" /> 
 <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" 
SortExpression="UnitPrice" /> 
 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ 
ConnectionStrings:Northwind %>" 
 SelectCommand="SELECT ProductID, ProductName, UnitPrice FROM Products" 
 UpdateCommand="UPDATE Products SET ProductName=@ProductName, 
UnitPrice=@UnitPrice WHERE ProductID=@ProductID" 
 InsertCommand="INSERT Products (ProductName, UnitPrice) VALUES 
(@ProductName, @UnitPrice)" 
 DeleteCommand="DELETE Products WHERE ProductID=@ProductID" 
OnInserted="SqlDataSource1_Inserted" 
 > 
Các thuộc tính quan trong trong thẻ : 
AutoGenerateEditButton="True" // nút [Edit] 
AutoGenerateInsertButton="True" // nút [New] 
AutoGenerateDeleteButton="true" // nút [Delete] 
Sự kiện của thẻ : 
 OnDataBound="DetailsView1_DataBound" 
protected void DetailsView1_DataBound(object sender, EventArgs e) 
 { 
 if (insertComplete) 
 { 
 // Show the last record (the newly added one). 
 DetailsView1.PageIndex = DetailsView1.PageCount - 1; 
 } 
 } 
Lưu hành nội bộ Trang 300 
Phần mã lệnh thực thi trang DetailsViewTest.aspx.cs : 
public partial class DetailsView : System.Web.UI.Page 
{ 
 private bool insertComplete = false; 
 protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs 
e) 
 { 
 // Flag that a new record is inserted, which we'll show when the grid is bound. 
 if (e.AffectedRows > 0) insertComplete = true; 
 // You could also get output parameters at this point from e.Command. 
 // For example, if you called a stored procedure that returns the newly 
 // generated ProductID value, you could get it here. 
 } 
 protected void DetailsView1_DataBound(object sender, EventArgs e) 
 { 
 if (insertComplete) 
 { 
 // Show the last record (the newly added one). 
 DetailsView1.PageIndex = DetailsView1.PageCount - 1; 
 } 
 } 
} 
Kết quả thực thi : 
Click nút [Edit], sau đó click [] cập nhật hoặc [] để hủy 
Click nút [New], nhập thông tin sau đó click nút [Insert] để chèn mẫu tin mới hoặc 
[Cancel] để hủy thao tác. 
Lưu hành nội bộ Trang 301 
9.3 Đối tƣợng dữ liệu FormView 
Dùng để trình bày dữ liệu là một mẫu tin tại một thời điểm. Tương tự như DetailsView nhưng 
cho phép trình bày dữ liệu theo các mẫu tùy chọn (custom temnplates). Chúng ta sẽ xem thí dụ 
dưới đây qua đó nắm vững cách sử dụng đối tượng này. 
Thí dụ : 
Thiết kế giao diện trang 
Phần mã lệnh thiết kế trang FormViewTest.aspx : 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FormViewTest.aspx.cs" 
Inherits="FormView" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
""> 
 Untitled Page 
 <asp:SqlDataSource ID="sourceProducts" runat="server" ConnectionString="<%$ 
ConnectionStrings:Northwind %>" 
 SelectCommand="SELECT * FROM Products"> 
 <asp:DropDownList ID="lstProducts" runat="server" AutoPostBack="True" 
DataSourceID="sourceProducts" 
 DataTextField="ProductName" DataValueField="ProductID" Width="184px"> 
Lưu hành nội bộ Trang 302 
 <asp:SqlDataSource ID="sourceProductFull" runat="server" ConnectionString="<%$ 
ConnectionStrings:Northwind %>" 
 SelectCommand="SELECT * FROM Products WHERE ProductID=@ProductID"> 
 <asp:ControlParameter Name="ProductID" ControlID="lstProducts" 
PropertyName="SelectedValue" /> 
 <asp:FormView ID="FormView1" runat="server" DataSourceID="sourceProductFull" 
 Width="184px" BackColor="#FFE0C0" BorderStyle="Solid" BorderWidth="2px" 
CellPadding="5"> 
 In Stock: 
 On Order: 
 Reorder: 
Để thiết kế mẫu tùy chọn (custom templates), chọn mục Edit Templates trong FormView Taks 
: 
Nhập nội dung như hình dưới vào trong khung Item Template 
Lưu hành nội bộ Trang 303 
Trong FormView sẽ có mẫu tùy chọn (custom template) như sau , nhập vào các kết nối dữ liệu 
lấy giá trị các vùng trong bảng Products của CSDL Northwind: 
 In Stock: 
 On Order: 
 Reorder: 
Click nút [End Template Editing] để kết thúc việc tạo các custom templates. 
Phần mã lệnh thực thi trang FormViewTest.aspx : 
public partial class FormView : System.Web.UI.Page 
{ 
 protected void Page_Load(object sender, EventArgs e) { } 
} 
Kết quả thực thi FormViewTest.aspx.cs : 
Click chọn một giá trị trong DropdownList, nội dung của FormView sẽ thay đổi theo tương 
ứng. 
9.4 Đối tƣợng dữ liệu DataList 
Dùng để trình bày dữ liệu là một mẫu tin tại một thời điểm. Chúng ta sẽ xem thí dụ dưới đây 
qua đó nắm vững cách sử dụng đối tượng này. 
Thí dụ : 
Thiết kế giao diện trang 
Lưu hành nội bộ Trang 304 
Phần mã lệnh thiết kế trang DataListAndDropDownList.aspx : 
<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="DataListAndDropDownList.aspx.cs" Inherits="DataListAndDropDownList" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
""> 
 Untitled Page 
 Country: 
 <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
DataSourceID="SqlDataSource1" 
 DataTextField="ProvinceName" DataValueField="ProvinceID" 
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" 
 Width="189px"> 
 <asp:SqlDataSource ID="SqlDataSource1" 
runat="server" ConnectionString="<%$ 
ConnectionStrings:RecruitVietnamDbConnectionString %>" 
 SelectCommand="SELECT [ProvinceID], [ProvinceName] FROM 
[tblProvinces]"> 
Lưu hành nội bộ Trang 305 
 <asp:DataList ID="DataList1" runat="server" RepeatColumns="2" 
RepeatDirection="Horizontal" 
 Width="622px"> 
 <asp:Label ID="Label2" runat="server" Font-Bold="True" Text='<%# 
Bind("CompanyName") %>' 
 Width="220px"> 
 ' 
Width="220px"> 
 ' 
Width="220px"> 
 ' 
Width="220px"> 
   
Trong DataList trên có tạo custom template 
Nội dung trong DataList có thẻ chứa nội dung thiết kế trên. 
 <asp:Label ID="Label2" runat="server" Font-Bold="True" Text='<%# 
Bind("CompanyName") %>' 
 Width="220px"> 
 ' 
Width="220px"> 
 ' 
Width="220px"> 
 ' 
Width="220px"> 
Lưu hành nội bộ Trang 306 
Phần mã lệnh thực thi trang DataListAndDropDownList.aspx : 
public partial class DataListAndDropDownList : System.Web.UI.Page 
{ 
 protected void Page_Load(object sender, EventArgs e) 
 { 
 if (!IsPostBack) 
 FillRecruiterAccount(this.DataList1,"1"); 
 } 
 void FillRecruiterAccount(DataList DataList1, string Province) 
 { 
 try 
 { 
 SqlDataSource sqlDataSource = new SqlDataSource(); 
 sqlDataSource.ConnectionString = 
 WebConfigurationManager.ConnectionStrings[ 
 "RecruitVietnamDbConnectionString" 
 ].ConnectionString; 
 sqlDataSource.SelectCommandType = 
 SqlDataSourceCommandType.Text; 
 sqlDataSource.SelectCommand = "select " + 
 "RecruiterID, Email,CompanyName," 
 + "ContactName, Address,Phone" + 
 " from tblRCAccounts where " 
 +" ProvinceID='" + Province +"'"; 
 DataList1.DataKeyField= "RecruiterID"; 
 DataList1.DataSource = sqlDataSource; 
 DataList1.DataBind(); 
 } 
 catch (Exception ex) { 
 Response.Write(ex.Message); 
 } 
 } 
 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
 { 
 FillRecruiterAccount(this.DataList1, DropDownList1.SelectedValue); 
 } 
} 
Kết quả thực thi : 
Đầu tiên ta có màn hình thực thi sau : 
Lưu hành nội bộ Trang 307 
Sauk hi lực chọn giá trị [Country : Thua Thien Hue] trong DropdownList, ta có danh sách 
mới hiện trong DataList gồm các vùng nội dung định trong phần kết nối dữ liệu trong thẻ 
9.5 Đối tƣợng dữ liệu Repeater 
Dùng để trình bày dữ liệu là một mẫu tin tại một thời điểm. Chúng ta sẽ xem thí dụ dưới đây 
qua đó nắm vững cách sử dụng đối tượng này. 
Thí dụ: 
Thiết kế giao diện trang 
Phần mã lệnh thiết kế trang 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RepeaterPage.aspx.cs" 
Inherits="RepeaterPage" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
""> 
 Untitled Page 
 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ 
ConnectionStrings:RecruitVietnamDbConnectionString %>" 
 SelectCommand="SELECT [RecruiterID], [Email], [CompanyName], [ContactName], 
[Address], [Phone] FROM [tblRCAccounts]"> 
Lưu hành nội bộ Trang 308 
 <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" 
DataMember="DefaultView"> 
 Email 
 CompanyName 
 Address 
 <asp:Label runat="server" ID="Label1" Text='<%# Bind("CompanyName") 
%>' /> 
 ' 
/> 
   
Phần mã lệnh thực thi trang 
public partial class RepeaterPage : System.Web.UI.Page 
{ 
 protected void Page_Load(object sender, EventArgs e) { } 
} 
Kết quả thực thi : 
Lưu hành nội bộ Trang 309 
BÀI THỰC HÀNH CHƢƠNG 9: 
Bài 1: Thực hành lại các thí dụ trong bài học để ôn lại nội dung vừa học. 
Bài 2: 
Thiết kế giao diện trang RecordEditorDataSource.aspx : 
Cấu hình SqlDataSource với chuỗi kết nối : 
<add name="NorthwindConnectionString" connectionString="Data 
Source=localhost\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI" 
 providerName="System.Data.SqlClient" /> 
Phần mã lệnh thiết kế trang RecordEditorDataSource.aspx : 
<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="RecordEditorDataSource.aspx.cs" Inherits="RecordEditorDataSource" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
""> 
 Record Editor 
 <asp:DropDownList ID="lstProduct" runat="server" AutoPostBack="True" Width="280px" 
DataSourceID="sourceProducts" DataTextField="ProductName" 
DataValueField="ProductID"> 
Lưu hành nội bộ Trang 310 
 <asp:DetailsView ID="DetailsView1" runat="server" 
DataSourceID="sourceProductDetails" 
 Height="50px" Width="200px" AutoGenerateEditButton="True" 
 AutoGenerateRows="False" DataKeyNames="ProductID"> 
 <asp:BoundField DataField="ProductID" HeaderText="ProductID" 
 InsertVisible="False" ReadOnly="True" SortExpression="ProductID" /> 
 <asp:BoundField DataField="ProductName" HeaderText="ProductName" 
 SortExpression="ProductName" /> 
 <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" 
 SortExpression="UnitPrice" /> 
 <asp:BoundField DataField="UnitsInStock" HeaderText="UnitsInStock" 
 SortExpression="UnitsInStock" /> 
 <asp:BoundField DataField="UnitsOnOrder" HeaderText="UnitsOnOrder" 
 SortExpression="UnitsOnOrder" /> 
 <asp:BoundField DataField="ReorderLevel" HeaderText="ReorderLevel" 
 SortExpression="ReorderLevel" /> 
 <asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued" 
 SortExpression="Discontinued" /> 
   
 <asp:SqlDataSource ID="sourceProducts" runat="server" 
 ConnectionString="" 
 SelectCommand="SELECT [ProductName], [ProductID] FROM [Products]" 
/> 
<asp:SqlDataSource ID="sourceProductDetails" runat="server" 
 ConnectionString="" 
 SelectCommand="SELECT ProductID, ProductName, UnitPrice, UnitsInStock, 
UnitsOnOrder, ReorderLevel, Discontinued FROM Products WHERE ProductID=@ProductID" 
 UpdateCommand="UPDATE Products SET ProductName=@ProductName, 
UnitPrice=CONVERT(money, @UnitPrice), UnitsInStock=@UnitsInStock, 
UnitsOnOrder=@UnitsOnOrder, ReorderLevel=@ReorderLevel, 
Discontinued=@Discontinued WHERE ProductID=@ProductID"> 
 <asp:ControlParameter ControlID="lstProduct" Name="ProductID" 
 PropertyName="SelectedValue" /> 
Lưu hành nội bộ Trang 311 
 <asp:Label ID="lblInfo" runat="server" EnableViewState="False" Font-Bold="True" 
ForeColor="#C00000"> 
 This page allows overlapping edits. See 
RecordEditorDataSource_MatchAllValues.aspx 
 for a version that doesn't. 
Phần mã lệnh thực thi trang RecordEditorDataSource.aspx.cs : 
public partial class RecordEditorDataSource : System.Web.UI.Page 
{ 
} 
Kết quả thực thi : 
Chọn ProductName trong DropdownList, nội dung DetailsView sẽ được cập nhật ngay. 

File đính kèm:

  • pdfgiao_trinh_asp_net_phan_1.pdf