Giáo trình ASP NET tiếng việt pro lập trình với c

37 216 0
Giáo trình ASP NET tiếng việt pro lập trình với c

Đ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

Giáo trình ASP.NET Tiếng việt Pro - Lập trình với C# Chương Giới thiệu chung cấu trúc ASP.NET Framwork C# I Giới thiệu chung ASPNetFramwork ASP.NET NET FRAMEWORK ASP.NET phần NET FrameWork Để xây dựng trang asp.NET bạn cần thêm vào đặc tính netframework NetFrameWork chứa đựng hai phần FrameWork Class Library Commom Language Runtime 1.1 Hiểu Framework Class Library Framework chứa đựng hàng nghìn lớp mà bạn sử dụng ứng dụng Ví dụ vài lớp Net Framework -Lớp File: cho phép bạn tạo file, sửa, xoá hay kiểm tra tồn file đĩa cứng… -Lớp Graphics: Cho phép bạn làm việc với nhiều kiểu ảnh, bạn tạo ảnh từ phương thức lớp -Lớp SmtpClient: Cho phép bạn gửi thư Hiểu Namespaces: 13 nghìn lớp Netframework Đây số lớn, Microsoft chia lớp xử lý vấn đề vào không gian tên chung hay namespaces Một Namespace đơn giản danh mục, ví dụ tất lớp thao tác với File thư mục đưa vào namespaces chung gọi System.IO, hay tất lớp làm việc với SqlServer đưa vào namespace System.Data.SqlClient Các namespaces chung net: System System.Collections System.Collections.Specialized System.Configuration System.Text System.Text.RegularExpressions System.Web System.Web.Caching System.Web.SessionState System.Web.Security System.Web.Profile System.Web.UI System.Web.UI.WebControls System.Web.UI.WebControls.WebParts 1.2 Hiểu Assembly: Một Assembly file dll đĩa cứng bạn, nơi mà lưu trữ lớp NET, ví dụ tất lớp ASP.NET Framework nằm Assembly System.web.dll Trước sử dụng lớp dll bạn cần tạo tham chiếu đến file dll 1.3 Hiểu Commom Language Runtime(CLR) Phần thứ NetFramework CLR chịu trách nhiệm thực thi mã ứng dụng bạn Khi bạn viết ứng dụng ngôn ngữ C#, VB.NET hay ngôn ngữ NetFramwork mã bạn không biên dịch trực tiếp thành mã máy Thay vào chúng biên dạng sang ngôn ngữ đặc tả MSIL (Microsoft intermediate Language) MSIL nhìn giống với ngôn ngữ hướng đối tượng Assembly, không giống kiểu ngôn ngữ Assembly MSIL ngôn ngữ bậc thấp phụ thuộc vào Platform Khi ứng dụng bạn thực thi, mã MSIL “just in time” biên dịch sang mã máy JITTER(just in time compiler) Như bạn viết lớp Net ngôn ngữ bạn biên dịch sang Assembly bạn sử dụng Assembly cho ngôn ngữ khác 1.4 Hiểu điều khiển Asp.net Các điều khiển asp.net phần quan trọng ASP.NET Framework Control ASP.NET lớp mà thực thi server đưa nội dung trình duyệt ASP.NET có 70 control mà bạn sử dụng xây dựng ứng dụng web bạn chia nhóm control sau: Standard control: bao gồm điều khiển đưa thành phần chuẩn form như: Label, Button, TextBox… Validator Control: control cho phép kiểm tra tính hợp lệ control cho phép nhập giá trị form Rich Control: điều khiển FileUpload, Calendar… Data Control điều khiển cho phép thao tác với liệu Navigation Control: điều khiển giúp bạn dễ dàng di chuyển trang website Login control: Là điều khiển bảo mật ứng dụng cho phép bạn đưa form đăng nhập, thay đổi mật khẩu… HTML Control: cho phép bạn chuyển điều khiển HTML thành điều khiển làm việc server 1.5 hiểu điều khiển kiện server Phần lớn điều khiển asp.net hỗ trợ nhiều kiện, ví dụ điều khiển ASP.NET Button hỗ trợ kiện Click, người sử dụng nhấn chuột vào Button kiện đưa công việc xử lý server Ví dụ: Trang UnderstandEvent.aspx protected void Button1_Click(object sender, EventArgs e) { Label1.Text = TextBox1.Text; } Hiểu kiện phía server Trong ví dụ gồm điều khiển ASP.NET TextBox, Label, Button, người sử dụng nhập liệu vào Textbox nhấn vào Button kiện Button1_Click đưa điền liệu từ TextBox Label 1.6 Hiểu View State Giao thức http giao thức móng WWW, giao thức chuẩn thực tế.mỗi lần bạn request trang từ website, liệu đưa ra, ASP.NET Framework quản lý vượt giới hạn giao thức http, ví dụ bạn điền liệu vào điều khiển Label với thuộc tính Text nó, liệu lưu trữ qua nhiều trang web thay đổi gán lại giá trị Ví dụ sau đưa một trang asp.net gồm điều khiển Button Label(Text hiển thị số đếm), lần nhấn vào Button giá trị Label tăng lên Ví dụ trang Understandstate.aspx: protected void Button1_Click(object sender,EventArgs e) { Label1.Text = Convert.ToString(int.Parse(Label1.Text) + 1); } Under Stand State Nếu bạn mở View Source code trang Understandstate.aspx bạn thấy sau: Đây file hidden form chứa giá trị Text Label trang postback ghi nhớ text khởi tạo lại giá trị Label trang Load 1.7 Hiểu trang asp.net Sử dụng Code-Behind Thay sử dụng trang asp.net người ta đưa thêm trang gọi Codebehind chứa mã lệnh thực trang asp.net Ví dụ phần đầu chương ta tạo website mặc định tạo lớp Default.aspx kèm theo trang Default.aspx.cs Trang Default.aspx Default Trang Defautl.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {} } 1.8 Điều khiển kiện trang asp.net Khi chạy trang asp.net vòng đời trang asp.net gồm kiện 1.PreInit Init InitComplete PreLoad Load LoadComplete PreRender PreRenderComplete SaveStateComplete 10 Unload Sử dụng thuộc tính Page.IsPostBack Với kiện Load trang tải trang lên có kiện đưa ra, có nghĩa lần load lại trang lại thực công việc đó, ta đưa thêm vào thuộc tính Page.IsPostBack ta điều khiển kiện thực kiện không trang đựơc tải lại II Cơ lập trình C# lập trình trang ASP.NET Kiểu liệu C# đưa kiểu liệu dựng sẵn tiện ích, phù hợp với ngôn ngữ lập trình đại Bảng sau miêu tả số kiểu liệu C# Kiểu C# byte char bool sbyte short ushort int uint float Double Kiểu Net Byte Char Boolean Sbyte Int16 Int16 Int32 Int32 Single Double Số Byte 1 2 4 Decimal Decimal Mô tả số nguyên không dấu từ đến 255 Kiểu ký tự Unicode Giá trị true/false Số nguyên có dấu, từ -128 đến 127 Số nguyên có dấu từ -32768 đến 32767 Số nguyên không dấu từ đến 65.535 Số nguyên có dấu –2.147.483.647 đến 2.147.483.647 Số nguyên không dâu đến 4.294.967.295 kiểu dấu chấm động, giá trị xấp xỉ từ 3,4E-38 đến 3,4E+38, với chữ số có nghĩa Kiểu dấu chấm động có độ xác gấp đôi, giá trị xấp xỉ từ 1,7E-308 đến 1,7E+308, với 15,16 chữ số có nghĩa Có độ xác đến 28 số giá trị thập phân, dùng tính toán tài chính, kiểu đòi hỏi phải có hậu tố m M kèm theo sau khai báo biến Cú pháp: Kiểu Tên_biến; Ví dụ: string giatri_chuoi; int giatri_nguyen; ý biến bao gồm chữ cái, chữ số(không đứng đầu) ký tự _ (nối) biến C# phân biệt chữ hoa chữ thường Sử dụng trình bày a trình bày if – if else Khi bạn cần kiểm tra điều kiện trước thực công việc, kiểm tra điều kiện làm việc khác không làm bạn dùng trình bày if – if else cú pháp: if(điều_kiên) { //thực công việc } if(điều_kiên) { // thực công việc } else { //thực công việc } Lưu ý bạn dùng nhiều cặp if – else lồng nhau: Ví dụ: Vd1 if (conn.State != ConnectionState.Open) conn.Open(); Vd2 if (1 > 2) MessageBox.Show("1>2"); else MessageBox.Show("2>1"); b, Sử dụng trình bày switch case Khi công việc có nhiều lựa chọn tuỳ vào trường hợp để bạn đưa công việc phù hợp với điều kiện đưa vào bạn dùng trình bày switch case Ví dụ: string giatri = Request.QueryString["abc"]; switch (giatri) { case "a": //thuc hien cong viec a break; case "b": //thuc hien cong viec b break; default: //thuc hien cong viec mac dinh break; } c, Sử dụng trình bày for Ví dụ string giatri; for (int i = 0; i < 10; i++) giatri += i.ToString(); MessageBox.Show(giatri); Khi làm việc với mảng hay trường hợp thực công việc khoảng dùng trình bày for d, Sử dụng trình bày while thực công việc điều kiện Ví dụ int i = 0; while (i < 5) { Console.WriteLine(i.ToString()); i++; } e, Sử dụng trình bày while ngược lại với while – while làm việc điều kiện thoát Ví dụ int i = 0; { MessageBox.Show(i.ToString()); i++; } while (i < 3); f, Sử dụng trình bày break (để thoát khỏi vòng lặp) Ví dụ int i = 0; { MessageBox.Show(i.ToString()); i++; if (i == 1) break; } while (i < 3); g, Sử dụng trình bày continue Ví dụ int j = 0; for ( int i = 0; i < 5; i++ ) { j++; if ( j > ) { MessageBox.Show(j.ToString()); continue; } } h, Sử dụng trình bày return(được sử dụng hàm để trả giá trị cụ thể cho hàm) Ví dụ public int sum(int a, int b) { return a + b; } k, Sử dụng trình bày goto Ví dụ int i = 0; int j = 0; while (i < 5) { i++; j++; if (j == 2) goto jumpeddoutofloop; } jumpeddoutofloop: Console.WriteLine("I jumped out"); Trang asp.net Trang asp.net có đuôi mở rộng aspx kèm theo lớp phục vụ ẩn đằng sau(Code behind) Để viết code C# trang aspnet ta khai báo sử dụng trực tiếp trang asp.net, file code behind, từ thành phần thư viện ta gọi vào 4.1 Viết code C# file aspx: bạn dùng các thẻ sau - bạn khai báo biến viết hàm, lớp thể này, - với thẻ bạn dùng để gọi giá trị biến hay hàm đó, - lấy giá trị dùng trang đối tượng ràng buộc liệu Đây ví dụ đơn giản Trang basic.aspx Basic Biến abc bạn vừa khai báo có giá trị 4.2 Viết code trang code behind Vì trang aspnet kế thừa từ trang aspx.cs lên trang aspx muốn gọi liệu từ biến hay hàm file aspx.cs phải khai báo với bổ ngữ truy cập protected public Ví dụ sau: Trang codebehind.aspx Untitled Page Gán giá trị: Lấy giá trị từ code behind Trang codebehind.aspx.cs using System; public partial class codebehind : System.Web.UI.Page { protected string _hello; protected void Page_Load(object sender, EventArgs e) { _hello = "Hello World"; lblhello.Text = _hello; } } Trong ví dụ có sử dụng điều khiển asp.net Label bạn học chương sau, chương bạn hiểu điều khiển để hiển thị liệu Bạn thấy phần code behind có khai báo biến _hello kiểu string bổ ngữ truy cập protected kiện Page_Load(khi trang tải lên) gán _hello = "Hello World"; sau gán giá trị cho Label giá trị _hello Còn trang aspx có sử dùng thẻ để lấy giá trị _hello để in hình 4.3 tạo lớp thư viện Để tạo lớp thư viện phục vụ cho trang asp.net bạn tạo thành phần thư viện động DLL nhập tham chiếu đến để sử dụng(chúng ta học phần asp.net nâng cao) Trong ứng dụng web ASP.NET Framework có ASP.NET FOLDER App_Code cho phép viết lớp thư viện sử dụng trang ứng dụng web để tạo thư mục App_code bạn làm theo bước sau đây: bước 1: nhấn chuột phải vào Solution chọn theo đường dẫn ảnh Trong ứng dụng web thêm vào thư mục App_code viết vào lớp thư viện Để tạo lớp thư viện thư mục nhấn chuột phải vào thư mục App_code chọn Add New Item Form Add New Item Bạn chọn Class hộp TextBox Nam bạn nhập tên lớp muôn tạo nhân nút Add a, Định nghĩa lớp: Khai báo: [Thuộc tính] [bổ sung truy cập] Class [Tên lớp] : [Lớp sở] { //các biến, phương thức hay thuộc tính lớp } Ví dụ: Lớp HelloWorld.cs class HelloWorld { public string SayMessage() { return "Hello World"; } } Trong ví dụ phương thức SayMessage sẻ chuỗi “Hello World” b, Sử dụng định nghĩa truy cập Public: lớp, phương thức, hay thuôc tính sử dụng từ khoá không bị hạn chế truy cập Protected: Lớp, Phương thức, Thuộc tính sử dụng lớp lớp dẫn xuất Internal: Một lớp, phương thức, thuộc tính Internal truy cập thành phần Assembly(file DLL) Private: Một lớp Private, phương thức thuộc tính truy cập lớp c, Hàm thủ tục Bạn hiểu đơn giản hàm phải có giá trị trả thủ tục đoạn mã thực gọi thủ tục gọi hàm không kiểu, hàm thủ tục C# gọi chung phương thức Ví dụ hàm: public static int Sum(int _a, int _b) { return _a + _b; } Trên hàm dùng để tính tổng hai số, bạn thấy trả liệu cho hàm dùng từ khoá return, bổ sung truy cập public có ý nghĩa hàm sử dụng toàn ứng dụng, từ khoá static phương thức tĩnh lên sử dụng mà không cần phải khai báo khởi tạo đối tượng Ví dụ thủ tục public static void HelloProcedure(string _bien) { System.Web.HttpContext.Current.Response.Write(_bie n); } Sử dụng lớp HellWorld trang aspx Trang UseHelloworld.aspx Sử dụng Lớp Hello World thư mục App_Code Trang UseHelloworld.aspx.cs using System; public partial class UseHelloworld : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { lblHello.Text = HelloWorld.sayMessage(); } } Vì phương thức sayMessage lớp HelloWorld phương thức tĩnh lên ta không cần khởi tạo lớp để sử dựng Cơ lớp C# 5.1 Khai báo Field thuộc tính Ví dụ Field public class HelloWorld { public string _Message; public string SayMessage() { return _Message; } } Trong đoạn mã bạn thấy Field _Message khai báo kiểu string bổ ngữ truy cập public, _Message trả giá trị phương thức SayMessage() Ví dụ thuộc tính public class HelloWorld { public string _Message; public string Message { get { return _Message; } set { _Message = value; } } } Một thuộc tính Message khai báo gồm phương thức get trả giá trị cho Message phương thức set thiết lập giá trị cho Message Thuộc tính Message phương thức vừa đọc vừa ghi bạn xây dựng thuộc tính đọc bạn cung cấp phương thức get hay thuộc tính ghi bạn cung cấp cho thuộc tính phương thức set 5.2 Phương thức khởi dựng lớp Phương thức khởi dựng phương thức đặc biệt lớp, gọi tự động khởi tạo lớp đó.bạn sử dụng phương thức khởi dụng để khởi tạo private fields chứa đựng lớp Phương thức khởi dựng lớp phải trùng với tên lớp, phương thức lớp có đối số đối số, có nhiều phương thức khởi dựng cho lớp đối số phương thức phải khác Ví dụ: Xây dựng lớp: Construction.cs using System; public class Construction { int _giatri1; int _giatri2; public Construction() { _giatri1 = 0; _giatri2 = 0; } public Construction(int _giatri1, int _giatri2) { this._giatri1 = _giatri1; this._giatri2 = _giatri2; } public int Sum() { return _giatri1 + _giatri2; } } Trong lớp xây dựng hai phương thức khởi dựng phương thức đối số phương thức có đối số, hàm tính tổng giá trị sử dụng trang trang asp.net sau: Trang UseConstruction.aspx IV Điều khiển hiển thị ảnh ASPNET bao gồm điều khiển hiển thị ảnh điều khiển Image ImageMap Điều khiển Image Điều khiển dùng để hiển thị ảnh giống với thẻ HTML Các thuộc tính quan tâm Thuộc tính AlternateText: Nội dung thay lỗi đường dẫn ảnh DescriptionUrl: Cho phép bạn cung cấp đường dẫn đến trang miêu tả chi tiết nội dung ảnh ImageAlign: Cho phép chỉnh ảnh lên quan tới thành phần HTML khác trang giá trị sau:AbsBottom, AbsMiddle, Baseline, Bottom, Left, Middle, NotSet, Right, TextTop, and Top ImageUrl: Đường dẫn ảnh điều khiển Ví dụ void Page_Load(object sender, EventArgs e) { Random rnd = new Random(); switch (rnd.Next(3)) { case 0: Image1.ImageUrl = "Images/images1.jpg"; Image1.AlternateText = "Picture 1"; break; case 1: Image1.ImageUrl = "Images/images2.jpg"; Image1.AlternateText = "Picture 2"; break; case 2: Image1.ImageUrl = "Images/images3.jpg"; Image1.AlternateText = "Picture 3"; break; } } iTechPro Điều khiển ImageMap Cho phép bạn tạo đồ ảnh ảnh hiển thị trang web mà người dùng phía Client chọn vào vùng ảnh để thực công việc Ví dụ void ImageMap1_Click(object sender, ImageMapEventArgs e) { switch (e.PostBackValue) { case "top": lblResult.Text = "Day la phan dau"; break; case "middle": lblResult.Text = "day la phan giua"; break; case "under": lblResult.Text = "day la phan cuoi"; break; } } iTechPro Các thuộc tính ImageMap giống với Image thêm vào hai thuộc tính là: - HotSpots: cho phép bạn điền tập hợp thông tin HotSpots chứa đựng điều khiển ImageMap - HotSpotMode:Cho phép bạn định Enables you to specifythe behavior of the image map when you click a region Possible values are Inactive, Navigate, NotSet, and PostBack V Điều khiển Panel Khi bạn cần đưa điều khiển trang vào nhóm để giải thích nghĩa cho nhóm để ần nhóm điều nhấn kiện trang bạn, bạn dùng điều khiển panel Một số thuộc tính điều khiển panel mà bạn cần lưu ý là: - DefaultButton: Cho phép bạn định nghĩa button mặc định panel mà button mặc định thực bạn nhấn phím Enter - Direction: Cho phép bạn gán thiết đặt hướng hiển thị nội dung đưa panel, giá trị:NotSet, LeftToRight, and RightToLeft - GroupingText: Cho phép bạn trình bày Panel Fieldset với giải riêng biệt - HorizontalAlign: Cho phép bạn hướng ngang thể nội dung panel có thẻ giá trị: Center, Justify, Left, NotSet, and Right - ScrollBars: Cho phép bạn hiển thị scrollbars bạn cố định chiều cao chiều rộng panel nội dung panel vượt độ rộng độ cao đó, giá trị: Auto, Both, Horizontal, None, and Vertical Ví dụ void Page_Load(object sender, EventArgs e) { for (int i = 1; i < 100; i++) { buletnghenghiep.Items.Add("Nghề "+i.ToString()); } } void hcubiuSothich(object sender, EventArgs e) { if (chkhtsothich.Checked == true) panelsothich.Visible = true; else panelsothich.Visible = false; } void hcubiuNghenghiep(object sender, EventArgs e) { if (chkhtnghenghiep.Checked == true) panelnghenghiep.Visible = true; else panelnghenghiep.Visible = false; } iTechPro VI Điều khiển HyperLink Điều khiển HyperLink cho phép tạo link tới trang web khác, không giống với LinkButton, HyperLink không đệ trình liệu lên server Nguồn wWw.itechpro.com.vn Chương Sử dụng điều khiển Validation Ở Chương trước học điều khiển chuẩn NetFrameWork3.5, dùng điều khiển để thao tác với Webserver phía Server-Side, để cập nhật liệu Nhưng có tình đặt điều khiển có đảm bảo cho chũng ta cập nhật liệu không xảy lôi? Ví dụ Form ta có trường nhập số điện thoại người sử dụng lại nhập vào dòng text gây lỗi nhập liệu Với phiên trước ASP.Net asp để khắc phục lỗi phải thực viết mã JavaScript để bắt lỗi việc đó, với ASPNET cung cấp cho ta điều khiển kiểm tra tính hợp lệ điều khiển nhập liệu Form Trong chương bạn học điều khiển học cách mở rộng điều khiển theo ý muốn ví dụ bạn tạo AjaxValidator để kiểm tra nhập liệu phía Client điều khiển Validation netframework3.5: · RequiredFieldValidator: Yêu cầu người sử dụng nhập giá trị vào trường định Form · RangeValidator: Kiểm tra giá trị nhập vào có nằm khoảng nhỏ lớn định trước hay không · CompareValidator: So sánh giá trị nhập có giá trị trường khác Form hay không · RegularExpressionValidator: So sánh giá trị nhập với biểu thức quy tắc hòm thư, điện thoại… · CustomValidator: Bạn tuỳ chỉnh đối tượng Validator theo ý mính · ValidationSummary: cho phép hiển thị tổng hợp tất lỗi trang I RequiredFieldValidator ý nghĩa: với điều khiển bạn yêu cầu người dùng phải nhập giá trị vào trường định Form Cách sử dụng: Đưa điều khiển RequiredFieldValidator từ ToolBox(trong phần Validation) vào Form thêm vào cho thuộc tính ControlToValidate: đến điều khiển kiểm tra Text(hoặc ErrorMessage): Thông báo lỗi kiểm tra Ví dụ Code 1: Trang RequiredValidator.aspx void btnAccept_Click(object sender, EventArgs e) { if (Page.IsValid) { this.lblResult.Text = txtHoten.Text; this.txtHoten.Text = ""; } } Validator II Điều khiển CompareValidator Ý nghĩa Bạn sử dụng CompareValidator để Kiểm tra giá trị nhập vào có nằm khoảng nhỏ lớn định trước hay không Cách sử dụng Bạn đưa điều khiển CompareValidator từ hộp ToolBox vào Form thiết lập cho số thuộc tính sau: · ControlToValidate: đến điều khiển cần kiểm tra · Text(ErrorMessage): Nội dung thông báo lỗi · MinimumValue: Giá trị nhỏ thiết lập cho đối tượng · MaximumValue: Giá trị lớn thiết lập cho đối tượng · Type: Kiểu so sánh, Có thể giá trị Interger,String, Double, Date Currency Ví dụ Code 2: Trang CompareValidator.aspx void btnAccept_Click(object sender,EventArgs e) { if (Page.IsValid) { this.lblThongbao.Text = txtDiem.Text; } } RangeValidator Vào điểm Trong ví dụ ta dùng hai đối tượng Validator kiểm tra giá trị nhập điều khiển txtDiem, điều khiển RequiredFieldDiem dùng đề kiểm tra yêu cầu nhập giá trị cho txtDiem điều khiển RangeDiem yêu cầu nhập giá trị txtDiem phải nằm khoảng từ đến 10 III Điều khiển RegularExpressionValidator ý nghĩa Điều khiển RegularExpressionValidator cho phép bạn so sánh giá trị nhập trường Form với quy tắc định trước bạn sử dụng biểu thức quy tắc để đưa chuỗi mẫu email addresses, Social Security numbers, phone numbers, dates, currency, amounts, and product codes Cách sử dụng Bạn đưa điều khiển RegularExpressValidator vào Form thiết lập cho số thuộc tính sau: · ID: tên điều khiển · ControlToValidate: trỏ đến điều khiển cần kiểm tra · Text(ErrorMessage): nội dung thông báo có lỗi · ValidatorExpression: quy định mẫu nhập liệu hòm thư, số điện thoại… Ví dụ Sau ví dụ việc yêu cầu người sử dụng phải cập nhật địa hòm thư Code 3: trang RegularExpressionValidator.aspx void btnAccept_Click(object sender, EventArgs e) { if (Page.IsValid) { lblThongbao.Text = txtEmail.Text; } } RegularExpressionValidator Email: IV Điều khiển CompareValidator ý nghĩa Điều khiển CompareValidator có kiểu khác để kiểm tra giá trị nhập: · Sử dụng để kiểm tra kiểu liệu · Sử dụng để so sánh giá trị nhập với giá trị cố định · Sử dụng để so sánh gia trị nhập với giá trị điều khiển khác Form Cách sử dụng Bạn đưa điều khiển CompareValidator vào Form thiết lập cho số thuộc tính sau: · ControlToValidate: điểu khiển Form kiểm tra · ControlToCompare: Điểu khiển dùng để so sánh giá trị · Text(ErrorMessage): hiển thị nội dung thông báo lỗi kho có lỗi · Type: Kiểu giá trị so sánh · Operator: Toán tử so sánh Có thể giá trị: DataTypeCheck, Equal, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual, NotEqual Ví dụ Ví dụ sau yêu cầu nhập vào ngày sinh, người sử dụng nhập vào không liệu dạng ngày có lỗi thông báo Code 4: Trang CompareValidator.aspx CompareValidator Ví dụ sau hướng đưa trường hợp với Form tạo tài khoản trên Web yêu cầu người đăng ký phải nhập mật lần Code trang CompareValidator V Điều khiển CustomValidator ý nghĩa Nếu điều khiển Validator chưa đủ với bạn bạn muốn tạo Validator riêng theo ý mình, bạn dụng điều khiển CustomValidator, bạn kết hợp CustomValidator với hàm Cách sử dụng Ví dụ CustomValidator có thuộc tính hay sử dụng là: · ControlToValidator: điểu khiển Form kiểm tra · Text(ErrorMessage): hiển thị nội dung thông báo lỗi kho có lỗi · ClientValidationFunction: tên hàm client-side để thực kiểm tra client-side CustomValidator hỗ trợ kiện ServerValidate: Sự kiện đưa CustomValidator thực kiểm chứng Ví dụ sau sử dụng kiện ServerValidate để kiểm tra độ dài chuỗi nhập điều khiển TextBox, người nhập, nhập vào chuỗi có độ dài lớn 20 ký tự điều khiển CustomValidator đưa thông báo lỗi Ví dụ: Code trang CustomValidator.aspx void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs e) { if (e.Value.Length > 20) e.IsValid = false; else e.IsValid = true; } CustomValidator Ở ví dụ hàm “CustomValidator1_ServerValidate” Tham số thứ truyền tới kiện ServerValidator để xử lý Trong thực thể lớp ServerValidateEventArgs có hai thuộc tính * Value: Giá trị trường Form kiểm chứng * IsValid: Diễn tả việc kiểm chứng cho kết thành công sai Trong ví dụ đưa cách sử dụng hàm kiểm chứng Client-side kết hợp với CustomValidator nào, Trang kiểm tra độ dài chuỗi nhập vào bên TextBox, kiểm tra Server Client Code void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs e) { if (e.Value.Length > 20) e.IsValid = false; else e.IsValid = true; } CustomValidator function valComments_ClientValidate(source, args) { if (args.Value.length > 20) args.IsValid = false; else args.IsValid = true; } VI Điều khiển ValidationSummary ý nghĩa ValidationSummary cho phép bạn liệt kê tất các lỗi kiểm tra trang từ điều khiển validator vào vị trí Điều khiển đặc biệt tiện ích với Form có độ rộng lớn cách sử dụng Bạn đưa điều khiển ValidationSummary vào Form thiết lập cho số thuộc tính sau: · DisplayMode: Cho phép bạn rõ định dạng hiển thị lỗi, giá trị BulletList, List, SingleParagraph · HeaderText: Cho phép bạn hiển thị tiêu đề tóm tắt cho lỗi · ShowMessageBox: Cho thị popup thông báo · ShowSummary: Cho phép bạn ẩn ValidationSummary trang ví dụ Code Trang ValidationSummary.aspx ValidationSummary *(Yêu cầu) *(Yêu cầu) Code Chạy ví dụ ta không nhập liệu cho trường thông báo lỗi sau: Cũng với ví dụ trên điều khiển ValSummary ta thiết lập thuộc tính ShowMessageBox True ShowSummary với giá trị False kết xuất ví dụ thay hiển thị danh sách lỗi Form hiển thị popup thông báo lỗi trang Code ValidationSummary *(Yêu cầu) *(Yêu cầu) Kết xuất nó: VII Tạo điều khiển kiểm tra tính hợp lệ theo ý Trong phần bạn học tạo điều khiển tuỳ biến Chúng ta tạo điều khiển tạo điều khiển kiểm tra độ dài trường nhập liệu Form LengthValidator, Bạn tạo Control Kiểm tra tính hợp lệ cách dẫn xuât từ lớp BaseValidator Lớp BaseValidator lớp sở cho tất điều khiển Validation, bao gồm RequiredFieldValidator RegularExpressionValidator Lớp cở sở lớp lớp phải cài đặt mà yêu cầu bạn cài đặt phương thức đơn · EvaluateIsValid: Trả giá trị True trường kiểm tra tính hợp lệ Form hợp lệ · GetControlValidationValue: Cho phép bạn điền giá trị điều khiển kiểm tra tính hợp lệ Khi bạn tạo điều khiển kiểm tra tính hợp lệ tuỳ biến, bạn override phương thức EvaluateIsValid() phương thức bạn gọi GetControlValidationValue để lấy giá trị trường cần kiểm tra tính hợp lệ Tạo Điều khiển LengthValidator Trong phần bạn học cách tạo điều khiển đơn giản để kiểm tra độ dài trường nhập liệu Dưới mà mã nguồn lớp LengthValidator.cs Code 10 LenghtValidator.cs using System; using System.Web.UI; using System.Web.UI.WebControls; namespace myControls { public class LengthValidator: BaseValidator { int _maximumLength = 0; public int MaximumLength { get { return _maximumLength; } set { _maximumLength = value; } } protected override bool EvaluateIsValid() { String value = this.GetControlValidationValue(this.ControlToValid ate); if (value.Length > _maximumLength) return false; else return true; } } } Trong Lớp đoạn mã ta thấy LengthValidator kế thừa từ lớp BaseValidator, lớp ghi đề phương thức EvaluateIsValid Giá trị điều khiển kiểm chứng lấy với phương thức GetControlValidationValue Và độ dài giá trị so sánh với thuộc tính MaximumLength Đế sử dụng điều khiển LenghtValidator phải đăng ký điều khiển đầu trang với thẻ dẫn bạn muốn sử dụng LengthValidator cho nhiều trang bạn đăng ký điều khiển phần file Web configuration Ví dụ sử dụng LengthValidator Code 11 Use LenghtValidator Chỉ dẫn , Với tiền tố TagPrefix=”Validator” Chỉ đến Namespace=”MyControls” sủ dụng điều khiển giống với điều khiển Validator khác Nguồn wWw.itechpro.com.vn Đoạn mã - Code truy cập sở liệu // Get metadata from App.config file string dbProvider = ConfigurationManager.AppSettings["dbProvider"]; string connectionString = ConfigurationManager.ConnectionStrings["SqlConnStringPubs"] ConnectionString; // Create a factory provider DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(dbProvider); // Create a connection object DbConnection dbConnection = dbProviderFactory.CreateConnection(); Console.WriteLine("Connection object: {0}", dbConnection.GetType().FullName); dbConnection.ConnectionString = connectionString; dbConnection.Open(); Console.WriteLine("Connection string: {0}", dbConnection.ToString()); // Create a command object DbCommand cmd = dbProviderFactory.CreateCommand(); Console.WriteLine("Command object: {0}", cmd.GetType().FullName); cmd.Connection = dbConnection; cmd.CommandText = "Select * From Authors"; // Create a data reader DbDataReader dbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); Console.WriteLine("Data reader object: {0}", dbDataReader.GetType().FullName); Console.WriteLine("Command " + cmd.CommandText); while (dbDataReader.Read()) Console.WriteLine("Row data: {0}, {1}", dbDataReader["au_lname"], dbDataReader["au_fname"]); dbDataReader.Close(); Đoạn mã - File metadata ngoài- thể nội dung file cấu hình App.config [...]... DbProviderFactories.GetFactory(dbProvider); // Create a connection object DbConnection dbConnection = dbProviderFactory.CreateConnection(); Console.WriteLine("Connection object: {0}", dbConnection.GetType().FullName); dbConnection.ConnectionString = connectionString; dbConnection.Open(); Console.WriteLine("Connection string: {0}", dbConnection.ToString()); // Create a command object DbCommand cmd = dbProviderFactory.CreateCommand();... th c mà lớp kế thừa phải c i đặt nếu một lớp c i đặt một giao diện, thì lớp này sẽ chứa tất c c c thu c tính c ng như phương th c của giao diện này Ví dụ: using System; public interface IProduct { decimal Price { get; } void SaveProduct(); } public class MusicProduct : IProduct { public decimal Price { get { return 20.99m; } } public void SaveProduct() { //Save Music Product } } public class BookProduct... System.Object Ví dụ sau chúng ta sẽ đưa ra 2 lớp TelevisionProduct và ComputerProduct đư c kế thừa từ lớp BaseProduct Ví dụ: using System; public class BaseProduct { decimal _price; public decimal Price { get { return _price; } set { _price = value; } } } public class ComputerProduct : BaseProduct { string _processor; public string Processor { get { return _processor; } set { _processor = value; } } } public... hay không chọn c a CheckBox Enabled Cho phép ho c không cho phép TabIndex Gán thứ tự c a Checkbox khi nhấn nút Tab Text Nhãn c a Checkbox TextAlign Canh phải trái nhãn c a Checkbox (Left: bên trái / Right: bên phải) CheckBox hỗ trợ phương th c và sự kiện Focus Enables you to set the initial form focus to the check box CheckedChanged Raised on the server when the checkbox is checked or unchecked 3 Điều... OnClick phía Server OnClientClick sẽ th c hiện khi người dùng phía Client nhấn vào Button, trong mã Client trình bày một hàm confirm trong javascript với m c đính hỏi người dùng x c nhận vi c th c hiện nào đó “Bạn c ch c chắn?” nếu người dùng chọn OK thì Sự kiện thứ 2 OnClick sẽ đư c th c hiện c n nếu chọn Cancel thì sự kiện phía Server không đư c th c hiện 5 Th c hiện chuyển trang M c định khi bạn nhấn... TextChanged Xảy ra trên Server khi nội dung TextBox thay đổi để sự kiên này xảy ra bạn c n thiết đặt thu c tính AutoPostback là true 2 Sử dụng điều khiển CheckBox C c thu c tính AccessKey Cho phép bạn chỉ định phím để di chuyển tới control Checkbox AutoPostBack Cho phép gửi dữ liệu lên server khi nội dung c a Checkbox thay đổi (checked / unchecked) Checked Cho phép bạn gán ho c thiết đặt trạng thái chọn... giống với c c điều khiển Validator kh c Nguồn wWw.itechpro.com.vn Đoạn mã 1 - Code truy c p c sở dữ liệu // Get metadata from App.config file string dbProvider = ConfigurationManager.AppSettings["dbProvider"]; string connectionString = ConfigurationManager.ConnectionStrings["SqlConnStringPubs"] ConnectionString; // Create a factory provider DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(dbProvider);... System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; Và để sử dụng c c Namespaces trong C# bạn c n sử dụng từ khoá using Một Namespaces c thể chứa c c Namespaces con, và trong Namespace con nhất chứa c c lớp thành viên Ví dụ Bạn tạo ra hai lớp phép c ng và phép trừ để th c hiện c c phép toán tương ứng như sau: Lớp Phepcong.cs using System; namespace iTechPro.Tinhtoan { public class Phepcong {... tạo một lớp Calculator với 2 phương th c cộng và trừ nằm trên hai File kh c nhau File Calminus.cs using System; namespace iTechPro.Tinhtoan { public partial class Calculator { public static int Minus(int a, int b) { return a - b; } } } File Calsum.cs using System; namespace iTechPro.Tinhtoan { public partial class Calculator { public static int Sum(int a, int b) { return a + b; } } } Như c c bạn thấy... lớp ProductBase và OnSaleProduct đư c kế thừa từ lớp ProductBase nhưng nó sẽ overload một thu c tính từ lớp ProductBase Ví dụ: using System; public class ProductBase { decimal _price; public virtual decimal Price { get { return _price; } set { _price = value; } } } public class OnSaleProduct : ProductBase { public override decimal Price { get{ return base.Price / 2;} set{base.Price = value;} } } Trong ... public class BaseProduct { decimal _price; public decimal Price { get { return _price; } set { _price = value; } } } public class ComputerProduct : BaseProduct { string _processor; public string Processor... ConfigurationManager.ConnectionStrings["SqlConnStringPubs"] ConnectionString; // Create a factory provider DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(dbProvider); // Create a connection object DbConnection dbConnection = dbProviderFactory.CreateConnection();... //Save Music Product } } public class BookProduct : IProduct { public decimal Price { get { return 23.99m; } } public void SaveProduct() { //Save Book Product } } Nguồn wWw.itechpro.com.vn Chương

Ngày đăng: 04/12/2015, 20:34

Từ khóa liên quan

Mục lục

  • Giáo trình ASP.NET Tiếng việt Pro - Lập trình với C#

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

  • Đang cập nhật ...

Tài liệu liên quan