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,
Tóm tắt nội dung tài liệu: 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:
- giao_trinh_asp_net_phan_1.pdf