TTDT – BMCNTT Trang 1
TRƯỜNG ĐẠI HỌC TG
BỘ MÔN CNTT
-oOo-
BÀI TẬP LẬP TRÌNH ASP.NET
Bài 1: Tổng quan về ASP.NET
1.1: Tạo mới 1 Project.
1.2: Tạo trang Chao.aspx.
TTDT – BMCNTT Trang 2
Bài 2: HTML Server Control
2.1: Hồ sơ đăng ký.
TTDT – BMCNTT Trang 3
2.2: Upload tập tin.
TTDT – BMCNTT Trang 4
Bài 3: Web Server Control
3.1: Đọc báo.
TTDT – BMCNTT Trang 5
3.2: Câu chào.
TTDT – BMCNTT Trang 6
3.3: Album các loài hoa.
3.4: Đơn đặt hàng.
TTDT – BMCNTT Trang 7
TTDT – BMCNTT Trang 8
3.4: Phiếu ý kiến người tiêu dùng.
TTDT – BMCNTT Trang 9
3.6: Bài tập các điều khiển cơ bản.
TTDT – BMCNTT Trang 10
3.7: Thông tin đăngnhập.
TTDT – BMCNTT Trang 11
TTDT – BMCNTT Trang 12
3.8: Tìm quân cờ.
TTDT – BMCNTT Trang 13
3.9: Lịch để bàn.
TTDT – BMCNTT Trang 14
3.10: Upload và xem tập tin.
TTDT – BMCNTT Trang 15
3.11: Hồ sơ đăng ký.
TTDT – BMCNTT Trang 16
TTDT – BMCNTT Trang 17
3.12: Sản phẩm kẹo.
TTDT – BMCNTT Trang 18
HƯỚNG DẪN GIẢI BÀI TẬP ASP.NET
2.1:
Yêu cầu xử lý:
Nút Đăng ký:
–
Sự kiện Server_Click
–
Dùng t.t Value của các điều khiển nhập liệu
–
Dùng thuộc tính InnerHTML của đk Div
–
Chuỗi giá trị gán cho t.tính trên có chứa các tag HTML định dạng văn bản (<i>, <li>,
)
2.2:
Yêu cầu xử lý:
Nút Upload :
–
Sự kiện Server_Click:
Upload tập tin:
Nhận đường dẫn và tên tập tin từ Client: tt PostedFile.FileName
Lấy tên tập tin : pt System.IO.Path.GetFileName
Copy tập tin lên server: pt PostedFile.SaveAs
Xuất danh sách tập tin:
Khai báo thư mục truy xuất (Upload): kiểu Directory hoặc lớp
System.IO.DirectoryInfo
Truy xuất các tập tin trong thư mục này: pt GetFiles
TTDT – BMCNTT Trang 19
3.1:
Yêu cầu xử lý:
–
Khi mở trang: (sự kiện Load)
Sử dụng t.t Text của Label
Chuỗi giá trị gán cho t.tính trên có chứa các tag HTML định dạng văn bản (<b>,
<ul>, <li> )
–
Liên kết đến các trang báo:
Sử dụng thuộc tính NavigateURL và Target
3.2:
Yêu cầu xử lý:
Nút Thay đổi câu chào:
Thuộc tính OnClientClick: Dùng ngôn ngữ JavaScript để hỏi người sử dụng
Sự kiện Click
Thuộc tính Text của Label
Giá trị chuỗi gán cho t.t trên có chứa các tag HTML định dạng văn bản
(<b>, <i>, …)
3.3:
Yêu cầu xử lý:
Chọn
Danh sách hoa
:
Thuộc tính AutoPostBack: True
Sự kiện SelectedIndexChanged
Khai báo mảng chứa tập hợp các chuỗi tên tập tin hình ảnh
TTDT – BMCNTT Trang 20
Gán giá trị tt ImageURL của Image và tt Text của Lable: Sử dụng dụng tt
SelectedIndex và Items của ListBox
3.4:
Yêu cầu xử lý:
–
Nút :
Kiểm tra
Số lượng:
dùng hàm Val
Thêm vào
Danh sách bánh được đặt:
tt SelectedIndex, Items và pt Items.Add của
ListBox
−
Nút :
Khai báo một mảng dùng để lưu trữ giá trị các chỉ số của các mục được chọn trong
ListBox: pt GetSelectedIndices của ListBox
Duyệt mảng trên và xóa các mục trong ListBox có chỉ số tương ứng với giá trị của
từng p.tử trong mảng: pt Items.RemoveAt
−
Nút :
Dùng tt Text hoặc InnerHTML (đối với đk Div) để nhận chuỗi giá trị từ các điều
khiển nhập liệu
Chuỗi gía trị có chứa các tag HTML định dạng văn bản và tag tạo bảng
Lưu ý: duyệt các mục trong ListBox để lấy tên bánh và số lượng : tt Items của ListBox
và các pt cắt chuỗi như LastIndexOf, SubString
3.5:
Yêu cầu xử lý:
–
Xây dựng thủ tục Xuất danh sách tiêu chuẩn bình chọn tương ứng với các sản phẩm:
Khai báo biến lưu trữ Danh sách tiêu chuẩn: kiểu ArrayList | SortedList | Hashtable
Kiểm tra sản phẩm được chọn để thêm các tiêu chuẩn tương ứng vào biến trên:
dùng tt SelectedIndex của RadioButtonList và pt Add của biến trên
Liên kết giá trị của biến trên với điều khiển BulletedList: sử dụng tt DataSource và
pt DataBinding
–
Khi mở trang:
Mặc định Sản phẩm
Máy giặt
được chọn và xuất danh sách bình chọn của máy
giặt: gọi thủ tục Xuất danh sách tiêu chuẩn
–
Chọn
Danh sách sản phẩm
:
Xuất danh sách bình chọn tuơng ứng: gọi thủ tục Xuất danh sách tiêu chuẩn
Xuất tên của sản phẩm được chọn ra đk Label: dùng tt Text của Label và
SelectedValue của RadioButtonList
–
Khi nhấn nút :
Khai báo biến dùng để lưu trữ các tiêu chuẩn được bình chọn: kiểu ArrayList
Duyệt các mục trên trên CheckBoxList và kiểm tra mục nào được chọn thì thêm
vào mảng trên: tt Selected của CheckBoxList
Liên kết dữ liệu của mảng trên vào đk BulletedList: tt DataSource và pt DataBind
của BulletedList
TTDT – BMCNTT Trang 21
3.6:
Yêu cầu xử lý:
–
Chọn
Danh sách bài tập
:
Khai báo URL của bài tập: tt Value lúc thiết kế
−
Chọn
Danh sách Bullet
:
Sự kiện SelectedIndexChanged
Kiểm tra giá trị được chọn trong danh sách để thay đổi Bullet tương ứng: dùng tt
SelectedValue của DropDownList và BulletStyle của RadioButtonList
TTDT – BMCNTT Trang 22
3.7:
Yêu cầu xử lý:
–
Điều khiển RegularExpressionValidator:
ValidationExpression=[\d|\w|!|&|_]{8}[\d|\w|!|&|_]+
–
Khi nhấn nút :
Sử dụng t.t Text của Label
Chuỗi giá trị gán cho t.tính trên có chứa các tag HTML định dạng văn bản (<b>,
<ul>, <li> )
3.8:
Yêu cầu xử lý:
Khi mở trang, tạo bàn cờ:
o
Khai báo 2 biến lưu trữ dòng, cột đựơc tạo: kiểu TableRow và TableCell
o
Duyệt số dòng (đã xác định) và thêm từng dòng mới vào đk Table: dùng pt
Rows.Add của đk Table
Duyệt số ô (đã xác định) và xác định các tt
màu nền, ghi chú
của Tooltip
và
icon chuột
: tt BackColor, ToolTip, Attributes(”Style”) của điều khiển ô
Thêm ô mới vào dòng mới: dùng pt Cells.Add của đối tượng dòng mới
Khi nhấn nút :
o
Khai báo 2 biến lưu trữ thứ tự dòng, cột ngẫu nhiên: hàm Rnd()
TTDT – BMCNTT Trang 23
o
Duyệt các dòng trên đk Table và xác định dòng hiện hành: dùng tt Rows.Count và
Rows(chỉ số) của đk Table
Duyệt các ô trên dòng hiện hành và xác định ô hiện hành: dùng tt
Cells.Count và Cells(chỉ số) của đk dòng
Kiểm tra nếu dòng và ô hiện hành bằng với 2 biến trên thì:
+
Khai báo biến lưu trữ đối tượng hình: kiểu
System.Web.UI.WebControls.Image
+
Lần lượt gán các giá trị cho tt
hình ảnh, định danh, kiểu, rê chuột
ra/vào, nhấn chuột
cho đối tượng hình: tt ImageUrl, Attributes("id"),
Attributes(“style”), Attributes(“onmouseover”),
Attributes(“onmouseout”), Attributes(“onclick”)
+
Thêm đối tượng hình vào ô hiện hành: pt Controls.Add(<đt hình>)
của ô hiện hành
3.9:
Yêu cầu xử lý:
–
Các khai báo dùng chung trong trang:
Định nghĩa kiểu dữ liệu (User-Defined Type - UDT) có 2 thành phần là Ngày và Ghi
chú: cấu trúc Structure
Khai báo mảng dùng chung, lưu trữ các ngày cần ghi nhớ: kiểu ArrayList, các
phần tử có kiểu UDT
–
Khi mở trang:
In ngày hiện hành: các pt của đối tượng Date và hàm DateSerial
Tạo danh sách các ngày cần ghi nhớ: dùng pt Add của đt mảng, kết hợp với biến
kiểu UDT
–
Điều khiển Lịch:
Sự kiện DayRender
Duyệt mảng và kiểm tra phần tử hiện hành có
ngày, tháng
bằng với ô hiện hành
không, nếu bằng:
+ Tô màu nền, màu chữ và bổ sung ghi chú cho ô: thuộc tính e.Cell.BackColor,
ForeColor và Tootip của tham số e
–
Khi nhấn nút :
Duyệt mảng và kiểm tra từng phần tử: có thể viết hàm
Nếu hợp lệ thì thêm vào mảng: pt Add của ArrayList
3.10:
Yêu cầu xử lý:
−
Khi chọn nút :
Kiểm tra đk FileUpload có chứa tập tin chưa: tt HasFile
Nếu có:
o
Chép lên thư mục Upload: pt SaveAs của đk FileUpload
o
Xuất các tập tin trong thư mục Upload ra ListBox:
TTDT – BMCNTT Trang 24
Xác định thư mục Upload trên server: khai báo biến thuộc lớp
DirectoryInfo
Duyệt tập hợp các tập tin và xuất ra: pt GetFiles của biến trên
−
Khi chọn nút Upload tập tin:
Kích họat View thứ nhất: tt ActiveViewIndex của đk MultiView
−
Khi chọn nút Xem các tập tin được upload:
Kích họat View thứ hai: tt ActiveViewIndex của đk MultiView
3.11:
Yêu cầu xử lý:
−
Khi chọn nút :
Sự kiện FinishButtonClick
Thuộc tính Text của Label
Giá trị chuỗi gán cho t.t trên có chứa các tag HTML định dạng văn bản (<ul>, <li>,
<i>, …)
3.12:
Yêu cầu xử lý:
−
Sự kiện Load của trang:
Khai báo 2 biến ViewState dùng để lưu trữ số lượng và tên sản phẩm được chọn
Biến lưu trữ tên sản phẩm có kiểu ArrayList
−
Khi chọn
Danh sách sản phẩm
:
Kiểm tra sản phẩm: pt Contains của ArrtayList
Tăng số sản phẩm lên 1 và xuất ra màn hình: tt DataSource và pt DataBind của
BulletedList
−
Khi nhấn nút :
Gán lại giá trị mặc định cho 2 biến ViewState
4.2:
Yêu cầu xử lý:
–
Liên kết dữ liệu của bảng KHACH_HANG với GridView:
Khai báo biến có kiểu lớp xử lý khách hàng (XL_KHACH_HANG)
Xử dụng tt DataSource và pt DataBind
4.3:
Yêu cầu xử lý:
–
Liên kết dữ liệu của bảng SACH với GridView:
Khai báo biến có kiểu lớp xử lý sách (XL_SACH)
Xử dụng tt DataSource và pt DataBind
−
Xử lý phân trang:
Sự kiện PageIndexChanging
Gán giá trị trang mới cho trang hiện hành: tt e.NewPageIndex và PageIndex của
đk GridView
Liên kết dữ liệu
−
Xử lý sắp xếp:
TTDT – BMCNTT Trang 25
Sự kiện Sorting
Liên kết dữ liệu, kết hợp với tt e.SortExpression
4.4:
Yêu cầu xử lý:
−
Liên kết dữ liệu của bảng KHACH_HANG với GridView:
Khai báo biến có kiểu lớp xử lý khách hàng (XL_KHACH_HANG)
Xử dụng tt DataSource và pt DataBind
4.5:
Yêu cầu thiết kế:
Cột
Hình ảnh
°
DataImageUrlField: tên field hình
°
DataFormatString: ~/<tên TM chứa hình>/{0}.jpg
Cột
Đặt mua
°
ButtonType: Image
°
ImageUrl: ~/<tên TM chứa hình>/<tên tập tin hình>
°
CommandName: khai báo giá trị (tên nút)
Yêu cầu xử lý:
–
Sự kiện Load: khai báo 2 biến ViewState dùng để lưu trữ Tổng tiền và Tổng số lượng các
sách được chọn mua
–
Khi nhấn nút :
Sự kiện RowComand của đk GridView
Xác định chỉ số dòng được chọn: tt e.CommandArgument
Lấy giá trị ô
Đơn giá
của dòng được chọn: tt Rows(chỉ số).Cells(3).text của đk
GridView
Tính toán và xuất ra đk Label: dùng 2 biến ViewState trên
4.6:
Yêu cầu xử lý:
–
Gán giá trị cho thuộc tính CommandArgument của điều khiển LinkButton:
Sự kiện RowDataBound của đk GridView
Kiểm tra dòng đang duyệt là dòng dữ liệu không? : tt e.Row.RowType
Nếu đúng thì tìm tới điều khiển LinkButton và gán giá trị cho tt
CommandArgument của nút này: pt e.Row.FindControl(”tên nút”) và tt
Datakeys(e.Row.RowIndex).Value của GridView
–
Khi chọn Tên sách:
Sự kiện RowComand của đk GridView
Xác định giá trị khóa của dòng được chọn: tt e.CommandArgument
Dùng giá trị khóa vừa tìm được để truy xuất dữ liệu vùng Mô tả và xuất ra màn
hình
4.8:
Yêu cầu xử lý: