Nghiên cứu phương pháp xây dựng công cụ Webserver Controls ASP.NET và ứng dụng tạo bộ lịch vạn niên

71 294 0
Nghiên cứu phương pháp xây dựng công cụ Webserver Controls ASP.NET và ứng dụng tạo bộ lịch vạn niên

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel (84-511) 736 949, Fax (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH: 05115 ĐỀ TÀI: NGHIÊN CỨU PHƯƠNG PHÁP XÂY DỰNG CÔNG CỤ WEB SERVER CONTROLS ASP.NET VÀ ỨNG DỤNG TẠO BỘ LỊCH VẠN NIÊN Mã số: 07TLT-16 Ngày bảo vệ: 16/6/2009 – 17/6/2009 SINH VIÊN THỰC HIỆN LỚP CÁN BỘ HƯỚNG DẪN : : : VƯƠNG HẢI 07TLT Th.s PHAN THANH TAO ĐÀ NẴNG, 6/2009 LỜI CẢM ƠN Tôi xin chân thành cảm ơn tồn thể q thầy Khoa Cơng Nghệ Thông Tin Trường Đại học Bách Khoa Đà Nẵng người hết lòng dạy dỗ truyền đạt kiến thức quý báu cho suốt thời gian học tập Tôi xin gởi lời cảm ơn sâu sắc đến thầy giáo, Th.s Phan Thanh Tao, người giúp đỡ suốt thời gian thực đề tài Thầy tạo điều kiện thuận lợi tận tình hướng dẫn để tơi hồn thành đề tài Tôi xin gởi lời cảm ơn đến Trung Tâm CSE, trường Đại Học Dân Lập Duy Tân thành phố Đà Nẵng tạo điều kiện cho tơi hồn thành đề tài tốt nghiệp Tơi xin gửi lời cảm ơn chân thành đến gia đình, bạn bè nguồn động viên to lớn, giúp đỡ tơi suốt quá trình tơi thực đề tài Đà Nẵng, tháng năm 2009 Sinh viên thực hiện: Vương Hải LỜI CAM ĐOAN Tôi xin cam đoan : Những nội dung báo cáo thực hướng dẫn trực tiếp thầy giáo, Th.s Phan Thanh Tao Mọi tham khảo dùng báo cáo trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm công bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, xin chịu hoàn toàn trách nhiệm Sinh viên, Vương Hải DANH MỤC CÁC HÌNH VẼ Hình Hình 1.1 Hình 1.2 Hình 1.3 Tên hình Mơi trường NET Framework Mơ hình khơng gian tên System.Web.UI Các điều khiển không System.Web.UI.HtmlControls gian tên Trang Trang Trang Trang Hình 1.4 Các điều khiển System.Web.UI.Control gian tên Trang Hình 1.5 Hai điều khiển Rendered Control Composite Control Trang 18 Hình 2.1 Kiến trúc chế kết xuất cho điều khiển ASP.NET Những kiện điều khiển trình chủ ASP.NET Mơ hình vòng đời trang web Vòng đời điều khiển Trang 30 Hình 2.2 Hình 2.3 Hình 2.4 khơng Trang 34 Trang 40 Trang 43 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên DANH MỤC CÁC TỪ VIẾT TẮT STT TỪ VIẾT TẮT CLR FCL XML MSIL JIT HTML UI IIS CSS MÔ TẢ Common Language Runtime NET Framework Class Library Extensible Markup Language Microsoft Intermediate Language Just In Time HyperText Markup Language User Interface Internet Information Services Cascading Style Sheets Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên MỤC LỤC TỔNG QUAN VỀ NET FRAMEWORK VÀ SERVER CONTROL I .NET FRAMEWORK II GIỚI THIỆU VỀ ASP.NET III ĐIỀU KHIỂN TRÌNH CHỦ (SERVER CONTROL) III.1 Điều khiển gốc III.1.1 Không gian tên System.Web.UI III.1.2 Không gian tên System.Web.UI.HtmlControls III.1.3 Không gian tên System.Web.UI.WebControls III.2 User Controls 13 III.2.1 Cấu trúc User Control 14 III.2.2 Phương pháp xây dựng User Control 15 III.3 Custom Control 17 III.3.1 Phương pháp xây dựng Custom Server Control 17 III.3.2 Các bước xây dựng Custom Server Control 19 III.4 Sự khác User Control Custom Control 23 PHƯƠNG PHÁP XÂY DỰNG CÔNG CỤ SERVER CONTROL 25 I THUỘC TÍNH 25 I.1 Giới thiệu thuộc tính .25 I.2 Cách xây dựng thuộc tính 26 II PHƯƠNG THỨC 28 II.1 Phương thức Render() 29 II.2 Lớp HtmlTextWriter 31 III SỰ KIỆN 33 III.1 Nhu cầu cho kiện ASP.NET 33 III.2 Mơ hình kiện NET Framework 34 III.3 Giao diện InamingContainer 37 III.4 Giao diện IpostBackDataHandler 37 III.5 Giao diện IpostBackEventHandler 39 III.6 Vòng đời điều khiển .41 XÂY DỰNG CONTROL SERVER CHO BỘ LỊCH VẠN NIÊN 47 I GIỚI THIỆU VỀ BỘ LỊCH VẠN NIÊN .47 II PHÂN TÍCH CHƯƠNG TRÌNH LỊCH VẠN NIÊN .47 II.1 Lớp perpetual_calendar .48 II.2 Lớp Calendar_Month 50 II.3 Lớp Calendar_Month_Data .55 II.4 Lớp Calendar_Daily 56 II.5 Lớp Calendar_Week 58 TRIỂN KHAI VÀ CÀI ĐẶT ỨNG DỤNG .60 I Lịch tháng không kết nối sở liệu 60 II Lịch tháng có kết nối sở liệu .61 III Lịch tuần 61 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên IV Lịch ngày 61 V Một số thuộc tính control perpetual_calendar 62 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63 I Kết luận 63 II Hướng phát triển 63 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên LỜI MỞ ĐẦU Ngày ngành Công Nghệ Thông Tin phát triển vũ bão, đặc biệt ngành công nghệ phần mềm Trong lĩnh vực phát triển ứng dụng Web, để xây dựng ứng dụng cách nhanh chóng Microsoft cho đời công nghệ NET Với ASP.NET phần NET ta xây dựng ứng dụng Web cách nhanh chóng hiệu Ngồi ra, để xử lý công việc ngày nhiều, công cụ hỗ trợ cho việc phát triển phần mềm liên tục đời nhằm trợ giúp người phát triển phần mềm giảm bớt khó khăn Tuy nhiên, cơng cụ hỗ trợ chưa đáp ứng cơng việc lập trình viên nên họ xây dựng cho cơng cụ điều khiển mở rộng để đáp ứng nhu cầu họ cơng ty Để người phát triển phần mềm xây dựng tạo công cụ sử dụng chung cho công ty cho cá nhân người lập trình, nên em chọn đề tài: “Nghiên cứu phương pháp xây dựng công cụ web server controls ASP.NET ứng dụng tạo lịch vạn niên” Nội dung đề tài gồm có chương: Chương 1: Tổng quan Net Framework server control Trong chương này, em giới thiệu NET Framework, ASP.NET tổng quan server control, cách xây dựng User Control Custom Control So sánh khác User Control Custom Control Chương 2: Phương pháp xây dựng công cụ server control Trong chương này, em trình bày cách xây dựng thuộc tính, phương thức xây dựng kiện cho Custom Control Đưa giao diện kiện, từ kế thừa kiện sở để xây dựng nên kiện cho control Chương 3: Xây dựng control server cho lịch vạn niên Sau thời gian thầy giáo hướng dẫn tham khảo tài liệu có liên quan đến đề tài Trong trình thực đề tài khơng tránh thiếu sót nên em mong nhận đóng góp ý kiến thầy cô giáo tất bạn để đề tài em hoàn chỉnh Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang iii Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên TỔNG QUAN Đặt vấn đề Hiện web ASP.NET sử dụng rộng rãi khắp nơi Vì vậy, việc sử dụng điều khiển mở rộng cho ASP.NET cần thiết cho người lập trình để họ xây dựng ứng dụng cách nhanh chóng Em chọn đề tài với lý ôn lại kiến thức học, hiểu sâu hệ thống chương trình nâng cao khả lập trình mình, phần giúp cho người phát triển phần mềm xây dựng nhanh chóng điều khiển mở rộng để đáp ứng nhu cầu người sử dụng Mục đích Nhằm giúp cho người phát triển phần mềm hiểu rõ control xây dựng tảng cở sở tự họ xây dựng điều khiển Custom Control web, sử dụng điều khiển mở rộng cách nhanh chóng hiệu Em xây dựng công cụ calendar vạn niên lên lịch cho ngày, cho tháng, sử dụng lịch vạn niên,… nhằm giúp cho người phát triển dễ dàng nhanh chóng việc xây dựng phần mềm có nhu cầu sử dụng lịch vạn niên Để xây dựng đề tài này, em sử dụng ngôn ngữ : Visual Studio.Net 2005 (ASP.Net, C#) Phương pháp nghiên cứu Nghiên cứu tài liệu Custom Control ASP.NET triển khai xây dựng ứng dụng thực nghiệm cho Web Server Control Đưa giải pháp từ lý thuyết để ứng dụng vào thực tiễn Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang iv Đề tài: Nghiên phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên CHƯƠNG I TỔNG QUAN VỀ NET FRAMEWORK VÀ SERVER CONTROL I NET FRAMEWORK NET Framework hạ tầng chuẩn hóa, độc lập ngơn ngữ lập trình, cho phép ta xây dựng, tích hợp, biên dịch, triển khai, chạy dịch vụ Web, XML, tiện ích hay thực thi chương trình đa cấu trúc (phát triển ngơn ngữ lập trình hỗ trợ NET) hệ điều hành có cài đặt NET Framework .NET Framework gồm có hai thành phần Common Language Runtime (CLR) NET Framework Class Library (FCL):  CLR thành phần NET Framework, quản lý mã (Code) thực thi chương trình, quản lý tiến trình, quản lý tiểu trình (Threading), quản lý nhớ, cung cấp dịch vụ để biên dịch, tích hợp tác vụ truy cập từ xa CLR xem máy ảo NET, kiểm sốt, nạp thực thi chương trình  FCL bao gồm tất dịch vụ giao tiếp người sử dụng, điều khiển truy cập liệu, XML, Threading, bảo mật,… FCL cung cấp lớp, giao tiếp kiểu giá trị, phương thức truy cập chức hệ thống như: Ms.C#, Ms.VB, Ms.Jscript, Ms.Vsa, Ms.Win32, System:  Ms.C#: Cung cấp lớp hỗ trợ biên dịch phát sinh mã sử dụng ngôn ngữ lập trình C#  Ms.VB: Cung cấp lớp hỗ trợ biên dịch phát sinh mã sử dụng ngơn ngữ lập trình VB.NET  Ms.Jscript: Cung cấp lớp hỗ trợ biên dịch phát sinh mã sử dụng ngơn ngữ lập trình J#  Ms.Vsa: Cung cấp giao tiếp cho phép ta tích hợp với kịch NET Framework vào ứng dụng biên dịch hay thực thi  Ms.Win32: Cung cấp hai lớp giao tiếp trực tiếp với tài nguyên hệ điều hành System Registry  System: Bao gồm lớp sở dùng để định nghĩa giá trị, tham chiếu, biến cố, giao tiếp, thuộc tính kiểm sốt ngoại lệ Ngồi ra, số lớp khác cung cấp dịch vụ chuyển đổi kiểu liệu, tham số, tính tốn, xử lý truy cập từ xa Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên - Kiểm tra giá trị str_kytu ứng với giá trị gọi lớp ứng với giá trị + Nếu str_kytu rỗng:  Kiểm tra kiểu lịch xem tương ứng kiểu gọi lớp ứng với kiểu  Kết thúc việc kiểm tra Khai báo hàm nhận giá trị kiện thực kiện control Hàm nằm hàm render: - Truyền giá trị vừa nhận cho chuỗi mypostback - Quay lại bước Hàm render lớp perpetual_calendar hàm chính, ln ln thực thi ta thay đổi kích thướt control hay thay đổi thuộc tính control nắm bắt kiện ta thực thi control .II.2 Lớp Calendar_Month Lớp dùng để hiển thị ngày âm ngày dương tháng Để xây dựng lớp này, ta thừa kế lớp Control lớp WebControl Ta khai báo namespace: using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; Khởi tạo hàm tạo cho lớp Calendar_Month để thực nhiệm vụ việc cấp phát nhớ cho biến Ta có thuật toán hàm tạo: Trong hàm tạo lớp này: Nhận giá trị từ lớp perpetual_calendar sau truyền giá trị cho biến lớp Gọi hàm Render() lớp Kết thúc hàm tạo Trả lại hàm render lớp perpetual_calendar - Hàm tạo lớp Calendar_Month: public Calendar_Month(Unit _Width, Unit _Height, Color _CurrentColor, Color _FontColor, Color _Month_CurrentColor, Color _Title_Color, perpetual_calendar.TypeofLunar_solar _typeofLunarCalendar, string _UniqueID1, DateTime _MonthDay, HtmlTextWriter writer) { Width = _Width; Height = _Height; CurrentColor = _CurrentColor; _UniqueID = _UniqueID1; Font_Color = _FontColor; typeofLunarCalendar = _typeofLunarCalendar; Month_CurrentColor = _Month_CurrentColor; Title_Color = _Title_Color; MonthDay = _MonthDay; Render(writer); } Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 48 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên Để tạo Web Control Calendar, ta phải xây dựng phần header, phần footer phần body cho control Trong phần header, ta dùng để hiển thị tháng năm phần header ta sử dụng hai kiện Previous kiện Next để lui lại tháng tháng đến tháng tháng Để xây dựng thuộc tính màu cho phần header, dùng để chọn màu Calendar theo ý người sử dụng Để lấy màu BackColor cho phần title ta sử dụng lớp System.Drawing.ColorTranslator gọi phương thức ToHtml() ColorTranslator để chuyển màu mà ta chọn thuộc tính màu cho Title_Color Khai báo biến Title_Color kiểu Color Để tạo table phần header, sử dụng thẻ HTML Để kết xuất thẻ HTML ta phải sử dụng lớp HtmlTextWriter Trong lớp HtmlTextWriter, sử dụng thuộc tính lớp để kết xuất thẻ HTML Sử dụng thẻ tr để tạo dòng thẻ “td” để tạo cột Sử dụng thuộc tính HTML phương thức WriteAttribute() để tạo border,… Sau sử dụng lớp HtmlTextWriter.TagRightChar để thực thi thuộc tính HTML Tiêu biểu đoạn code sau sử dụng để chuyển màu đến phần header hiển thị tháng năm lớp Calendar_Month: output.WriteBeginTag("td"); output.WriteAttribute("bordercolor", "#CCCC00"); output.WriteAttribute("align", "center"); output.WriteAttribute("colspan", "5"); output.WriteAttribute("bgcolor", mau_title_control); output.Write(HtmlTextWriter.TagRightChar); output.Write(""); output.Write(" Tháng " + dtTample.Month.ToString() + " Năm " + dtTample.Year.ToString()); output.Write(""); output.WriteEndTag("td"); Để xây dựng kiện link đến tháng kế tiếp, ta sử dụng hàm dopostback: output.Write("  >>"); Trong lớp Calendar, ta phải sử dụng lệnh JavaScript để thực hàm dopostback JavaScript để nắm bắt kiện người sử dụng gọi Với hàm dopostback sinh trình thực thi ứng dụng: function doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm. EVENTTARGET.value = eventTarget; theForm. EVENTARGUMENT.value = eventArgument; theForm.submit(); } Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 49 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên } Khai báo biến _UniqueID để nhận giá trị từ UniqueID lớp perpetual_calendar Giá trị UniqueID phát sinh giá trị Ứng với giá trị biến _UniqueID, dtTample.AddMonths(1).ToOADate() lớp Calendar_Month cho tháng trước tháng Sử dụng phương thức ToOADate() để chuyển đổi sang giá trị tương đương với kiểu ngày Sau lớp perpetual_calendar ta sử dụng phương thức FromOADate() để trả kiểu ngày tương đương với số mà ToOADate() chuyển đổi lớp Calendar_Month Sử dụng thuộc tính dtTample.AddMonths(1) để đến tháng sau ta kích mouse vào link next Ở link previous ta sử dụng theo khai báo trên, thay đổi giá trị AddMonth(-1) Trong phần header ta đưa ngày tuần thứ hai, thứ ba,… gán mặc định vào phần header Trong phần thân Calendar, ta tô màu cho ngày tháng Để thực điều đó, ta khai báo hai cờ: bool blflag = false; //khai báo flag để tô màu cho ngày bool M_flag = true; //khai báo cho tháng Kiểm tra ngày tháng hệ thống có ngày tháng biến dtTample hay không? Với ngày tháng dtTample khai báo sau: Ta khai báo ngày tại: private string _current_date = DateTime.Today.ToString("MM/dd/yyyy"); public string Current_date { get { return _current_date; } set { _current_date = value; } } protected void Render(System.Web.UI.HtmlTextWriter writer) { int i = 0; DateTime dtTample = DateTime.Parse(Current_date); dtTample = MonthDay; dtTample = DateTime.Parse(dtTample.Month.ToString() + "/" + "1" + "/" + dtTample.Year.ToString()); while (true) { if ((int)dtTample.DayOfWeek == 0) break; else dtTample = dtTample.AddDays(-1); } while (i < 6) { Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 50 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên BodyCalendar(writer, dtTample); dtTample = dtTample.AddDays(7); i++; } } Trong hàm Render ta khai báo biến dtTample kiểu DateTime Thuật toán hàm render: { - Chuyển đổi ngày tháng trở ngày đầu tháng - Gọi hàm header lớp Calendar_Month Kiểm tra giá trị ngày tuần tháng Ứng với tuần tháng, ngày tháng nằm ngày thứ tuần Các ngày trước tháng trước Lặp khơng có ngày tuần dừng - While(true) {  Kiểm tra ngày khơng thuộc ngày tuần cho dừng  Ngược lại giảm bớt ngày } - while (i 0) {// có liệu hiển thị Calendar theo ngày bắt đầu ngày kết thúc Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 53 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên this.TableName.DefaultView.RowFilter = "from_date ='" + dtTample.ToString("MM/dd/yyyy") + "'"; if (this.TableName.DefaultView.ToTable().Rows.Count > 0) {//hiển thị lên calendar theo tựa đề output.Write(""); output.Write("" + this.TableName.DefaultView.ToTable().Rows[0]["title"].ToString() + ""); } } } Trong đoạn mã trên, ta sử dụng kiện link đến lớp ngày để lấy nội dung ngày làm cơng việc Ta sử dụng hàm dopostback để thực thi kiện Hàm dopostback thực thi lớp IPostBackEventHandler thừa kế lớp perpetual_calendar Và để thực thi kiện này, ta gán giá trị chuỗi cho tháng có giá trị “B” ký tự “_” cộng với giá trị hành Để sử dụng kiện link đến lớp ngày kiện link đến lớp ngày, ta gán giá trị “D_” cộng thêm giá trị hành.dopostback thực thi lớp IPostBackEventHandler cho việc nắm bắt kiện .II.4 Lớp Calendar_Daily Lớp sử dụng để hiển thị ngày nội dung việc lên lịch ngày Lớp kết nối với lớp Calendar_Month Calendar_Week Để xây dựng lớp Calendar_Daily, trước tiên ta khởi tạo hàm tạo xây dựng hàm chuyển ngày tuần hệ thống thành tiếng việt, sau gán với ngày ứng với ngày để lấy thứ ngày tuần private string DayofWeekVn(string DayofWeek) { string cv = ""; switch (DayofWeek) { case "Monday": cv = "T.Hai "; break; case "Tuesday": cv = " T.Ba "; break; case "Wednesday": cv = " T.Tư "; break; case "Thursday": cv = "T.Năm "; break; case "Friday": cv = "T.Sáu "; break; case "Saturday": cv = "T.Bảy "; break; case "Sunday": cv = " CN "; break; } Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 54 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên return cv; } Để gán thứ vào ngày tương ứng ta xây dựng sau: output.Write(""+DayofWeekVn(dtTample.DayOfWeek.ToString())+ ","+dtTample.Day.ToString()+" / "+ dtTample.Month.ToString()+" / dtTample.Year.ToString()+""); "+ Đoạn mã sử dụng để lấy thứ, ngày, tháng năm lịch Ở kiểu lịch khác ta xây dựng tương tự sử dụng hàm lunar để chuyển lịch dương sang lịch âm Để xây dựng kiện cho hai link previous link next ta xây dựng giống lớp thay lớp tháng sử dụng thuộc tính AddMonths() lớp Calendar_Daily ta sử dụng thuộc tính AddDays() Để ta kích link next chương trình chạy đến ngày kế tiếp, ta sử dụng thuộc tính AddDays(1) gán giá trị cho Giá trị ứng với việc next đến ngày Còn sử dụng link previous ta gán giá trị -1 cho thuộc tính AddDays() Các thuộc tính khác, ta xây dựng giống hai lớp Calendar_Month lớp Calendar_Month_Data Việc thiết lập thuộc tính để load liệu lên lịch tương tự lớp Trong lớp này, ta cần hiển thị ngày kéo thả control vào Design Vì vậy, ta khơng cần chuyển ngày đầu tháng hai lớp Calendar_Month lớp Calendar_Month_Data nữa, ta cần lấy ngày biến dtTample.Day đủ: DateTime dtTample = DateTime.Parse(Current_date); dtTample = MonthDay; dtTample = DateTime.Parse(dtTample.Month.ToString() + "/" + dtTample.Day.ToString() + "/" + dtTample.Year.ToString()); Body_Calendar_Day(writer, dtTample); dtTample = dtTample.AddDays(1); II.5 Lớp Calendar_Week Trong lớp này, ta xây dựng tương tự lớp Calendar_Daily Nói chung, ta khởi tạo hàm tạo, xây dựng thuộc tính hiển thị liệu, hiển thị tất ngày tuần Việc xây dựng kiện link previous link next ta sử dụng thuộc tính AddDays() gán cho giá trị cho việc next đến tuần giá trị -7 cho việc previous tuần trước Việc hiển thị màu ngày màu lịch tương tự lớp Việc sử dụng kiện link đến lớp ngày, ta sử dụng hàm javascript_doPostBack truyền biến _UniqueID giá trị lớp ngày vào để Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 55 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên thực thi chọn ngày tuần việc nắm bắt kiện xảy Trong trường hợp này, ta cho chuỗi ngày ta có giá trị D giá trị ký tự “_” cộng tiếp giá trị hành Giá trị hành giá trị ngày hành thực thi Convert đến giá trị ngày hành Biễu diễn trình thực thi từ lớp tuần sang lớp ngày lấy giá trị ngày mà ta chọn lịch tuần: output.Write("" + "" + DayofWeekVn(dtTample.DayOfWeek.ToString()) + "," + dtTample.Day.ToString() + "/" + dtTample.Month.ToString() + "/" + dtTample.Year.ToString() + "(" + lunar.GetDayOfMonth(dtTample).ToString() + "/" + lunar.GetMonth(dtTample).ToString() + " AL)"+""); Ta có thuật tốn hàm render: { - - Giữ nguyên ngày tháng hệ thống Gọi hàm header lớp Calendar_Week Kiểm tra giá trị ngày tuần tuần Ứng với ngày tuần, ngày nằm ngày thứ tuần Lặp khơng có ngày tuần dừng While(true) {  Kiểm tra ngày khơng thuộc ngày tuần cho dừng  Ngược lại giảm bớt ngày } Gọi hàm body lớp Calendar_Week Tăng giá trị ngày tuần ngày Gọi hàm Footer lớp Calendar_Week Gọi hàm Menu lớp Calendar_Week Kết thúc hàm render } Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 56 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên CHƯƠNG IV TRIỂN KHAI VÀ CÀI ĐẶT ỨNG DỤNG Để triển khai Custom Control, trước tiên ta phải biên dịch Custom Control thành file assembly sau triển khai file assembly vào thư mục Bin ứng dụng ASP.NET mà sử dụng trước Khi sử dụng Custom Control perpetual_calendar ta chọn Choose Items chọn file perpetual_calendar.dll Khi ToolBox xuất control perpetual_calendar kéo thả, sử dụng control khác Một số hình ảnh mô tả Custom Control Calendar vạn niên: I Lịch tháng không kết nối sở liệu Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 57 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên .II Lịch tháng có kết nối sở liệu III Lịch tuần IV Lịch ngày Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 58 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên .V Một số thuộc tính control perpetual_calendar Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 59 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên Chương V KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN I Kết luận Trong suốt q trình tìm hiểu hồn thành khóa luận tốt nghiệp giúp cho em nắm bắt hiểu khái niệm, cách thức xây dựng control em thực công việc như: Đưa phương pháp xây dựng User Control Web ASP.NET  ASP.NET  ASP.NET  ASP.NET  ASP.NET  ASP.NET Đưa phương pháp xây dựng Custom Control Web Xây dựng thuộc tính cho điều khiển mở rộng Xây dựng phương thức cho điều khiển mở rộng Xây dựng kiện cho điều khiển mở rộng Xây dựng điều khiển mở rộng lịch vạn niên cho web Tuy nhiên kết đạt tồn nhiều hạn chế, việc tìm hiểu lý thuyết Custom Control, phương pháp xây dựng kiện, thuộc tính phương thức phạm vi hẹp Về xây dựng điều khiển ứng dụng lịch vạn niên nhiều hạn chế, việc chưa thể lên lịch ngày .II Hướng phát triển Trong tương lai em tích hợp công nghệ AJAX vào công cụ điều khiển để chương trình xử lý nhanh hiệu hơn, xử lý việc lên lịch hàng ngày Về phần CSDL điều khiển mở rộng perpetual_calendar em sử dụng XML để lưu nội dung việc lên lịch để sử dụng điều khiển cách linh hoạt Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 60 Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên TÀI LIỆU THAM KHẢO Tiếng Việt [1] [2] Phạm Hữu Khang Lập trình cở C# 2005 Đồ án tốt nghiệp anh Huỳnh Ngọc Minh, niên khóa 2004 – 2008, giảng viên hướng dẫn Ts Nguyễn Mậu Hân Tiếng Anh Dale Michalk and Rob Cameron.Building ASP.NET Server Controls Fritz Onion.Essential ASP.NET with Examples in C#.Addison Wesley February 11, 2003 [5] Dino Esposito.Programming Microsoft ASP.NET [3] [4] Trang web [6] http://msdn.microsoft.com/en-us/library/ms644563.aspx Sinh viên thực hiện: Vương Hải, lớp 07TLT Trang 61 Đề tài: Nghiên phương pháp xây dựng Web Server Controls ứng dụng tạo lịch vạn niên Tên tác giả đây, LỚP XXX 63

Ngày đăng: 21/12/2017, 22:15

Từ khóa liên quan

Mục lục

  • TỔNG QUAN VỀ .NET FRAMEWORK VÀ SERVER CONTROL

    • .I .NET FRAMEWORK

    • .II GIỚI THIỆU VỀ ASP.NET

    • .III ĐIỀU KHIỂN TRÌNH CHỦ (SERVER CONTROL)

      • .III.1. Điều khiển gốc

        • .III.1.1. Không gian tên System.Web.UI

        • .III.1.2. Không gian tên System.Web.UI.HtmlControls

        • .III.1.3. Không gian tên System.Web.UI.WebControls

        • .III.2. User Controls

          • .III.2.1. Cấu trúc User Control

          • .III.2.2. Phương pháp xây dựng User Control

          • .III.3. Custom Control

            • .III.3.1. Phương pháp xây dựng Custom Server Control

            • .III.3.2. Các bước xây dựng Custom Server Control

            • .III.4. Sự khác nhau cơ bản giữa User Control và Custom Control

            • PHƯƠNG PHÁP XÂY DỰNG CÔNG CỤ SERVER CONTROL

              • .I THUỘC TÍNH

                • .I.1. Giới thiệu về thuộc tính

                • .I.2. Cách xây dựng thuộc tính

                • .II PHƯƠNG THỨC

                  • .II.1. Phương thức Render()

                  • .II.2. Lớp HtmlTextWriter

                  • .III SỰ KIỆN

                    • .III.1. Nhu cầu cho những sự kiện trong ASP.NET

                    • .III.2. Mô hình sự kiện .NET Framework

                    • .III.3. Giao diện InamingContainer

                    • .III.4. Giao diện IpostBackDataHandler

                    • .III.5. Giao diện IpostBackEventHandler

                    • .III.6. Vòng đời điều khiển

Tài liệu cùng người dùng

Tài liệu liên quan