MainRegistrationLogin I'm LeHunGvna Thứ 5, 28/11/2024, 23:33:50
  Thiết kế ComboBox - Diễn Đàn Welcome Guest | RSS

[ New messages · Members · Forum rules · Search · RSS ]
  • Page 1 of 1
  • 1
Forum moderator: lehungvna  
Thiết kế ComboBox
lehungvnaDate: Chủ Nhật, 21/09/2008, 16:21:58 | Message # 1
Admin
Group: Administrators
Messages: 227
Reputation: 0
Status: Offline
Hỏi:

Tôi có một CSDL Access có 2 bảng Lop và Hocsinh. Tôi muốn thiết kế 1 trang web động có 2 comboBox là comboLop và comboHocsinh, khi nhấn vào comboBoxLop thì sẽ tự động lọc các học sinh của lớp đó và đưa vào comboHocsinh. Xin hướng dẫn.

Đáp:

Tôi có một CSDL Access có 2 bảng Lop và Hocsinh. Tôi muốn thiết kế 1 trang web động có 2 comboBox là comboLop và comboHocsinh, khi nhấn vào comboBoxLop thì sẽ tự động lọc các học sinh của lớp đó và đưa vào comboHocsinh. Xin hướng dẫn.

Trang web, nhất là trang web động, là 1 ứng dụng giống như 1 ứng dụng truyền thống, nghĩa là bạn có thể thực hiện bất kỳ chức năng nào bạn muốn trong trang web. Để dễ hiểu, bạn có thể coi 1 trang web động như 1 Form (1 hộp thoại) nới rộng, nó chứa nhiều đối tượng giao diện để tương tác với người dùng hầu thực hiện từng chức năng mà người dùng muốn tại mỗi thời điểm. Do đó việc xây dựng trang web động rất giống với việc xây dựng 1 Form giao diện của ứng dụng truyền thống, vấn đề cơ bản nhất là phải phân tích, thiết kế được trang web hay Form trước khi hiện thực nó bằng môi trường cụ thể. Sau đây là qui trình điển hình để xây dựng trang Web động giải quyết yêu cầu của bạn bằng môi trường ASP .Net:

1. Trước hết bạn phải định nghĩa được cấu trúc của 2 table Lop và Hocsinh, số field và ngữ nghĩa của từng field phụ thuộc vào yêu cầu xử lý của bạn. Thí dụ, chúng tôi định nghĩa table Lớp đơn giản gồm 2 field sau: Mãlớp và Tênlớp, còn table Hocsinh đơn giản gồm 3 field: Mãlớp, MãHọcsinh và TênHọcsinh. Kế tiếp chạy Access (hay bất kỳ hệ quản trị database nào) để tạo database mới (hay dùng lại database đã có), tạo mới từng table dữ liệu rồi nhập thông tin theo yêu cầu quản lý. Việc hiển thị danh sách các lớp lên trang web gồm 2 công đoạn: truy xuất các record chứa thông tin về các lớp cần hiển thị trong table Lớp rồi hiển thị nội dung từng record tìm được lên đối tượng hiển thị tương ứng. Việc hiển thị danh sách học sinh của 1 lớp nào đó lên ComboBox cũng tương tự như vậy.

2. để truy xuất database dễ dàng, độc lập với công nghệ quản lý database, bạn hãy kết hợp database của bạn với DSN tên là "DbAccess" bằng cách vào Control Panel, chạy icon "Administrative Tools", chọn mục DataSource và khai báo các thông tin liên quan đến database.

3. Chạy Visual Studio .Net, chọn menu File.New.Projects..., chọn kiểu "Visual Basic project", chọn icon "ASP .NET Web Application", hiệu chỉnh lại Location của website thành "http://localhost/QLHocsinh", chọn button OK để máy tạo Project mới theo các thông số khai báo.

4. Khi trang ASP với tên mặc định là WebForm1.aspx hiển thị, bạn hãy thiết kế giao diện của trang ASP như hình sau:

Lưu ý rằng 2 DropDownList miêu tả danh sách lớp và danh sách học sinh có tên (ID) là cbLop và cbHocsinh, thiết lập thuộc tính AutoPostBack cho cả 2 dropdownlist về giá trị TRUE.

5. Hãy chọn menu View.Code để hiển thị cửa sổ code của trang web rồi tạo hàm xử lý sự kiện InitializeComponent cho WebForm1 (bằng cách chọn mục WebForm1 trong listbox bên trên trái cửa sổ code và chọn mục InitializeComponent trong listbox bên trên phải cửa sổ code) rồi viết code VB .Net để đọc và hiển thị danh sách lớp vào dropdownlist cbLop như sau:

Code:

Code
Private Sub InitializeComponent()  
  Try  
  'Connection string truy xuất DSN  
  Dim MyConString As String = "DSN=DbAccess"  
  'tạo 1 connection đến database  
  Dim MyConnection As New OdbcConnection(MyConString)  
  MyConnection.Open()  
  'tạo 1 command chứa lệnh SQL truy xuất database  
  Dim MyCommand As New OdbcCommand  
  MyCommand.Connection = MyConnection  
  'Tìm các record của table DSLop  
  MyCommand.CommandText = "SELECT * FROM DSLop"  
  Dim MyDataReader As System.Data.Odbc.OdbcDataReader  
  MyDataReader = MyCommand.ExecuteReader  
  Dim strNV As String  
  'duyệt từng record và add mã lớp vào dropdownlist  
  While MyDataReader.Read  
  strNV = CStr(MyDataReader("MaLop"))  
  cbLop.Items.Add(strNV)  
  End While  
  'đóng các đối tượng đã dùng  
  MyConnection.Close()  
  MyDataReader.Close()  
  'Catch ODBC Exception  
  Catch MyOdbcException As OdbcException  
  Dim i As Integer  
  Console.Write(MyOdbcException.ToString)  
  'Catch program exception  
  Catch MyException As Exception  
  Console.Write(MyException.ToString)  
  End Try  
  End Sub

6. Tạo hàm xử lý sự kiện SelectedIndexChanged cho dropdownlist cbLop (bằng cách chọn mục cbLop trong listbox bên trên trái cửa sổ code và chọn mục SelectedIndexChanged trong listbox bên trên phải cửa sổ code) rồi viết code VB .Net để đọc và hiển thị danh sách học sinh của lớp mới được chọn vào dropdownlist cbHocsinh như sau:

Code:

Code
Private Sub cbLop_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbLop.SelectedIndexChanged  
  Dim MaLop As String  
  'tìm mã lớp vừa được chọn bởi người dùng  
  MaLop = CType(cbLop.SelectedValue, String)  
  Try  
  'Connection string truy xuất DSN  
  Dim MyConString As String = "DSN=DbAccess"  
  'tạo 1 connection đến database  
  Dim MyConnection As New OdbcConnection(MyConString)  
  MyConnection.Open()  
  'tạo 1 command chứa lệnh SQL truy xuất database  
  Dim MyCommand As New OdbcCommand  
  MyCommand.Connection = MyConnection  
  'Tìm các học sinh của lớp được chọn  
  MyCommand.CommandText = "SELECT * FROM DSHocsinh where Malop = '" & MaLop & "'"  
  Dim MyDataReader As System.Data.Odbc.OdbcDataReader  
  MyDataReader = MyCommand.ExecuteReader  
  Dim strNV As String  
  'xóa nội dung cũ  
  cbHocsinh.Items.Clear()  
  'duyệt từng record và add tên HS vào dropdownlist  
  While MyDataReader.Read  
  strNV = CStr(MyDataReader("TenHocsinh"))  
  cbHocsinh.Items.Add(strNV)  
  End While  
  'đóng các đối tượng đã dùng  
  MyConnection.Close()  
  MyDataReader.Close()  
  'Catch ODBC Exception  
  Catch MyOdbcException As OdbcException  
  Dim i As Integer  
  Console.Write(MyOdbcException.ToString)  
  'Catch program exception  
  Catch MyException As Exception  
  Console.Write(MyException.ToString)  
  End Try  
  End Sub

7. Dời chuột về mục "WebForm1.apsx" trong cửa sổ "Solution explorer" rồi ấn phải chuột và chọn option "Set As StartPage" để thiết lập trang bắt đầu chạy của ứng dụng.

8. Chọn menu Debug.Start để chạy thử trang web quản lý học sinh vừa xây dựng được. Nếu có lỗi thì sửa lỗi cho đến khi hết lỗi.


Name: Lê Mạnh Hùng
Y!M: lehungvna or to_tin_hoc
Phone: 0988.777.909 or 0912.51.66.40
Email: hunglm.nro@vietnamair.com.vn
Blog: http://360.yahoo.com/lehungvna
Website: http://lehungvna.do.am
 
  • Page 1 of 1
  • 1
Search:

 

Copyright MyCorp © 2024