Các giải pháp lập trình ASP.NET

Hệthống này có một hệthống đăng nhập (gồm tên người dùng và mật khẩu), đểchỉcó bạn

(chứkhông ai khác) mới có thểxem nhật ký của bạn. Đây là điểm khác biệt so với blog. Hệ

thống này là một trình quản lý danh bạliên lạc và nhật ký cá nhân—là nơi đặt những suy nghĩ

và những ghi chú mà bạn không muốn mọi người nhìn thấy. Còn blog là nơi bạn muốn tất cả

mọi người nhìn thấy.

Toàn bộdựán này cho thấy sức mạnh của ASP.NET 2.0và dễdàng tạo nên các dựán thếnày.

Đã qua rồi cái thời phải viết hàng trăm dòng mã đểthực hiện đăng nhập, tạo người dùng

mới,. Chương này tận dụng các thành phần bảo mật mới của ASP.NET 2.0nhằm cho bạn

thấy rằng rất dễdàng tạo nên các dựán hữu ích và thú vị.

pdf36 trang | Chuyên mục: ASP.NET | Chia sẻ: dkS00TYs | Lượt xem: 1769 | Lượt tải: 1download
Tóm tắt nội dung Các giải pháp lập trình ASP.NET, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
To 23 
 If HourCount < 10 Then 
 NewListItem = New ListItem(“0” & HourCount, HourCount.ToString) 
 Else 
 NewListItem = New ListItem(HourCount.ToString, HourCount.ToString) 
 End If 
 If EventBeingEdited.EventDate.Hour = HourCount Then 
 NewListItem.Selected = True 
 End If 
 StartHourDropDownList.Items.Add(NewListItem) 
 Next 
 For MinuteCount = 0 To 59 
 If MinuteCount < 10 Then 
 NewListItem = New ListItem(“0” & MinuteCount.ToString, MinuteCount.ToString) 
 Else 
 NewListItem = New ListItem(MinuteCount.ToString, MinuteCount.ToString) 
 End If 
 If EventBeingEdited.EventDate.Minute = MinuteCount Then 
 NewListItem.Selected = True 
 End If 
 StartMinuteDropDownList.Items.Add(NewListItem) 
 Next 
 Dim itemToSelect As ListItem 
 itemToSelect = _ 
 eventDurationDropDownList.Items.FindByValue(EventBeingEdited.EventDuration.ToString()) 
 itemToSelect.Selected = True 
 EventBeingEdited = Nothing 
End Sub 
49 
Chương 1: Online Diary 
EventId được trích từ các thông số URL và được sử dụng để tạo một đối tượng DiaryEvent mới. 
Việc đưa dữ liệu vào các textbox của sự kiện khá dễ dàng, nhưng các chi tiết về thời gian và 
thời lượng của sự kiện thì liên quan đến việc đưa dữ liệu vào các hộp xổ xuống giờ và phút, 
và phải đảm bảo giá trị chính xác được chọn. Điều này được thực hiện bằng cách lặp giờ từ 0-
23 và phút từ 0-59. 
1.3.6 Quản lý danh bạ liên lạc 
Quản lý danh bạ liên lạc là phần cuối cùng của Online Diary mà bạn sẽ khảo sát, và phần này 
sử dụng những nguyên tắc giống như các phần khác. YourContacts.aspx là trang quản lý danh 
bạ liên lạc chính. Tại đây, danh sách các liên lạc hiện tại được hiển thị, bao gồm các tùy chọn: 
thêm, chỉnh sửa, và xóa liên lạc. 
Tất cả các liên lạc được hiển thị bằng điều kiểm DataObjectSource và GridView; các nguyên tắc 
cũng giống như khi hiển thị, xóa, và chỉnh sửa các sự kiện nhật ký. Lúc này, lớp Contact được 
sử dụng cho việc chỉnh sửa và hiển thị thông tin liên lạc. 
Trang chính dùng để hiển thị các liên lạc là YourContacts.aspx, trong đó điều kiểm GridView 
liệt kê tất cả các liên lạc hiện có: 
<asp:GridView ID=”GridView1” runat=”server” AutoGenerateColumns=”False” CellPadding=”4” 
 DataSourceID=”ObjectDataSource1” ForeColor=”#333333” GridLines=”None” 
 Style=”z-index: 101; left: 36px; position: absolute; top: 137px” DataKeyNames=”ContactId”> 
 <asp:HyperLinkField DataNavigateUrlFields=”ContactId” 
 DataNavigateUrlFormatString=”~/SecureDiary/EditContact.aspx?ContactId={0}” 
 Text=”Sửa” /> 
Nó lấy dữ liệu từ điều kiểm ObjectDataSource ObjectDataSource1, đến phiên điều kiểm này kết 
nối đến phương thức chia sẻ GetContactByFirstLetter() của lớp Contact: 
<asp:ObjectDataSource ID=”ObjectDataSource1” runat=”server” 
 SelectMethod=”GetContactsByFirstLetter” TypeName=”Contact” DeleteMethod=”DeleteContact”> 
 <asp:SessionParameter DefaultValue=”6” Name=”DiaryId” 
 SessionField=”DiaryId” Type=”Int32” /> 
 <asp:ControlParameter ControlID=”GridView1” Name=”ContactId” 
 PropertyName=”SelectedValue” Type=”Int64” /> 
Thông số DeleteMethod của điều kiểm ObjectDataSource cũng được gắn với DeleteContact của 
lớp Contact. Điều kiểm GridView đã được thiết lập hiển thị một liên kết để xóa mỗi liên lạc, và 
phương thức này thực hiện thao tác xóa: 
50 
Chương 1: Online Diary 
Public Shared Sub DeleteContact(ByVal ContactId As Long) 
 Dim diaryDBConn As New SqlConnection(conString) 
 Dim sqlString As String = “DeleteContact” 
 Dim sqlCmd As New SqlCommand(sqlString, diaryDBConn) 
 sqlCmd.CommandType = CommandType.StoredProcedure 
 sqlCmd.Parameters.AddWithValue(“@ContactId”, ContactId) 
 diaryDBConn.Open() 
 sqlCmd.ExecuteNonQuery() 
 diaryDBConn.Close() 
 sqlCmd = Nothing 
 diaryDBConn = Nothing 
End Sub 
GridView cũng có liên kết Sửa; khi nhắp vào, người dùng sẽ được chuyển đến trang 
EditContact.aspx: 
<asp:HyperLinkField DataNavigateUrlFields=”ContactId” 
 DataNavigateUrlFormatString=”~/SecureDiary/EditContact.aspx?ContactId={0}” 
 Text=“Sửa” /> 
ContactId tương ứng được truyền trong URL làm dữ liệu URL. 
Liên kết Thêm liên lạc mới trên trang YourContacts.aspx sẽ đưa bạn đến form nhập các thông 
tin liên lạc như: tên, e-mail, số điện thoại,… Trang này và trang EditContact.aspx hoạt động 
tương tự nhau ngoại trừ một chi tiết quan trọng: trang EditContact.aspx lấy các thông tin liên 
lạc (để chỉnh sửa) từ lớp Contact. Điều này diễn ra trong sự kiện Page_Load: 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
 If IsPostBack Then 
 Dim currentContact As New Contact(CLng(Request.QueryString(“ContactId”))) 
 currentContact.FirstName = firstNameTextBox.Text 
 currentContact.LastName = lastNameTextBox.Text 
 currentContact.AddressLine1 = addressLine1TextBox.Text 
 currentContact.City = cityTextBox.Text 
 currentContact.PostalCode = postalCodeTextBox.Text 
 currentContact.State = stateTextBox.Text 
 currentContact.Telephone = telephoneTextBox.Text 
 currentContact.MobilePhone = mobilePhoneTextBox.Text 
 currentContact.Email = emailTextBox.Text 
 currentContact.SaveContact() 
 currentContact = Nothing 
 Response.Redirect(“YourContacts.aspx”) 
 Else 
 Dim currentContact As New Contact(CLng(Request.QueryString(“ContactId”))) 
 firstNameTextBox.Text = currentContact.FirstName 
 lastNameTextBox.Text = currentContact.LastName 
 addressLine1TextBox.Text = currentContact.AddressLine1 
 cityTextBox.Text = currentContact.City 
 postalCodeTextBox.Text = currentContact.PostalCode 
 stateTextBox.Text = currentContact.State 
 telephoneTextBox.Text = currentContact.Telephone 
 mobilePhoneTextBox.Text = currentContact.MobilePhone 
 emailTextBox.Text = currentContact.Email 
 currentContact = Nothing 
 End If 
End Sub 
Câu lệnh If xác định đây là là một postback (form đã được submit về chính nó) hay trang vừa 
được nạp. Nếu là một postback, bạn cần lưu dữ liệu và rồi trở về trang danh bạ liên lạc. Nếu là 
trang mới nạp, bạn cần tạo một đối tượng Contact mới, và sử dụng dữ liệu từ đó để đổ dữ liệu 
vào các trường của form. 
51 
Chương 1: Online Diary 
Trang AddContact.aspx cũng giống như vậy, trừ việc không phải đổ những dữ liệu đã có, bởi 
một liên lạc mới không có dữ liệu trước! 
1.4 Cài đặt Online Diary 
Một trong những điều tuyệt vời của ASP.NET 2.0 là dễ dàng cài đặt các ứng dụng web từ máy 
này lên máy khác. Để cài đặt ứng dụng này trên PC của bạn, bạn chỉ việc chép toàn bộ thư 
mục và các file từ CD-ROM đính kèm vào một thư mục trên PC của bạn (chẳng hạn 
C:\Websites). Trong Visual Web Developer, hãy chọn File | Open Web Site và tìm đến thư 
mục mà bạn đã chép các file. Sau đó, nhấn F5 để chạy ứng dụng. 
Nếu đã cài đặt IIS, bạn có thể tạo thư mục ảo OnlineDiary cho ứng dụng này và duyệt 
Nếu muốn hiệu chỉnh ứng dụng Online Diary, bạn hãy tham khảo phần tiếp theo. 
1.5 Mở rộng Online Diary 
Dự án này cung cấp một điểm khởi đầu tốt cho một hệ thống quản lý danh bạ liên lạc và nhật 
ký trọn vẹn. Ví dụ, bạn có thể cải tiến việc quản lý và hiển thị danh bạ liên lạc. Dù hoạt động 
tốt đối với danh bạ liên lạc nhỏ, nhưng hệ thống sẽ trở nên cồng kềnh khi danh bạ liên lạc 
tăng. Tổ chức hiển thị các liên lạc theo chữ cái đầu tiên của phần họ (hay theo chữ cái đầu tiên 
của phần tên) là một cách giải quyết vấn đề này. Lớp Contact đã có một phương thức cho phép 
điều đó và bạn có thể sử dụng. Một chọn lựa khác là thêm tính năng tìm kiếm dựa trên một 
hay nhiều thông số như e-mail, tên,... 
Cách này hay cách kia, bạn cũng sẽ cần hiệu chỉnh trang YourContacts.aspx. Hiện tại khi hiển 
thị các liên lạc trong điều kiểm GridView, nó cho hiện tất cả. Lớp Contact đã có một hàm nhận 
vào chữ cái đầu tiên của phần họ làm thông số. Tuy nhiên, thông số đó là tùy chọn. Bằng việc 
thêm một danh sách xổ xuống gồm các chữ cái từ A đến Z, bạn có thể sử dụng nó để truyền 
chữ cái đầu tiên của phần họ làm thông số. 
Sau đó, bạn cần cho điều kiểm ObjectDataSource biết thông số mới. Nếu gọi danh sách xổ 
xuống là DropDownBox1 thì bạn cần thêm phần tử sau vào thẻ đánh dấu ObjectDataSource: 
<asp:ControlParameter ControlID="DropDownList1" 
 Name="FirstLetterOfSurname" PropertyName="SelectedValue" Type="Char" /> 
Giờ đây, chỉ những ai có phần họ được chỉ định trong danh sách xổ xuống mới được hiển thị. 
Một vài cải tiến nữa có thể được xem xét: 
✓ Tính năng upload và lưu trữ ảnh của những người trong danh bạ liên lạc. 
✓ Tính năng chỉ định những ai sẽ quan tâm đến một sự kiện. 
✓ Lưu trữ các chi tiết như ngày sinh của một người và có bộ nhắc tự động. 
✓ Có bộ nhắc tự động đối với các sự kiện được mail cho bạn. 
✓ Thêm tính năng hỗ trợ tin nhắn điện thoại di động, cho phép bạn gửi e-mail hay text 
message đến các những người trong danh bạ liên lạc. 
52 
Chương 1: Online Diary 
1.6 Kết chương 
Qua chương này, bạn đã biết cách tạo một hệ thống quản lý danh bạ liên lạc và nhật ký đầy đủ 
chức năng, tất cả chỉ với một ít mã lệnh nhờ các điều kiểm và chức năng mới của ASP.NET 
2.0. Các điều kiểm bảo mật mới giúp tiết kiệm rất nhiều thời gian viết mã. Trong chương này, 
chúng đã được sử dụng để tạo người dùng và đăng nhập. Tuy nhiên, chúng cũng có thể cung 
cấp nhiều chức năng hơn như tạo các vai trò người dùng khác nhau, sau đó cho phép bạn chỉ 
định người dùng có thể làm gì và không thể làm gì dựa vào vai trò của họ. Hoặc bạn có thể để 
người dùng xác định cảm quan về các trang bằng tài khoản của họ và các điều kiểm mới của 
ASP.NET 2.0. 
Một điều kiểm tuyệt vời khác mà bạn đã khám phá trong chương này là ObjectDataSource. Các 
điều kiểm nguồn dữ liệu trước đây khiến công việc dễ dàng hơn, nhưng thiết kế mã kém, và 
bạn phải từ bỏ kiến trúc ba tầng. Giờ đây với điều kiểm ObjectDataSource, bạn có thể có được 
kiến trúc ba tầng cho các dự án với thiết kế tốt, tính bảo trì cao. 
Trong chương tiếp theo, bạn sẽ tạo một dự án chia sẻ file và tìm hiểu thêm một vài tính năng 
mới của ASP.NET 2.0. 

File đính kèm:

  • pdfCác giải pháp lập trình ASP.NET.pdf
Tài liệu liên quan