– Nút Ghi: sự kiện ItemInserting
Tương tự như xử lý của nút Cập nhật nhưng thêm mới một mẫu tin vào bảng NHA_XUAT_BAN
− Nút Hủy: sự kiện ItemDeleting
Kiểm tra quan hệ dựa trên Mã NXB hiện hành: e.DataKey.Value, nếu hợp lệ
Xóa dòng hiện hành
Lưu ý: dùng AccessDataSource thì không cần viết đọan các code trên
Sử dụng AccessDataSource
– Thao tác thêm mới, cập nhật và hủy: không cần viết code xử lý
− Kiểm tra Tên Nhà xuất bản không được rỗng trước khi cập nhật: dùng tt e.NewValues.Item(0) trong sự kiện ItemUpdating
− Kiểm tra Tên Nhà xuất bản không được rỗng trước khi thêm mới: tt e.Values.Item(0) trong sự kiện ItemInserting
4.17: Yêu cầu xử lý:
– Các nút trong cột Mã sách:
Sự kiện RowCommand
Xác định chỉ số dòng được chọn: tt e.CommandArgument
Xác định giá trị khóa chính (Ms) của dòng hiện hành: tt <GridView>.DataKeys(chỉ số).Value
Liên kết dữ liệu với DetailsView dựa vào khóa chính
Lưu ý: dùng AccessDataSource thì thay đổi tt SelectCommand, câu lệnh SQL có đk lọc cũng dựa trên giá trị khóa chính của dòng hiện hành
Mnxb, Mcd, Ngay_cap_nhat ) VALUES(?, ?, ?, ?, ?, ?, Date() )
UpdateQuery: UPDATE SACH SET Ten_sach =?, Don_gia = ?, Mo_ta =?,
Hinh_minh_hoa =?, Mnxb =?, Mcd=?, Ngay_cap_nhat=Date() WHERE Ms = @Ms
4.20: Yêu cầu thiết kế:
– Điều khiển AccessDataSource dùng làm nguồn DL cho FormView:
SelectQuery:SELECT * FROM [KHACH_HANG]
DeleteQuery: DELETE FROM KHACH_HANG WHERE Mkh = @Mkh
InsertQuery:INSERT INTO KHACH_HANG(Ho_ten, Dia_chi, Dien_thoai,
Ten_dang_nhap, Mat_khau, Ngay_sinh, Gioi_tinh, Email) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
UpdateQuery: UPDATE KHACH_HANG SET Ho_ten = ?, Dia_chi = ?, Dien_thoai = ?, Ten_dang_nhap = ?, Mat_khau = ?, Ngay_sinh = ?, Gioi_tinh = ?, Email = ?
WHERE Mkh = @Mkh
6.1: Yêu cầu xử lý:
– Danh sách Chủ đề: (khi thiết kế)
Thuộc tính NavigateUrl: "~/Man_hinh/Bai6_1.aspx?Mcd=" & Eval("Mcd")
Thuộc tính Text: Eval(”Ten_chu_de”)
– Danh sách Sách:
Sự kiện Load
Kiểm tra tham số Mã chủ đề (Mcd) của trang: Request.QueryString(”Mcd”)
Nếu khác rỗng thì liên kết dữ liệu với DataList có điều kiện lọc theo giá trị của tham số trên
Ngược lại thì không cần điều kiện
– Khai báo 2 biến Session dùng để lưu trữ Tổng số tiền và Thông tin các sách được chọn mua (Mã sách, Tên sách, ...): kiểu số và kiểu ArrayList trong sự kiện Session_Start của tập tin Global.asax
– Xây dựng một lớp có tên XL_GIO_HANG, có các thông tin lưu trữ như sau: Mã sách, Tên sách, Đơn giá, Số lượng và Thành Tiền
– Nút :
Sự kiện ItemCommand của DataList
Kiểm tra nút nhấn: e.CommandName
Tính tổng số tiền: Tìm đk Đơn giá và cập nhật biến Session Tổng số tiền Định nghĩa một đối tượng lưu trữ thông tin sách: khai báo biến kiểu
XL_GIO_HANG và tìm các đk chứa thông tin sách
Kiểm tra Mã sách đã trong giỏ hàng chưa?. Nếu chưa thì thì thêm đối tượng trên vào biến Session Thông tin sách, ngược lại thì tăng số lượng lên 1
Thể hiện Tổng tiền:
Sự kiện PreRender của User Control
Xuất giá trị của biến Session Tổng số tiền ra điều khiển Label 6.2: Yêu cầu xử lý:
– Nguồn dữ liệu cho GridView: dùng biến Session Thông tin các sách
– Nút Sửa, Ghi, Không: thao các cập nhật xử lý trên mảng (là biến Session trên) – Nút :
Sự kiện RowCommand
Duyệt mảng và hủy phần tử tại vị trí có chỉ số tương ứng với chỉ số dòng có đk CheckBox được chọn: pt <GridView>.Rows(chỉ số).FindControl(“tên CheckBox") và pt RemoveAt(chỉ số) của mảng
– Cập nhật giá trị cho điều khiển Tổng thành tiền và Tổng mặt hàng:
Sử dụng 2 biến Session Tổng thành tiền và Thông tin các sách Cài đặt code trong thủ tục Liên kết dữ liệu (nếu có thủ tục này) 6.3: Yêu cầu xử lý:
– Thể hiện nội dung chi tiết sách:
Sự kiện Load của trang Default
Định nghĩa một đối tuợng: kiểu System.Web.UI.Control
Kiểm tra tham số Mã sách của trang: Request.QueryString(“Ms”)
Nếu khác rỗng, thể hiện UC Nội dung chi tiết sách: pt Page.LoadControl(“Tên và đường dẫn của UC”)
Ngược lại, thể hiện UC Danh sách Sách
Thêm đối tượng trên vào trang: <PlaceHolder>.Controls.Add(đối tượng trên) 6.6: Yêu cầu xử lý:
Nội dung tập tin Web.sitemap dùng làm nguồn cho điều khiển TreeView: <?xml version="1.0"encoding="utf-8" ?>
<siteMapxmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNodetitle="Trang chủ"description="Trang chủ"url="~/Man_hinh/Bai6_6.aspx"> <siteMapNodetitle="Bài 2" description="Bài tập số 2" >
<siteMapxmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNodeurl="~/Man_hinh/Bai6_5.aspx" title="Home" description="Trang chủ"> <siteMapNodetitle="Tham khảo" description="Các trang web tham khảo về ASP.Net" > <siteMapNodeurl="http://www.w3schools.com/aspnet/default.asp"title="Hướng dẫn học ASP.Net" description="Bài 6.1" />
<siteMapNodeurl="http://msdn2.microsoft.com/en-us/library/ms644563.aspx"
title="Xây dựng ứng dụng Web với ASP.Net" description="Bài 6.3" />
</siteMapNode> …
</siteMapNode> </siteMap>
Khai báo 2 tập tin .sitemap trong tập tin web.config: <system.web>
<siteMapdefaultProvider="TreeViewXmlSiteMapProvider"> <providers>
<add name="TreeViewXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="Web.sitemap"/>
<add name="MenuXmlSiteMapProvider"type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="Menu.sitemap"/>
</providers> </siteMap>
……….. </system.web> 6.7: Yêu cầu thiết kế:
– Tạo tập tin Default.skin trong thư mục App_Themes\Default
Khai báo Default Skin: <asp:TreeView NodeStyle-Font-Names="Verdana" NodeStyle-Font-Size="10pt" NodeStyle-ForeColor="Black" RootNodeStyle-Font-Bold="true" ParentNodeStyle-Font-Italic="true" ParentNodeStyle-Font-Underline="true" NodeIndent="10"
runat="server" />
Khai báo Named Skin:
<asp:TreeView SkinId="Bookstore" NodeStyle-Font-Names="Verdana" NodeStyle-Font-Size="10pt" NodeStyle-ForeColor="Black" RootNodeStyle-Font-Bold="true" ParentNodeStyle-Font-Italic="true" ParentNodeStyle-Font-Underline="true" NodeIndent="10" runat="server" /> Yêu cầu xử lý:
– Khai báo tt Theme ="Default“ trong định hướng @Page của trang
– Khi thay đổi mục chọn DropDownList:
Sự kiện Page_PreInit
Gán giá trị được chọn của đk DropDownList cho t.tính SkinID của điều khiển TreeView:
<TreeView>.SkinID = Request.Form(”Tên DropDownList”) 7.1: Yêu cầu thiết kế:
– Cấu trúc của tập tin Chu_de.xml gồm 1 node gốc và các node con
– Các node con gồm có 2 thuộc tính: Mcd và Ten_chu_de <?xmlversion="1.0" encoding="utf-8" ?> <TAI_LIEU>
<CHU_DEMcd="3"Ten_chu_de="Tiếng Việt"> </CHU_DE> ....
° Duyệt tập hợp các thuộc tính của node con: khai báo biến kiểu XmlAttribute và dùng tt Attributes của node con
+ Tạo mới một ô và khai báo thuộc tính giá trị cho ô
+ Thêm ô mới vào dòng mới
° Thêm dòng mới vào Table 7.3: Yêu cầu xử lý:
– Khi mở trang: sự kiện Load
Khai báo đối tượng tài liệu XML: kiểu XmlDocument
Đọc tập tin Chu_de.xml: pt Load
Xuất nội dung của tập tin trên ra đk Menu
Khai báo node gốc và node con: kiểu XmlElement
Xác định node gốc: tt DocumentElement của đối tượng tài liệu XML
Duyệt tập hợp các node con có trong node gốc: tt ChildNodes
° Tạo 1 mục mới trên thực đơn: khai báo kiểu MenuItem
° Duyệt tập hợp các thuộc tính của node con: kiểu XmlAttribute
+ Kiểm tra và lần lượt khai báo các tt cần thiết cho mục mới của thực đơn: <MenuItem>.Value, <MuneItem>.Text
và <XmlAttribute>.InnerText
° Xác định hình ảnh và URL của mục mới: <MenuItem>.ImageUrl và NavigateUrl
° Thêm mục mới vào điều khiển Menu: <Menu>.Item.Add(<mục mới>) 7.4: Yêu cầu thiết kế:
– Điều khiển XmlDataSource:
Thuộc tính DataFile: khai báo tập tin Chu_de.xml
– Điều khiển GridView: