Giới thiệu chung về cấu trúc ASP.NET Framwork và cơ bản về C#

download Giới thiệu chung về cấu trúc ASP.NET Framwork và cơ bản về C#

of 220

Transcript of Giới thiệu chung về cấu trúc ASP.NET Framwork và cơ bản về C#

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    1/220

    Chng 1. Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    I. Gii thiu chung v ASPNetFramwork

    Trong gio trnh ny chng ta s hc ASP.NET trn IDE VisualStdio2005(Bn c ths dng Viusal Web Develop 2005 ).

    to mt Wesite mi bn khi ng VS. giao din ca n s hin ra nh sau:

    Hnh 1

    Trong Box Recent Project bn chn Web site dng Create

    Hp thoi New Website hin ra bn chn ASP.NET WebSite ri chn th mc bn Website v ngn ng kch bn bn vit Web v nhn OK

    1

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    2/220

    Hnh 2

    VS s to ra mt website vi tn ca Website l tn bn va t v mc nh s cmt trang Default.aspx nh hnh sau:

    Hnh 3

    1. ASP.NET v .NET FRAMEWORK

    2

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    3/220

    ASP.NET l mt phn ca .NET FrameWork xy dng trang asp.NET bn cnthm vo cc c tnh ca .netframework. NetFrameWork cha ng hai phnFrameWork Class Library v Commom Language Runtime.

    1.1 Hiu v Framework Class Library

    Framework cha ng hng nghn lp m bn c th s dng trong ng dng camnh. V d mt vi lp ca .Net Framework

    -Lp File: cho php bn to file, sa, xo hay kim tra s tn ti ca file trn acng

    -Lp Graphics: Cho php bn lm vic vi nhiu kiu ca nh, bn cng c th tora cc nh t cc phng thc trn lp ny.

    -Lp SmtpClient: Cho php bn gi th.

    Hiu v Namespaces: hn 13 nghn lp trong Netframework. y l mt con s rtln, Microsoft chia cc lp cng x l v mt vn g vo cc khng gian tnchung hay namespaces.

    Mt Namespace n gin l mt danh mc, v d tt c cc lp thao tc vi File vth mc chng ta a vo mt namespaces chung gi l System.IO, hay tt c cc lplm vic vi SqlServer c th a vo namespace System.Data.SqlClient.

    Cc namespaces chung nht trong 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 Hiu v Assembly:

    3

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    4/220

    Mt Assembly l mt file dll trn a cng ca bn, ni m lu tr cc lp ca .NET,v d tt c cc lp trong .ASP.NET Framework u nm trong Assembly System.web.dll.

    Trc khi s dng cc lp trong dll bn cn to mt tham chiu n file dll ny

    1.3 Hiu v Commom Language Runtime(CLR)

    Phn th 2 ca NetFramework l CLR chu trch nhim v thc thi m ng dng cabn.

    Khi bn vit ng dng bng ngn ng C#, VB.NET hay bng mt ngn ng bt ktrn nn NetFramwork m ca bn s c khng bao gi bin dch trc tip thnh mmy. Thay vo chng c bin dng sang ngn ng c t MSIL (Microsoftintermediate Language).

    MSIL nhn rt ging vi ngn ng hng i tng Assembly, nhng khng gingkiu ngn ng Assembly. MSIL l ngn ng bc thp v ph thuc vo Platform.

    Khi ng dng ca bn thc thi, m MSIL l just in time bin dch sang m mybi JITTER(just in time compiler)

    Nh vy khi bn vit cc lp trn .Net bng bt k ngn ng no khi bn bin dchsang Assembly bn u c th s dng Assembly cho cc ngn ng khc.

    1.4 Hiu v cc iu khin trn Asp.net

    Cc iu khin asp.net l phn quan trng nht trong ASP.NET Framework. mtControl ASP.NET l mt lp m thc thi trn server v a ra ni dung trn trnh duyt.ASP.NET c hn 70 control m bn c th s dng trong xy dng ng dng web ca bnv c bn n chia ra cc nhm control sau:

    Standard control: bao gm cc iu khin a ra cc thnh phn chun ca form

    nh: Label, Button, TextBox

    Validator Control: l cc control cho php bn kim tra tnh hp l ca cc controlcho php nhp gi tr trn form.

    Rich Control: l nhng iu khin nh FileUpload, Calendar

    Data Control l cc iu khin cho php thao tc vi d liu

    Navigation Control: l nhng iu khin gip bn d dng di chuyn gia cctrang trong website.

    Login control: L cc iu khin v bo mt ca ng dng cho php bn a racc form ng nhp, thay i mt khu

    HTML Control: cho php bn chuyn cc iu khin ca HTML thnh cc iukhin c th lm vic trn server.

    1.5 hiu v iu khin s kin trn server

    phn ln cc iu khin ca asp.net h tr 1 hoc nhiu s kin, v d iu khinASP.NET Button h tr s kin Click, khi ngi s dng nhn chut vo Button mt skin s c a ra v cng vic ny c x l trn server.

    V d: Trang UnderstandEvent.aspx

    4

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    5/220

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    6/220

    Giao thc http l giao thc nn mng ca WWW, l mt giao thc chun thct.mi ln bn request mt trang t website, mt d liu mi c a ra, ASP.NETFramework c th qun l c vt ra ngoi gii hn ca giao thc http, v d bn ind liu vo mt iu khin Label vi thuc tnh Text ca n, d liu ny s c lu trqua nhiu trang web v ch thay i khi n c gn li gi tr.

    V d sau s a mt mt trang asp.net trong gm 2 iu khin Button vLabel(Text ca n hin th s m), mi ln nhn vo Button th gi tr ca Label tng ln1.

    V d trang Understandstate.aspx:

    protectedvoid Button1_Click(object sender,EventArgs e)

    {

    Label1.Text = Convert.ToString(int.Parse(Label1.Text) + 1);

    }

    Under Stand State

    6

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    7/220

    Nu bn m View Source code ca trang Understandstate.aspx trn bn s thynh sau:

    y l 2 file hidden trong form n cha gi tr Text ca Label khi trang cpostback n s ghi nh text v s khi to li gi tr ca Label khi trang Load.

    1.7 Hiu v trang asp.net

    S dng Code-Behind

    Thay v s dng ngay trn trang asp.net. ngita a ra thm mt trang gi l Code-behind cha cc m lnh thc hin trn trangasp.net.

    V d nh phn u ca chng khi ta to ra mt website th mc nh s to ramt lp Default.aspx v n s km theo mt trang Default.aspx.cs

    Trang Default.aspx

    Default

    7

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    8/220

    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;

    publicpartialclass_Default : System.Web.UI.Page

    {

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    }

    }

    1.8 iu khin s kin ca trang asp.net

    Khi chy trang asp.net th vng i ca trang asp.net gm cc s kin

    1.PreInit

    2. Init

    3. InitComplete

    4. PreLoad

    5. Load

    6. LoadComplete

    8

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    9/220

    7. PreRender

    8. PreRenderComplete

    9. SaveStateComplete

    10. Unload

    S dng thuc tnh Page.IsPostBackVi s kin Load ca trang th khi ti trang ln th c mt s kin no c a

    ra, nu c ngha mi ln load li trang n li thc hin cng vic , cn nu ta a thmvo thuc tnh Page.IsPostBack th ta c th iu khin c s kin no c thc hinv s kin no khng khi trang c ti li.

    II C bn v lp trnh C# lp trnh trong trang ASP.NET

    1. Kiu d liu.

    C# a ra cc kiu d liu dng sn rt tin ch, ph hp vi mt ngn ng lp trnh hin

    i. Bng sau y s miu t mt s kiu d liu chnh trong C#

    Kiu C# Kiu .Net S Byte M t

    byte Byte 1 s nguyn khng du t 0 n 255

    char Char 2 Kiu k t Unicode

    bool Boolean 1 Gi tr true/falsesbyte Sbyte 1 S nguyn c du, t -128 n 127

    short Int16 2 S nguyn c du t -32768 n 32767

    ushort Int16 2 S nguyn khng du t 0 n 65.535

    int Int32 4 S nguyn c du 2.147.483.647 n 2.147.483.647

    uint Int32 4 S nguyn khng du 0 n 4.294.967.295

    float Single 4 kiu du chm ng, gi tr xp x t 3,4E-38 n

    3,4E+38, vi 7 ch s c ngha.

    Double Double 8 Kiu du chm ng c chnh xc gp i, gi tr xpx t 1,7E-308 n 1,7E+308, vi 15,16 ch s c

    ngha

    Decimal Decimal 8 C chnh xc n 28 con s v gi tr thp phn,

    c dng trong tnh ton ti chnh, kiu ny i hi

    phi c hu t m hoc M km theo sau.

    2. khai bo bin

    C php: Kiu Tn_bin;

    9

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    10/220

    V d:

    string giatri_chuoi;

    int giatri_nguyen;

    ch bin c th bao gm cc ch ci, ch s(khng c ng u) v k t _

    (ni)

    bin trong C# phn bit ch hoa v ch thng.

    3. S dng cc trnh by

    a. trnh by if if else

    Khi bn cn kim tra mt iu kin no trc khi thc hin cng vic, hoc kim

    tra iu kin nu ng th lm vic cn khc th khng lm bn c th dng trnh by if if else

    c php:

    if(iu_kin)

    {

    //thc hin cng vic

    }

    if(iu_kin)

    {

    // thc hin cng vic 1

    }

    else

    {

    //thc hin cng vic 2

    }

    Lu bn c th dng nhiu cp if else lng nhau:

    V d:

    Vd1

    10

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    11/220

    if (conn.State != ConnectionState.Open)

    conn.Open();

    Vd2

    if (1 > 2)

    MessageBox.Show("1>2");

    else

    MessageBox.Show("2>1");

    b, S dng trnh by switch case

    Khi cng vic c nhiu la chn v tu vo tng trng hp bn a ra cngvic ph hp vi iu kin a vo bn c th dng trnh by 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 dng trnh by for

    V d

    string giatri;

    for (int i = 0; i < 10; i++)

    giatri += i.ToString();

    11

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    12/220

    MessageBox.Show(giatri);

    Khi lm vic vi mng hay trong trng hp thc hin mt cng vic trong khongno chng ta c th dng trnh by for.

    d, S dng trnh by while

    thc hin cng vic trong khi iu kin ng

    V d

    int i = 0;

    while (i < 5)

    {

    Console.WriteLine(i.ToString());

    i++;

    }

    e, S dng trnh by do while

    ngc li vi while do while lm vic cho n khi iu kin ng th thot.

    V d

    int i = 0;

    do

    {

    MessageBox.Show(i.ToString());

    i++;

    } while (i < 3);

    f, S dng trnh by break ( thot khi vng lp)

    V d

    int i = 0;

    do

    {

    12

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    13/220

    MessageBox.Show(i.ToString());

    i++;

    if (i == 1)

    break;

    } while (i < 3);

    g, S dng trnh by continue.

    V d

    int j = 0;

    for ( int i = 0; i < 5; i++ )

    {

    j++;

    if ( j > 2 )

    {

    MessageBox.Show(j.ToString());

    continue;

    }

    }

    h, S dng trnh by return(c s dng trong cc hm tr v gi tr c th

    cho hm)

    V d

    publicint sum(int a, int b)

    {

    return a + b;

    }

    k, S dng trnh by goto.

    13

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    14/220

    V d

    int i = 0;

    int j = 0;

    while (i < 5)

    {

    i++;

    j++;

    if (j == 2)

    goto jumpeddoutofloop;

    }

    jumpeddoutofloop:

    Console.WriteLine("I jumped out");

    4. Trang asp.net

    Trang asp.net c ui m rng l .aspx v km theo mt lp phc v n ngsau(Code behind).

    vit code C# trong trang aspnet ta c th khai bo v s dng trc tip trongtrang asp.net, trong file code behind, hoc t mt thnh phn th vin v ta gi vo.

    4.1 Vit code C# trong file .aspx:

    v c bn bn dng cc cc th sau

    - bn c th khai bo bin hoc vit cc hm, lp trong th ny,

    - vi th ny bn dng gi gi tr ca bin hay ca 1 hm no ,

    - ly gi tr dng trang cc i tng rng buc d liu.

    y l mt v d n gin

    Trang basic.aspx

    14

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    15/220

    Basic

    Bin abc ca bn va khai bo c gi tr

    4.2 Vit code trong trang code behind

    V trang aspnet ca chng ta k tha t trang aspx.cs ln trong trang .aspx chngta mun gi d liu t bin hay hm trong file .aspx.cs chng ta phi khai bo vi b ngtruy cp protected hoc public.

    V d sau:

    Trang codebehind.aspx

    15

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    16/220

    Untitled Page

    Gn gi tr:

    Ly gi tr t code behind

    Trang codebehind.aspx.cs

    using System;

    publicpartialclasscodebehind : System.Web.UI.Page

    {

    protectedstring _hello;

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    _hello = "Hello World";

    lblhello.Text = _hello;

    16

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    17/220

    }

    }

    Trong v d trn c s dng mt iu khin asp.net l Label cc bn s c hctrong chng sau, chng ny bn hiu n l mt iu khin hin th d liu.

    Bn thy trong phn code behind c khai bo mt bin _hello kiu string v b ngtruy cp l protected trong s kin Page_Load(khi trang c ti ln) chng ta gn _hello= "Hello World"; v sau gn gi tr cho Label bng gi tr ca _hello. Cn trongtrang .aspx chng ta c s dng th ly gi tr ca _hello in ra mnhnh.

    4.3 to mt lp th vin

    to mt lp th vin phc v cho trang asp.net bn c th to mt thnh phnth vin ng DLL ri nhp tham chiu n n s dng(chng ta s hc n trong phnasp.net nng cao). Trong ng dng web ASP.NET Framework c mt ASP.NET FOLDER lApp_Code cho php chng ta vit cc lp th vin y v c th s dng trong cctrang ca ng dng web.

    to th mc App_code bn lm theo cc bc sau y:

    bc 1: nhn chut phi vo Solution v chn theo ng dn ca nh di y.

    17

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    18/220

    Trong ng dng web ca chng ta s thm vo mt th mc App_code

    ti y chng ta c th vit vo cc lp th vin.

    to mt lp th vin trong th mc ny chng ta nhn chut phi vo th mcApp_code ri chn Add New Item

    Form Add New Item hin ra

    18

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    19/220

    Bn chn Class v trong hp TextBox Nam bn nhp tn lp mun to v nhn ntAdd.

    a, nh ngha lp:

    Khai bo:

    [Thuc tnh] [b sung truy cp] Class [Tn lp] : [Lp c s]

    {

    //cc bin, phng thc hay thuc tnh ca lp

    }

    V d: Lp HelloWorld.cs

    classHelloWorld

    {

    publicstring SayMessage()

    {

    return"Hello World";

    }

    }

    Trong v d trn phng thc SayMessage s v chui Hello World.

    b, S dng nh ngha truy cp

    Public: mt lp, mt phng thc, hay thuc tnh khi s dng t kho ny s khngb hn ch truy cp

    Protected: Lp, Phng thc, Thuc tnh ch c s dng lp ny hoc lp cdn xut.

    Internal: Mt lp, phng thc, thuc tnh Internal ch c truy cp trong mtthnh phn Assembly(file DLL).

    Private: Mt lp Private, phng thc hoc thuc tnh ch c th truy cp ti chnhlp .

    19

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    20/220

    c, Hm v th tc

    Bn c th hiu n gin hm phi c gi tr tr v cn th tc nh mt on mch thc hin khi c chng ta gi. th tc cn c gi l hm khng kiu, hm v thtc trong C# gi chung l phng thc.

    V d hm:

    publicstaticint Sum(int _a, int _b)

    {

    return _a + _b;

    }

    Trn l mt hm dng tnh tng ca hai s, nh bn thy tr v d liu cho hmchng ta dng t kho return, b sung truy cp public c ngha hm c s dngtrong ton ng dng, t kho static y l mt phng thc tnh ln c th s dng mkhng cn phi khai bo khi to i tng

    V d v th tc

    publicstaticvoid HelloProcedure(string _bien)

    {

    System.Web.HttpContext.Current.Response.Write(_bien);

    }

    S dng lp HellWorld trong trang aspx ca chng ta

    Trang UseHelloworld.aspx

    S dng Lp Hello World trong th mc App_Code

    20

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    21/220

    Trang UseHelloworld.aspx.cs

    using System;

    publicpartialclassUseHelloworld : System.Web.UI.Page

    {

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    lblHello.Text = HelloWorld.sayMessage();

    }

    }

    V phng thc sayMessage trong lp HelloWorld l mt phng thc tnh ln takhng cn khi to lp s dng.

    5. C bn v lp trong C#

    5.1 Khai bo Field v thuc tnh

    V d v Field

    publicclassHelloWorld

    {

    publicstring _Message;

    publicstring SayMessage()

    {

    return _Message;

    }

    }

    Trong on m trn bn thy Field _Message c khai bo kiu string v b ngtruy cp l public, v _Message c tr v gi tr bi phng thc SayMessage().

    V d v thuc tnh

    21

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    22/220

    publicclassHelloWorld

    {

    publicstring _Message;

    publicstring Message

    { get { return _Message; }

    set { _Message = value; }

    }

    }

    Mt thuc tnh Message c khai bo trn gm 2 phng thc get tr v gi trcho Message v phng thc set thit lp gi tr cho Message. Thuc tnh Message trnl phng thc va c va ghi. nu bn xy dng thuc tnh ch c th bn ch cungcp phng thc get hay thuc tnh ch ghi bn cung cp cho thuc tnh phng thcset.

    5.2 Phng thc khi dng ca lp

    Phng thc khi dng l phng thc c bit ca lp, n c gi t ng khi

    khi to mi lp .bn s dng phng thc khi dng khi to cc private fieldscha ng trong lp. Phng thc khi dng ca lp phi trng vi tn ca lp, 1 phngthc ca lp c th c i s hoc khng c i s, v c th c nhiu phng thc khidng cho lp nhng cc i s trong cc phng thc phi khc nhau.

    V d:

    Xy dng lp: Construction.cs

    using System;

    publicclassConstruction

    {

    int _giatri1;

    int _giatri2;

    public Construction()

    {

    _giatri1 = 0;

    _giatri2 = 0;

    22

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    23/220

    }

    public Construction(int _giatri1, int _giatri2)

    {

    this._giatri1 = _giatri1;

    this._giatri2 = _giatri2;

    }

    publicint Sum()

    {

    return _giatri1 + _giatri2;

    }

    }

    Trong lp ny chng ta xy dng hai phng thc khi dng mt phng thckhng c i s v mt phng thc c i s, v mt hm tnh tng ca 2 gi tr nc s dng trang trang asp.net nh sau:

    Trang UseConstruction.aspx

    S dng phng thc khi dng ca lp

    23

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    24/220

    Trang UseConstruction.aspx.cs

    using System;

    publicpartialclassUseConstruction : System.Web.UI.Page

    {

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    Construction construc = newConstruction(5, 6);

    lblhello.Text = "Gi tr l: " + construc.Sum().ToString();

    }

    }

    5.3 Overloading phng thc

    Khi mt phng thc c overloaded c ngha l hai phng thc c tn trngnhau nhng cc i s ca n phi khc nhau. Khi trong lp ca bn c cc phng thcoverload th bn gi hm VS s xut hin nh sau bn c th d dng chn cphng thc mnh cn gi.

    V d:

    Bn to mt lp

    Lp UseOverload.cs

    using System;

    publicclassUseOverload

    24

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    25/220

    {

    publicstaticint Sum(int a, int b)

    {

    return a + b;

    }

    publicstaticint Sum(int a, int b, int c)

    {

    return a + b + c;

    }

    publicstaticint Sum(int a, int b, int c, int d)

    {

    return a + b + c + d;

    }

    }

    Trong lp ny gm 3 hm tnh tng ln lt c a vo 2,3,4 i sS dng lp ny trong trang ASP.NET

    Trang Overloading.aspx

    Untitled Page

    25

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    26/220

    Chng ho phng thc tnh tng

    Tng 2 s:

    Tng 3 s:

    Tng 4 s:

    Trang Overloading.aspx.cs

    using System;

    publicpartialclassOverloading : System.Web.UI.Page

    {

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    lbl2so.Text = UseOverload.Sum(5, 5).ToString();

    lbl3so.Text = UseOverload.Sum(5, 5, 5).ToString();

    lbl4so.Text = UseOverload.Sum(5, 5, 5, 5).ToString();

    }

    }

    Trong lp ny bn gi ln lt cc phng thc tnh tng vi 2,3,4 i s truyngi tr vo cc Label tng ng cng tn.

    Kt xut ca chng trnh:

    26

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    27/220

    5.4 Khai bo khng gian tn (Namespaces)

    Nu bn tng lp trnh java chc hn bn quen vi khi nim packed m bn ng gi cc lp m bn xy dng c c tnh chung(miu t hay x l vn g ).Trong .Net cng vy t kho Namespaces cng c nhim v nh packed trong java.

    .Net cung cp cho chng ta cc Namespaces nh:

    using System.Configuration;

    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;

    V s dng cc Namespaces trong C# bn cn s dng t kho using. MtNamespaces c th cha cc Namespaces con, v trong Namespace con nht cha cclp thnh vin

    V d

    Bn to ra hai lp php cng v php tr thc hin cc php ton tng ngnh sau:

    Lp Phepcong.cs

    using System;

    namespace Vidu.Tinhtoan

    {

    publicclassPhepcong

    {

    publicstaticint Sum(int a, int b)

    27

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    28/220

    {

    return a + b;

    }

    }

    }

    V lp Pheptru.cs

    using System;

    namespace Vidu.Tinhtoan

    {

    publicclassPheptru

    {

    publicstaticint Minus(int a, int b)

    {

    return a - b;

    }

    }

    }

    Nh bn thy hai lp ny nm trong Namespaces Vidu.Tinhtoan, th Vidu lNamespaces ln nht, cn Namespaces Tinhtoan l con ca Vidu v trong tnh ton chacc lp Phepcong v Pheptru.

    S dng Namespaces ny trong trang asp.net

    Trang Namespaces.aspx

    28

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    29/220

    Untitled Page

    Khai bo v s dng Namespaces

    Lp php cng:


    Lp php tr:

    Lp Namespaces.aspx.cs

    using System;

    using Vidu.Tinhtoan;

    publicpartialclassNamespaces : System.Web.UI.Page

    {

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    lblcong.Text = Phepcong.Sum(5, 5).ToString();

    lbltru.Text = Pheptru.Minus(5, 5).ToString();

    }

    }

    Nh v d trn bn thy chng ta s dng namespace Vidu.Tinhtoan ging vi ccNamespace khc m Microsoft cung cp cho chng ta.

    Kt xut ca chng trnh

    29

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    30/220

    5.5 Lp Partial

    .Net cho php chng ta to ra mt lp trong nhiu file khc nhau mi File cung cphay x l mt cng vic g trn lp .

    V d sau y chng ta s to mt lp Calculator vi 2 phng thc cng v trnm trn hai File khc nhau.

    File Calminus.cs

    using System;

    namespace Vidu.Tinhtoan

    {

    publicpartialclassCalculator

    {

    publicstaticint Minus(int a, int b)

    {

    return a - b;

    }

    }

    }

    File Calsum.cs

    using System;

    namespace Vidu.Tinhtoan

    {

    publicpartialclassCalculator

    {

    publicstaticint Sum(int a, int b)

    30

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    31/220

    {

    return a + b;

    }

    }

    }

    Nh cc bn thy hai file Calsum v Calminus cha ng cng mt tn lpCalculator v trong mi File cha ng mt phng thc ring l thnh phn ca lp .

    S dng lp ny hon ton ging vi vic s dng mt lp khc.

    File UsePartial.aspx

    S dng lp Partial

    Lp Partial

    Kt qu cng:


    Kt qu tr:

    31

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    32/220

    V File UsePartial.aspx.cs

    using System;

    using Vidu.Tinhtoan;

    publicpartialclassUsePartial : System.Web.UI.Page

    {

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    lblcong.Text = Calculator.Sum(5, 5).ToString();

    lbltru.Text = Calculator.Minus(5, 5).ToString();

    }

    }

    5.6 K tha v tru tng ho mt lp

    Khi mt lp c k tha t mt lp th 2 th n c tha hng tt c cc thuctnh v phng thc khng private t lp th nht.

    K tha c s dng thng sut trong .NetFrameWork, v d trong tt c cctrang ASP.NET u c k tha t Lp System.Web.UI.Page v tt c cc lp trong .Netu c dn xut t lp c s System.Object.

    V d sau chng ta s a ra 2 lp TelevisionProduct v ComputerProduct c ktha t lp BaseProduct.

    V d:

    using System;

    publicclassBaseProduct

    {

    decimal _price;

    publicdecimal Price

    {

    get { return _price; }

    set { _price = value; }

    }

    32

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    33/220

    }

    publicclassComputerProduct : BaseProduct

    {

    string _processor;

    publicstring Processor

    {

    get { return _processor; }

    set { _processor = value; }

    }

    }

    publicclassTelevisionProduct : BaseProduct

    {

    bool _isDHTV;

    publicbool isDHTV

    {

    get { return _isDHTV; }

    set { _isDHTV = value; }

    }

    }

    Trong v d trn bn thy hai lp ComputerProduct v TelevisionProduct c ktha t lp BaseProduct, trong lp BaseProduct c thuc tnh Price ln hai lp k tha sc k tha thuc tnh ny.

    Khi k tha t mt lp khc, bn c th overload cc thuc tnh v phng thctrong lp ny. Overloading mt thuc tnh hay phng thc l mt tin ch khi bn munthay i cc ng x ca phng thc hay thuc tnh trong lp ny.

    Overload mt phng thc hay thuc tnh t lp c s, th thuc tnh hayphng thc ny phi c nh du vi t kho vitual hay abstract ca C# hay trongVB.NET l Overridable hoc MustOverride.

    V d, chng ta s a ra hai lp ProductBase v OnSaleProduct c k tha t lpProductBase nhng n s overload mt thuc tnh t lp ProductBase.

    V d:

    33

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    34/220

    using System;

    publicclassProductBase

    {

    decimal _price;

    publicvirtualdecimal Price

    {

    get { return _price; }

    set { _price = value; }

    }

    }

    publicclassOnSaleProduct : ProductBase

    {

    publicoverridedecimal Price

    {

    get{ returnbase.Price / 2;}

    set{base.Price = value;}

    }

    }

    Trong v d trn Lp OnSaleProduct c k tha t lp ProductBase v Overridethuc tnh Price, lp ny mun ch ra gi bng mt na lp c s. ch vi VB.NET

    th t kho base l MyBase.

    Bn c th dng t kho abstract khi khai bo mt lp nh nh du lp nyyu cu k tha. Bn khng th to i tng mt lp tru tng, s dng mt lptru tng bn phi dn xut mt lp mi t lp tru tng v to i tng trong lpdn xut.

    V d:

    publicabstractclassBaseEmployee

    {

    publicabstractdecimal Salary

    {

    34

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    35/220

    get;

    }

    publicstring Company

    {

    get { return"Hoa Sen"; }

    }

    }

    publicclassSaleEmployee:BaseEmployee

    {

    publicoverridedecimal Salary

    {

    get { return 66.666; }

    }

    }

    Trong v d trn bn thy Lp SaleEmployee c k tha t lp BaseEmployee vOverload thuc tnh Salary.

    5.7 Khai bo Interface:

    Mt giao din m mt danh sch cc thuc tnh hay phng thc m lp k thaphi ci t. nu mt lp ci t mt giao din, th lp ny s cha tt c cc thuc tnhcng nh phng thc ca giao din ny.

    V d:

    using System;

    publicinterfaceIProduct

    {

    decimal Price

    {

    get;

    }

    35

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    36/220

    void SaveProduct();

    }

    publicclassMusicProduct : IProduct

    {

    publicdecimal Price

    {

    get { return 20.99m; }

    }

    publicvoid SaveProduct()

    {

    //Save Music Product

    }

    }

    publicclassBookProduct : IProduct

    {

    publicdecimal Price

    {

    get { return 23.99m; }

    }

    publicvoid SaveProduct()

    {

    //Save Book Product

    }

    }

    Chng 2. S dng cc iu khin Standard

    36

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    37/220

    Trong chng ny cc bn s hc cc iu khin c bn ca ASP.NET Framework,y l nhng iu khin m bn thng xuyn s dng trong ng dng web ca mnh.

    I. iu khin hin th thng tin

    1. Label

    Mt s thuc tnh

    Tn thuc tinh nh hng

    BackColor Cho php thay i mu nn ca Label

    BorderColor Cho php thit lp ng vin ca Label

    BorderStyle Hin th ng vin ca Label theo cc dng Notset, None,

    Dotted, Dashed, Solid, Double, Groove, Ridge, Insert v

    OutSet.

    cssClass Cho php a vo mt lp css

    Font Thit lp thuc tnh ca Font

    ForeColor Thit t mu ch ni dung ca Label

    Style Cho php gn cc thuc tnh cho Label

    ToolTip Hin th ni dung khi di chut vo iu khin Label

    ID Tn ca iu khin

    Tuy iu khin Label cha ng rt nhiu thuc tnh kt xut hin th nhng vikinh nghim ca mnh trong qu trnh thit k Web ti khuyn bn ln s dng thuc tnhcssClass s dng mt lp css.

    V d:

    Gn thuc tnh trc tip

    S dng cssClass

    Click phi vo tn ng dng trn ca s Solution Explorer -> Add -> New Item -> Style Sheet

    Copy on m sau:

    .label

    {background-color:ActiveBorder;border-color:ActiveCaption; font-size:"12pt"; color:Blue; }

    37

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    38/220

    Thm vo di

    @import url('Stylesheet1.css');

    Kt qu

    2, iu khin Literal

    Ging vi iu khin Label bn c th dng Literal trnh by Text hoc ni dungHtml. Literal h tr mt thuc tnh m Label khng h tr l: thuc tnh Mode gm 3gi tr l: Pass through, Endcode, transform.

    V d

    Hin th:

    II iu khin cho php ngi dng nhp liu

    1, iu khin TextBox

    38

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    39/220

    Bng cc thuc tnh:

    Thuc tnh

    Textmode Kiu hin th ca Textbox gm 3 gi tr: SingleLine- hin

    th 1 trng nhp liu trn 1 dng, MultiLine- hin th 1

    trng nhp liu nhiu dng, Password- hin th 1 trng

    nhp m Text s c thay th bng cc k t c bit

    AccessKey Cho pheps bn ch nh phm di chuyn ti control

    TextBox

    AutoCompleteType Cho php bn kt hp vi mt lp autoComplete vi iu

    khin TextBox.

    AutoPostBack Cho php gi d liu ln server khi ni dung ca TextBox

    thay i.

    Columms Cho php ch nh s ct c hin th trong TextBox

    Enabled Cho php hay khng cho php nhp liu trn TextBox

    MaxLength Cho php quy inh di ca d liu m mt ngi s

    dng c th nhp trn TextBox

    ReadOnly Cho php ch a d liu ra TextBox ch khng nhp d

    liu vo.

    Rows Cho php ch nh s dng hin th trong TextBox

    TabIndex Cho php ch nh th t Tab ca TextBox

    Wrap Cho php ch nh c word-wraps khng khi thit lp

    thuc tnh TextMode l Multiline

    iu khin TextBox h tr phng thc v s kin sau:

    - Focus: cho php thit lp form khi to u tin ti TextBox

    - TextChanged: Xy ra trn Server khi ni dung TextBox thay i. s kin ny

    xy ra bn cn thit t thuc tnh AutoPostback l true.

    2. S dng iu khin CheckBox

    Cc thuc tnh

    AccessKey Enables you to specify a key that navigates to the TextBox contro

    AutoPostBack Enables you to post the form containing the CheckBox back to

    the server automatically when the CheckBox is checked or

    unchecked

    Checked Cho php bn gn hoc thit t trng thi chn hay khng chn

    ca CheckBox

    Enabled Cho php hoc khng cho php

    TabIndex Enables you to specify the tab order of the check box.

    Text Enables you to provide a label for the check box.

    39

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    40/220

    TextAlign Enables you to align the label for the check box. Possible values

    are

    Left and Right.

    CheckBox h tr phng thc va s kin- Focus: Enables you to set the initial form focus to the check box.

    - CheckedChanged: Raised on the serverwhen the check box is checked or

    unchecked.

    3. iu khin RadioButton

    iu khin RadioButton lun c s dng trong mt nhm v trong nhm ch

    mt RadioButton c chn

    Cc thuc tnh

    Thuc tinh

    AccessKey Enablesyou to specify a key that navigates to the RadioButton

    control

    AutoPostBack Enables you to post the form containing the RadioButton back to

    the server automatically when the radio button is checked or

    unchecked

    Checked Enables you to get or set whether the RadioButton control is

    checked.

    Enabled Enables you to disable the RadioButton

    GroupName Enables you to group RadioButton controls

    TabIndex Enables you to specify the tab order of the RadioButton control.

    Text Enables you to label the RadioButton control.

    TextAlign Enablesyou to align the RadioButton label. Possible values are Left

    and Right.

    RadioButton h tr cc phng thc v s kin

    - Focus: Enables youto set the initial form focus to the RadionButton control.

    - CheckedChanged: Raised on the server when the unchecked.

    III. Submitting Form Data

    40

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    41/220

    1. iu khin Button

    Cc thuc tnh:

    AccessKey Cho php ch nh phm di chuyn ti iu khin Button.

    CommandArgument Cho php bn ch r i s c truyn ti lnh thc hin.

    CommandName Ch nh tn mt lnh c truyn ti trong Command Event.Enabled Cho php v hiu ho iu khin Button

    OnClientClick Cho php ch nh n mt hm pha client khi nhn vo Button.

    PostBackUrl Cho php tr d liu ln mt trang khc.

    TabIndex Ch nh th t tab ca Button.

    Text Ni dung text hin th trn iu khin Button.

    UseSubmitBehavior Cho php s dng javascript tr d liu ln mt form.

    Cc phng thc v s kin

    - Focus: Cho php thit lp khi khi to Form u tin iu khin TextBox.

    - Click: Xy ra khi iu khin Button c nhn.

    - Command: Xy ra khi iu khin Button c nhn. CommandName v

    CommandArgument c truyn qua s kin.

    2. iu khin LinkButton: cc phng thc v thuc tnh ging vi iu khin Button

    nhng cch hin th ca n di dng Text ging nh th ca HTML v c th p

    dng thuc tnh css ca th cho i tng LinkButton.

    Hc vin t tm hiu thm

    3. iu khin ImageButton

    Cc thuc tnh v phng thc ca iu khin Button v thm vo mt s thuc tnh

    Thuc tnh

    ImageUrl Ch n ng dn ca nh

    ImageAlign Cho php cn chnh nh trong ImageButton cc gi tr ca

    n c th l: AbsBottom, AbsMiddle, Baseline, Bottom,

    Left, Middle, NotSet, Right, TextTop, and Top.

    4. S dng Client Scripts vi iu khin Button

    41

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    42/220

    C ba iu khin Button trn u c thuc tnh OnClientClick, bn c th s dngthuc tnh ny thc hin m pha Client m bn cn khi iu khin Button c nhn.

    V d.

    protected void btnDelete_Click(object sender, EventArgs e)

    {

    lblResult.Text = All pages deleted!;

    }

    HiepGia

    42

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    43/220

    Gii thch v d: trn on m trn trong form gm 2 iu khin Button v Label.Trong iu khin Button ta gn vo 2 s kin: OnClientClick pha Clien, v OnClick phaServer

    OnClientClick s thc hin khi ngi dng pha Client nhn vo Button, trong mClient trnh by mt hm confirm trong javascript vi mc nh hi ngi dng xc nhnvic thc hin no Bn c chc chn? nu ngi dng chn OK th S kin th 2OnClick s c thc hin cn nu chn Cancel th s kin pha Server khng c thchin.

    5. Thc hin chuyn trang

    Mc nh khi bn nhn vo Button n s thc hin cng vic ngay trn trang vtrang ca chng ta s Load li mt ln nhng bn c th s dng thuc tnh PostBackUrl chuyn sang mt trang khc.

    V d bn c mt trang ButtonSearch.aspx

    HiepGia

    43

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    44/220

    Trong thuc tnh PostBackUrl ca iu khin btnSearch s chuyn sang trangButtonSearchResult

    void Page_Load(object sender, EventArgs e)

    {

    if (PreviousPage != null)

    {

    TextBox txtSearch =(TextBox)PreviousPage.FindControl("txtSearch");

    lblSearch.Text = txtSearch.Text;

    }

    }

    HiepGia

    Trong on m trn ta phng thc FindControl ca PreviousPage n s tmn iu khin trn trang ButtonSearch.aspx m ta cung cp ID ca n.

    44

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    45/220

    6. Ch nh mt Button mc nh.

    V d trn trang ca bn c nhiu iu khin Button, khi nhp d liu bn li quennhp xong d liu v nhn nt Enter trn bn phm, bn c th mc nh nt cp nhtd liu lm mc nh khi nhn phm Enter. Nh v d di y.

    void btnXacnhan_Click(object sender,EventArgs e)

    {

    lblThongbao.Text = txtHoten.Text;

    }

    HiepGia

    45

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    46/220

    7. iu khin Command Event

    S khc nhau gia Command Event v Command Click l trong Command Eventbn c th cung cp Command Name v Command argument

    Trong cc v d trc ti ly v d v s kin Command Click nn by gi ti sly mt v d v Command Event bn so snh.

    V d trn trang bn c 3 iu khin Button nh v d di y:

    void hcubiuChon(object sender, CommandEventArgs e)

    {

    if (e.CommandName == "language")

    {

    switch (e.CommandArgument.ToString())

    {

    case"C#":

    lblComandEvent.Text = "CShap";

    break;

    case"VBNET":

    lblComandEvent.Text = "VB.NET";

    break;

    case"JAVA":

    lblComandEvent.Text = "Java";

    break;

    }

    46

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    47/220

    }

    }

    HiepGia

    Bn chn ngn ng:

    C ba iu khin Button trn u cha Tn lnh v i s lnh v tu thuc vo is lnh khc nhau ta c th thc hin mt cng vic tng ng.

    IV. iu khin hin th nh

    ASPNET bao gm 2 iu khin hin th nh. iu khin Image v ImageMap.

    1. iu khin Image.

    47

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    48/220

    iu khin ny dng hin th nh ging vi th trong HTML

    Cc thuc tnh quan tm

    Thuc tnh

    AlternateText Ni dung thay th khi li ng dn ca nh

    DescriptionUrl Cho php bn cung cp mt ng dn n trang miu t chi tit

    ni dung ca nhImageAlign Cho php cn chnh nh ln quan ti cc thnh phn HTML khc

    trong trang v n c th l cc gi tr sau:AbsBottom, AbsMiddle,

    Baseline, Bottom, Left, Middle, NotSet, Right, TextTop, and Top.

    ImageUrl ng dn ca nh trn iu khin

    V d

    void Page_Load(object sender, EventArgs e)

    {

    Random rnd = newRandom();

    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;

    }

    48

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    49/220

    }

    HiepGia

    2. iu khin ImageMap

    Cho php bn to bn nh trn 1 nh hin th trn trang web m ngi dngpha Client c th chn vo mt vng ca nh thc hin mt cng vic no .

    V d

    void ImageMap1_Click(object sender, ImageMapEventArgs e)

    {

    switch (e.PostBackValue)

    {

    case "top":

    49

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    50/220

    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;

    }

    }

    HiepGia

    50

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    51/220

    Cc thuc tnh ca ImageMap ging vi Image v thm vo hai thuc tnh l:

    - HotSpots: cho php bn in tp hp thng tin ca HotSpots c cha ng

    trong iu khin ImageMap.

    - HotSpotMode:Cho php bn ch nh Enables you to specifythe behavior of the

    image map when you click a region. Possible values are Inactive, Navigate, NotSet, and

    PostBack.

    V. iu khin Panel

    Khi bn cn a cc iu khin trang vo mt nhm gii thch ngha cho nhm hoc c th l n hoc hin nhm iu khi nhn 1 s kin no trn trang ca

    bn, bn c th dng iu khin panel.

    Mt s thuc tnh ca iu khin panel m bn cn lu l:

    51

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    52/220

    - DefaultButton: Cho php bn nh ngha mt button mc nh trong panel m

    button mc nh ny s c thc hin khi bn nhn phm Enter

    - Direction: Cho php bn gn hoc thit t hng hin th ni dung c a ra

    trong panel, c th l cc gi tr:NotSet, LeftToRight, and RightToLeft.

    - GroupingText: Cho php bn trnh by Panel nh 1 Fieldset vi mt ch gii ring

    bit

    - HorizontalAlign: Cho php bn ch ra hng ngang th hin ni dung ca panel v

    n c th l cc gi tr: Center, Justify, Left, NotSet, and Right.

    - ScrollBars: Cho php bn hin th scrollbars khi bn c nh chiu cao hoc chiu

    rng ca panel v ni dung trong panel vt qu rng hoc cao , n c th l

    cc 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;

    }

    52

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    53/220

    void hcubiuNghenghiep(object sender, EventArgs e)

    {

    if (chkhtnghenghiep.Checked == true)

    panelnghenghiep.Visible = true;

    else

    panelnghenghiep.Visible = false;

    }

    HiepGia

    53

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    54/220

    VI. iu khin HyperLink

    iu khin HyperLink cho php to 1 link ti trang web khc, khng ging vi LinkButton,HyperLink khng trnh d liu ln server.

    Chng 3 S dng cc iu khin Validation

    Chng trc chng ta hc v nhng iu khin chun ca NetFrameWork3.5,chng ta c th dng nhng iu khin thao tc vi Webserver pha Server-Side,c th cp nht d liu. Nhng c mt tnh hung t ra l cc iu khin c m

    54

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    55/220

    bo cho chng ta cp nht d liu ng v khng xy ra li?. V d trn Form ca ta ctrng nhp s in thoi nhng ngi s dng li nhp vo l 1 dng text nh vy sgy ra li nhp liu. Vi phin bn trc ca ASP.Net l asp th khc phc li chngta phi thc hin vit m JavaScript bt li vic , cn vi ASPNET n cung cpcho ta nhng iu khin kim tra tnh hp l ca cc iu khin nhp liu trn Form.Trong chng ny cc bn s hc v nhng iu khin v tip theo l s hc cch mrng nhng iu khin theo mun ca chng ta v d bn s to mt AjaxValidator kim tra nhp liu pha Client.

    6 iu khin Validation trong netframework3.5: RequiredFieldValidator: Yu cu ngi s dng nhp gi tr vo trng ch nh

    trn Form

    RangeValidator: Kim tra gi tr nhp vo c nm trong mt khong nh nht

    v ln nht nh trc hay khng.

    CompareValidator: So snh gi tr nhp c bng mt gi tr ca trng khc

    trn Form hay khng.

    RegularExpressionValidator: So snh gi tr nhp vi 1 biu thc quy tc noy c th hm th, in thoi

    CustomValidator: Bn c th tu chnh i tng Validator theo ca mnh

    ValidationSummary: cho php hin th tng hp tt c cc li trn 1 trang.

    I. RequiredFieldValidator

    1. ngha: vi iu khin ny bn c th yu cu ngi dng phi nhp gi tr vo 1

    trng ch nh trn Form.

    2. Cch s dng:

    a iu khin RequiredFieldValidator t ToolBox(trong phn Validation) vo trong

    Form v thm vo cho n 2 thuc tnh

    ControlToValidate: ch n iu khin s c kim tra

    Text(hoc ErrorMessage): Thng bo li khi kim tra

    3. V d

    Code 1: Trang RequiredValidator.aspx

    void btnAccept_Click(object sender, EventArgs e)

    {

    if (Page.IsValid)

    {

    55

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    56/220

    this.lblResult.Text = txtHoten.Text;

    this.txtHoten.Text = "";

    }

    }

    Validator

    II. iu khin CompareValidator

    1. ngha

    Bn c th s dng CompareValidator Kim tra gi tr nhp vo c nm trongmt khong nh nht v ln nht nh trc hay khng.

    2. Cch s dng

    56

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    57/220

    Bn a iu khin CompareValidator t hp ToolBox vo Form v thit lp cho nmt s thuc tnh sau:

    ControlToValidate: ch n iu khin cn kim tra

    Text(ErrorMessage): Ni dung thng bo li

    MinimumValue: Gi tr nh nht thit lp cho i tng

    MaximumValue: Gi tr ln nht thit lp cho i tng Type: Kiu so snh, C th l cc gi tr Interger,String, Double, Date v

    Currency.

    3. V d

    Code 2: Trang CompareValidator.aspx

    void btnAccept_Click(object sender,EventArgs e)

    {

    if (Page.IsValid)

    {

    this.lblThongbao.Text = txtDiem.Text;

    }

    }

    RangeValidator

    57

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    58/220

    Vo im

    58

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    59/220

    Trong v d trn ta dng hai i tng Validator cng kim tra gi tr nhp trn iukhin txtDiem, iu khin RequiredFieldDiem dng kim tra v yu cu nhp gi trcho txtDiem cn iu khin RangeDiem yu cu nhp gi tr trong txtDiem phi nmtrong khong t 0 n 10.

    III. iu khin RegularExpressionValidator

    1. ngha

    iu khin RegularExpressionValidator cho php bn so snh gi tr nhp ti 1trng no trn Form vi mt quy tc nh trc. bn c th s dng cc biu thcquy tc a ra cc chui mu nh l email addresses, Social Security numbers, phonenumbers, dates, currency, amounts, and product codes.

    2. Cch s dng

    Bn a iu khin RegularExpressValidator vo Form ca mnh v thit lp cho nmt s thuc tnh sau:

    ID: tn ca iu khin

    ControlToValidate: tr n iu khin cn kim tra

    Text(ErrorMessage): ni dung thng bo khi c li

    ValidatorExpression: quy nh mu nhp liu nh l hm th, s in thoi

    3. V d

    Sau y s l mt v d v vic yu cu ngi s dng phi cp nht ng a chca hm th.

    Code 3: trang RegularExpressionValidator.aspx

    void btnAccept_Click(object sender, EventArgs e)

    {

    if (Page.IsValid)

    {

    lblThongbao.Text = txtEmail.Text;

    }

    59

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    60/220

    }

    RegularExpressionValidator

    Email:

    IV. iu khin CompareValidator

    1. ngha

    60

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    61/220

    iu khin CompareValidator c 3 kiu khc nhau kim tra gi tr nhp:

    S dng kim tra kiu d liu

    S dng so snh gi tr nhp vi mt gi tr c nh

    S dng so snh gia tr nhp vi gi tr ca mt iu khin khc trn Form

    2. Cch s dng

    Bn a iu khin CompareValidator vo Form v thit lp cho n mt s thuc tnh

    sau:

    ControlToValidate: iu khin ca Form s c kim tra

    ControlToCompare: iu khin dng so snh gi tr

    Text(ErrorMessage): hin th ni dung thng bo li kho c li

    Type: Kiu ca gi tr s c so snh

    Operator: Ton t so snh. C th l cc gi tr: DataTypeCheck, Equal,

    GreaterThan, GreaterThanEqual, LessThan, LessThanEqual, NotEqual.

    3. V d

    V d 4 sau s yu cu nhp vo ngy sinh, nu ngi s dng nhp vo khngng d liu dng ngy th s c li thng bo.

    Code 4: Trang CompareValidator.aspx

    CompareValidator

    61

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    62/220

    V d sau y s hng a ra trng hp vi Form to ti khon trn mt trnWeb yu cu ngi ng k phi nhp mt khu 2 ln.

    Code 5 trang

    CompareValidator

    62

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    63/220

    V. iu khin CustomValidator

    1. ngha

    Nu nhng iu khin Validator trn cha vi bn hoc bn mun to mtValidator ring theo mnh, bn c th dng iu khin CustomValidator, bn c th kthp CustomValidator vi mt hm.

    2. Cch s dng v V d

    CustomValidator c 3 thuc tnh hay s dng l:

    ControlToValidator: iu khin ca Form s c kim tra

    Text(ErrorMessage): hin th ni dung thng bo li kho c li

    63

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    64/220

    ClientValidationFunction: tn ca mt hm client-side thc hin kim tra trn

    client-side

    CustomValidator h tr 1 s kin

    ServerValidate: S kin c a ra khi CustomValidator thc hin kim chng.

    V d sau s s dng s kin ServerValidate kim tra di ca chui c nhptrong iu khin TextBox, nu ngi nhp, nhp vo chui c di ln hn 20 k t thiu khin CustomValidator s a ra thng bo li.

    V d:

    Code 6 trang CustomValidator.aspx

    void CustomValidator1_ServerValidate( object source,ServerValidateEventArgs e)

    {

    if (e.Value.Length > 20)

    e.IsValid = false;

    else

    e.IsValid = true;

    }

    CustomValidator

    64

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    65/220

    v d 6 trong hm CustomValidator1_ServerValidate Tham s th 2 c truynti s kin ServerValidator x l. Trong thc th ca lp ServerValidateEventArgs chai thuc tnh

    Value: Gi tr ca trng trn Form s c kim chng.

    IsValid: Din t vic kim chng cho kt qu thnh cng hoc sai.

    Trong v d tip theo ti s a ra cch s dng hm kim chng Client-side kt

    hp vi CustomValidator nh th no, Trang ny ch kim tra di ca chui nhp vobn trong TextBox, nhng n s kim tra trn c Server v Client.

    Code 7.

    void CustomValidator1_ServerValidate( object source,ServerValidateEventArgs e)

    65

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    66/220

    {

    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;

    }

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    67/220

    Width="218px">

    VI. iu khin ValidationSummary

    1. ngha

    ValidationSummary cho php bn lit k tt c cc cc li kim tra trn trang t

    nhng iu khin validator vo mt v tr. iu khin ny c bit tin ch vi Form c rng ln.

    2. cch s dng

    Bn a iu khin ValidationSummary vo Form v thit lp cho n mt s thuctnh sau:

    DisplayMode: Cho php bn ch r nh dng hin th li, n c th l cc gi tr

    nh BulletList, List, v SingleParagraph.

    HeaderText: Cho php bn hin th tiu tm tt cho cc li.

    ShowMessageBox: Cho hin th mt popup thng bo

    ShowSummary: Cho php bn n ValidationSummary trn trang.

    3. v d

    Code 8 Trang ValidationSummary.aspx

    67

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    68/220

    ValidationSummary

    *(Yu cu)

    68

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    69/220

    *(Yu cu)

    Code 8

    Chy v d trn nu ta khng nhp d liu cho cc trng n s thng bo li nhsau:

    69

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    70/220

    Cng vi v d trn nu trn iu khin ValSummary ta thit lp thuc tnhShowMessageBox bng True v ShowSummary vi gi tr bng False th kt xut ca vd thay v hin th l mt danh sch li trn Form th n hin th mt popup thng bonhng li trn trang.

    Code 9

    ValidationSummary

    70

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    71/220

    *(Yu cu)

    *(Yu cu)

    71

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    72/220

    Kt xut ca n:

    VII.To cc iu khin kim tra tnh hp l theo mnh.

    Trong phn ny bn s hc to cc iu khin tu bin nh th no. Chng ta sto iu khin. u tin s to mt iu khin kim tra di ca mt trng nhp liutrn Form LengthValidator, Bn to mi mt Control Kim tra tnh hp l bng cch dnxut t lp BaseValidator. Lp BaseValidator l lp c s cho tt c cc iu khinValidation, bao gm RequiredFieldValidator v RegularExpressionValidator

    Lp c s l lp 1 lp phi c ci t m yu cu bn ci t mt phng thcn.

    EvaluateIsValid: Tr v gi tr True khi trng kim tra tnh hp l trn Form l

    hp l.

    GetControlValidationValue: Cho php bn in gi tr ca iu khin s c

    kim tra tnh hp l.

    72

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    73/220

    Khi bn to mt iu khin kim tra tnh hp l tu bin, bn override phng thcEvaluateIsValid() v trong phng thc ny bn gi GetControlValidationValue ly gitr ca trng cn kim tra tnh hp l.

    To mt iu khin LengthValidator.

    Trong phn ny bn s c hc cch to mt iu khin n gin kim tra di ca trng nhp liu.

    Di y m m ngun ca lp LengthValidator.cs

    Code 10 LenghtValidator.cs

    using System;

    using System.Web.UI;

    using System.Web.UI.WebControls;

    namespace myControls

    {

    publicclassLengthValidator : BaseValidator

    {

    int _maximumLength = 0;

    publicint MaximumLength

    {

    get { return _maximumLength; }

    set { _maximumLength = value; }

    }

    protectedoverridebool EvaluateIsValid()

    {

    String value =this.GetControlValidationValue(this.ControlToValidate);

    if (value.Length > _maximumLength)

    returnfalse;

    else

    returntrue;

    }

    73

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    74/220

    }

    }

    Trong Lp on m trn ta thy LengthValidator c k tha t lp BaseValidator,trong lp mi ny ghi phng thc EvaluateIsValid. Gi tr ca iu khin c kim

    chng c ly v vi phng thc GetControlValidationValue V di ca gi tr sc so snh vi thuc tnh MaximumLength.

    s dng iu khin LenghtValidator chng ta phi ng k iu khin ny u trang vi th ch dn . nu bn mun s dng LengthValidator chonhiu trang bn c th ng k iu khin ny phn trong file Webconfiguration.

    V d s dng LengthValidator

    Code 11

    Use LenghtValidator

    74

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    75/220

    Ch dn , Vi tin t TagPrefix=Validator v Ch nNamespace=MyControls v s dng iu khin ny ging vi cc iu khin Validatorkhc.

    Chng 4. S dng cc iu khin khc.

    phn u ca chng ny cc bn s c hc s dng iu khin FileUpload cho php chng ta a cc file d liu ln Server, nh l cc file nh, word hay excel

    chng ny cc bn cng c hc cc iu khin khc nh Calendar, AdRotator,Multiview, Wizard.

    I. File Upload.

    iu khin FileUpload cho php ngi s dng Upload file t chnh ng dng Webca mnh.

    File sau khi Upload c th lu tr 1 ni no c th l trn cng hay trongDatabase.

    iu khin FileUpload h tr cc thuc tnh sau:

    Thuc tnh ngha

    Enable Cho php bn v hiu ho iu khin FileUpload.

    FileBytes Cho php ly ni dung file c upload nh mt mng Byte.FileContent Cho php ly ni dung ca file c upload theo dng d liu

    FileName Ly tn file c Upload

    HasFile Tr v gi tr ng khi File c Upload

    PostedFile Enables you to get the uploaded file wrapped in the HttpPostedFile object.

    iu khin FileUpload h tr cc phng thc

    Focus: Enables you to shift the form focus to the FileUpload control.

    SaveAs: Cho php bn lu file c upload ln h thng.

    75

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    76/220

    Thuc tnh PostedFile ca iu khin FileUpload cho php ly thng tin t Fileupload c bao bc trong i tng HttpPostedFile. i tng ny s a thm thng tinv Upload file.

    Lp HttpPostedFile gm cc thuc tnh sau:

    ContentLength: Ly v kch thc ca File Upload tnh theo byte

    ContentType: ly kiu MIME ca File Upload

    FileName: cho php ly tn ca file c upload.

    InputStream: Enables you to retrieve the uploaded file as a stream.

    Lp HttpPostedFile ch h tr phng thc

    SaveAs: Cho php bn lu file c upload ln h thng.

    Upload 1 file ln server

    Trong v d sau bn s c hc cch Upload 1 file nh ln a cng ca Server.

    Code 1a. Fileupload.aspx

    FileUpload

    76

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    77/220

    Code 1b.Fileupload.aspx.cs

    using System;

    using System.Data;

    using System.IO;

    publicpartialclass_Default : System.Web.UI.Page

    {

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    77

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    78/220

    }

    protectedvoid Page_PreRender()

    {

    string upload_folder = MapPath("~/Upload/");

    DirectoryInfo dir = newDirectoryInfo(upload_folder);

    listImage.DataSource = dir.GetFiles();

    listImage.DataBind();

    }

    bool CheckFileType(string fileName)

    {

    string ext = Path.GetExtension(fileName);

    switch (ext.ToLower())

    {

    case".gif":

    returntrue;

    case".png":

    returntrue;

    case".jpg":

    returntrue;

    case".jpeg":

    returntrue;

    default:

    returnfalse;

    }

    }

    protectedvoid Button1_Click(object sender, EventArgs e)

    {

    if (FileUpload1.HasFile)

    78

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    79/220

    {

    if(CheckFileType(FileUpload1.FileName))

    {

    string filepath = "~/Upload/" + FileUpload1.FileName;

    FileUpload1.SaveAs(MapPath(filepath));

    }

    }

    }

    }

    Gii thch v d trn: Trong s kin Button1_Click Kim tra c tn ti File Upload? Nu ng th kim tra kim tra file upload c phi ng nh dng ca nhkhng bng hm CheckFileType nu ng th s thc hin vic ghi file ln server viphng thc SaveAs ca iu khin FileUpload.

    II. iu khin Calendar

    Bn c th hin th mt lch trn trang web ca mnh vi iu khin Calendar

    V d sau s trnh by mt Calendar n gin

    Code 2.

    Calendar

    79

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    80/220

    Kt xut ca n s nh sau:

    Cc thuc tnh:

    Thuc tnh ngha

    DayNameFormat

    Cho php bn ch r s xut hin cc ngy ca tun, c th l cc gi

    tr: FirstLetter, FirstTwoLetters, Full, Short, v Shortest.

    NextMonthText Ch nh Text xut hin cho lin kt thng tip theo

    NextPrevFormat Cho php bn ch r nh dng thng tip theo v thng trc , n

    c th l cc gi tr: CustomText, FullMonth, v ShortMonth.

    PreMonthText Cho php bn ch nh hin th text cho lin k thng trc

    SelectedDate Cho php bn ly v hoc thit t cho ngy la chn

    SelectedDates Cho php bn gn hoc ly v mt tp cc ngy c la chn

    SelectionMode Cho php ch nh cc ngy c la chn c gi tr nh th no, n c

    th l cc gi tr sau: Day, DayWeek, DayWeekMonth, v none.SelectMonthText Cho php hin th Text cho 1 thng c chn

    SelectWeekText Cho php hin th Text cho 1 tun c chn

    ShowdayHeader Cho php hin th tn ngy hay khng trn nh ca iu khin.

    ShowNextPrevMonth Cho php hin th hay khng lin kt n thng tip theo hoc thng

    trc .

    ShowTitle Cho php bn n hay hin Text trn thanh tiu ca iu khin

    Calendar.

    TitleFormat Cho php nh dang text trn thanh tiu , cc gi tr ca n c th lMonth v MonthYear.

    TodaysDate Cho php bn ch r ngy hin ti mc nh ly ngy hin ti trn

    80

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    81/220

    Server.

    Cc S kin.

    DayRender: Raised as each day is rendered.

    SelectionChanged: Xy ra khi mt ngy mi, tun mi hay thng mi c la

    chn.

    VisibleMonthChanged: xy ra khi lin kt n thng tip theo hoc thng trc

    c nhn.

    V d sau s trnh by cch ly thng tin khi chng ta la chn nhiu ngy trn itng Calendar.

    Code 3a. Calendarmultiselect.aspx

    Multi select date

    81

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    82/220

    Code 3b. Calendarmultiselect.aspx.cs

    using System;

    publicpartialclassCalendarmultiselect : System.Web.UI.Page

    {

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    }

    protectedvoid btnSubmit_Click(object sender, EventArgs e)

    {

    bllresult.DataSource = calendar1.SelectedDates;

    bllresult.DataBind();

    }

    }

    Kt xut ca v d 3

    82

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    83/220

    To mt Popup Datepicker

    Trong phn ny bn s hc cch s dng iu khin Calendar kt hp vi Javacript to mt Pop-up Date picker nh trong hnh di y:

    Code 4. popupdatepicker.aspx

    protectedvoid calEventDate_SelectionChanged(object sender, EventArgse)

    83

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    84/220

    {

    txtEventDate.Text = calEventDate.SelectedDate.ToString("d");

    }

    protectedvoid btnSubmit_Click(object sender, EventArgs e)

    {

    lblResult.Text = "Bn chn: " + txtEventDate.Text;

    }

    Pop-up Date Picker

    function displayCalendar()

    {

    var datePicker = document.getElementById('datePicker');

    datePicker.style.display = 'block';

    }

    #datePicker

    {

    display:none;

    position:absolute;

    border:solid2pxblack;

    background-color:white;

    }

    .content

    84

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    85/220

    {

    width:400px;

    background-color:white;

    margin:auto;

    padding:10px;

    }

    html

    {

    background-color:silver;

    }

    85

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    86/220

    III. iu khin Advertisements(Trnh by qung co - Adrotator)

    Cho php bn hin th cc nh qung co khc nhau trong 1 trang. bn c th lutr cc qung co ca bn trong 1 file XML hoc mt bng c s d liu.

    . Cc thuc tnh

    Thuc tnh ngha

    AdvertisementFile Cho php bn ch nh n ng dn file XML cha ng danh sch nh

    qung co

    AlternateTextField Cho php ch nh n tn ca trng hin th ni dung thay th khi

    nh qung co v mt l do no khng hin th c

    DataMenber Cho php rng buc n mt thnh vin c s d liu ca ngun c s d

    liuDataSource Ch r c s d liu cha danh sch cc banner qung co

    DataSourceID Rng buc n 1 c s d liu

    ImgUrlFile Ch r n trng cha ng dn banner qung co

    KeywordFilter Cho php bn lc qung co bi 1 t kho

    NavigateUrlField Ch r n tn ca trng cha cc lin kt qung co

    Target Cho php bn m ra mt ca s mi khi nhn vo banner qung co

    S kin

    AdCreated: Xy ra sau khi iu khin Adrotator la chn mt qung co nhngtrc khi iu khin AdRotator a ra qung co.

    Ch rng iu khin AdRotator cha ng thuc tnh KeywordFilter bn c thcung cp mi banner qung co vi 1 t kho sau khi trnh by qung co chng ta cth lc nhng qung co theo iu kin hin th.

    V d nh trn trang ca bn, bn cn trnh by qung co 4 v tr trnbanner(top) ca trang, bn trai, phi v pha chn(bottom) ca trang. Khi bn gn vi

    mi nh qung co mt t kho(v d tng ng vi 1- top, 2- right, 3 bottom, 4 - left)v khi trnh by trong iu khin AdRotator ta c th dng thuc tnh KeywordFilter lc v trnh by.

    V d 1: Trn trang web ca bn trnh by qung co hai v tr(trn u v bnphi ca trang) layout nh sau

    86

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    87/220

    Code 5a: AdRotatorXML.aspx

    AdRotator XML

    #wrapper {width: 782px; margin: 0auto;}

    #border { border: 1pxsolid#8ECE5F; margin: 20px0px5px0px;background-color: #ffffff; min-height: 776px; float: right; width: 780px;}

    #header {background-color:#BECEF5; text-align: width:782px;height:100px; center;margin:6px0px0px0px;}

    #right{background-color:#BECEF5; width:170px;margin: 6px0px0px4px;height:300px; float:right}

    .box{ float:right;padding:10px; border-left:solid1pxblack;}

    87

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    88/220

    Ni dung File XML

    Code 5b.

    88

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    89/220

    ~/Advertisement/images/banner.png

    782

    100

    http://www.sinhvienhoasen.com

    Din n H Hoa Sen

    50

    banner

    ~/Advertisement/images/banner2.gif

    782

    100

    http://www.sinhvienhoasen.com

    Din n H Hoa Sen

    50

    banner

    ~/Advertisement/images/anh1.gif

    150

    150

    http://www.sinhvienhoasen.com

    Box Advertisement 1

    50

    right

    ~/Advertisement/images/anh1.gif

    150

    89

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    90/220

    150

    http://www.sinhvienhoasen.com

    Box Advertisement 1

    50

    right

    ~/Advertisement/images/anh2.gif

    150

    150

    http://www.sinhvienhoasen.com

    Box Advertisement 1

    50

    right

    ~/Advertisement/images/anh3.gif

    150

    150

    http://www.sinhvienhoasen.com

    Box Advertisement 1

    50

    right

    ~/Advertisement/images/anh4.gif

    150

    150

    http://www.sinhvienhoasen.com

    Box Advertisement 1

    90

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    91/220

    50

    right

    ~/Advertisement/images/anh5.gif

    150

    150

    http://www.sinhvienhoasen.com

    Box Advertisement 1

    50

    right

    ~/Advertisement/images/anh6.gif

    150

    150

    http://www.sinhvienhoasen.com

    Box Advertisement 1

    50

    right

    Cch thc hin bn a XML c cu trc nh code 5b, sau trong trangAdRotatorXML.aspx bn a iu khin AdRotator vo v t cho n hai thuc tnhAdvertisementFile ch n File XML bn va to, v thuc tnh KeywordFilter theo thKeyword trong file XML.

    IV. iu khin hin th cc trang khc nhau

    iu khin MultiView cho php bn n hoc hin cc phn khc nhau ca trangWeb, iu khin ny tin ch khi bn to mt TabPage. N thc s tin ch khi bn munchia 1 trang web c di ln thnh cc phn hin th

    91

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    92/220

    iu khin MultiView cha ng 1 hoc nhiu iu khin View, bn s dngMultiview la chn cc iu khin View trnh by.

    iu khin MultiView h tr cc thuc tnh.

    ActiveViewIndex: La chn iu khin View c a ra hin th bng ch s

    Index

    Views: Cho php bn ly v tp hp cc iu khin View cha ng trong iu

    khin MultiView.

    iu khin MultiView h tr hai phng thc.

    GetActiveView: Cho php ly v thng tin ca iu khin View c la chn.

    SetActiveView: cho php bn thit lp iu khin View c hin th.

    V MultiView h tr s kin sau:

    ActiveViewChanged: Xy ra khi iu khin View c la chn

    Cch s dng

    1. hin th nh mt TabPage

    Khi bn s dng MultiView kt hp vi iu khin Menu bn c th to mt TabPage

    V d sau s hng dn bn to mt TabPage t 2 iu khin Menu v MultiView

    Code 6a.

    void Menu1_MenuItemClick(object sender, MenuEventArgs e)

    {

    int index = Int32.Parse(e.Item.Value);

    MultiView1.ActiveViewIndex = index;

    }

    void Page_Load(object sender, EventArgs e)

    {

    if (!IsPostBack)

    92

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    93/220

    {

    MultiView1.ActiveViewIndex = 0;

    }

    }

    Create a TabView

    html

    {

    background-color:silver;

    }

    .tabs

    {

    position:relative;

    top:1px;

    left:10px;

    }

    .tab

    {

    border:solid1pxblack;

    background-color:#eeeeee;

    padding:2px10px;

    }

    .selectedTab

    93

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    94/220

    {

    background-color:white;

    border-bottom:solid1pxwhite;

    }

    .tabContents

    {

    border:solid1pxblack;

    padding:10px;

    background-color:white;

    }

    Day la View 1

    94

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    95/220

    Day la View 1

    Day la View 1

    Day la View 1

    Day la View 1

    Day la View 1

    Day la View 2

    Day la View 2

    Day la View 2

    Day la View 2

    Day la View 2

    Day la View 2

    Day la View 3

    Day la View 3

    Day la View 3

    Day la View 3

    Day la View 3

    Day la View 3

    Trong v d trn Menu c kt hp vi CSS to ra cc trng thi khi MenuItemc chn(StaticSelectedStyle-CssClass="selectedTab") v ko cchn(StaticMenuItemStyle-CssClass="tab").

    95

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    96/220

    2. Hin th nhiu phn trn trang.

    Bn c th chia mt Form c di ln thnh cc thnh phn nh hn v hin thtng phn, bn c th s dng cc iu khin Button nm trong iu khin MultiView vkhi Button c nhn th Multiview s x l thay i hin th View khc.

    iu khin MultiView h tr cc iu khin lnh sau:

    NextView: MultiView s kch hot iu khin View tip theo

    PrevView: MultiView s kch hot iu khin View trc

    SwitchViewByID: MultiView s kch hot View ch nh bi i s ca iu khin

    Button

    SwitchViewByIndex: MultiView s kch hot View ch nh bi i s ca iu khin

    Button

    Bn c th s dng cc iu khin lnh nh Button, ImageButton, LinkButton. Vthit lp thuc tnh CommandName, vi trng hp iu khin lnh l SwitchViewByID vSwitchViewByIndex bn thit lp thm thuc tnh CommandArgument.

    V d sau s hng dn bn to mt Form c nhiu phn vi vic s dng iukhin lnh NextView.

    Code 7.

    void View3_Active(object sender, EventArgs e)

    {

    lblRHoten.Text = txtHoten.Text;

    lblRCMT.Text = txtCMT.Text;

    }

    96

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    97/220

    MultiPart View

    97

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    98/220

    Trong v d trn 2 button u thit lp thuc tnh CommandName c gi tr lNextView, do iu khin MultiView h tr lnh NextView ln khi nhn vo 2 Button thlnh NextView c thc hin v kch hot View tip theo n View 3 vi s kinOnActive gi hm View3_Active v thc hin ly v gi tr ca hai TextBox v gn vo 2Label tng ng.

    V. Hin th vi iu khin Wizard

    iu khin Wizard ging vi iu khin MultiView c th dng chia mt Form lnthnh nhiu phn nh. Tuy nhin n s c thm mt s thuc tnh m MultiView khngh tr.

    iu khin Wizard c th cha nhiu iu khin WizardStep con, nhng ch 1WirardStep c hin th ti 1 thi im.

    Cc thuc tnh.

    ActiveStep: cho php bn ly thng tin ca WizardStep ang kch hot

    ActiveStepIndex: cho php bn gn hoc ly v ch s Index ca WizardStep ang

    kch hot

    CancelDestinationPageUrl: cho php bn ch r a ch URL c gi ti khi ngi

    s dng nhn nt Cancel

    DisplayCancelButton: Cho php n hoc hin Cancel Button.

    DisplaySlideBar: Cho php n hoc hin SlideBar(hin th tt c cc WizardStep)

    FinishDestinationPageUrl: cho php bn ch nh a ch URL c gi ti khi ngi

    dng nhn nt Finish

    HeaderText: cho php bn ch nh tiu hin th trn nh ca iu khin

    Wizard.

    WizadSteps: Cho php bn ly thng tin ca cc iu khin WizardStep trong iu

    khin Wizard

    iu khin Wizard h tr cc Template.

    FinishNavigationTemplate: cho php hin th Navigation bc kt thc

    HeaderTemplate: hin th thanh tiu u ca iu khin Wizard

    SlideBarTemplate: Cho php hin th SlideBar trong iu khin Wizard

    StartNavigationTemplate: Cho php hin th Navigation bc bt u

    StepNavigationTemplate: cho php hin th Navigation cc bc khng phi

    bc bt u v kt thc.

    98

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    99/220

    iu khin Wizard h tr cc phng thc:

    GetHistory(): cho php ly thng tin ca cc iu khin Wizard m truy cp.

    GetStepType(): Cho php bn tr v kiu ca mi WizardStep ring theo ch s,

    n c th l cc thuc tnh sau: Auto, Start, Finish hay Step

    MoveTo(): cho php bn di chuyn n mt WizardStep.

    iu khin Wizard h tr cc s kin:

    ActiveStepChanged: xy ra khi mt WizardStep tr thnh Step c kch hot

    CancelButtonClick: xy ra khi Cancel Button c nhn.

    FinishButtonClick: xy ra khi Finish Button c nhn

    NextButtonClick: Xy ra khi Next button c nhn

    PreviousButtonClick: xy ra khi Previous button c nhn

    SlideBarButtonClick: xy ra khi SlideBar button c nhn:

    Mt iu khin Wizard cha ng mt hoc nhiu WizardStep din t cc bcstrong qu trnh Wizard.

    Cc WizardStep h tr cc thuc tnh:

    AllowReturn: Ngn cn hay cho php ngi s dng tr v bc ny t mt bc

    khc.

    Name: tn ca iu khin WirardStep

    StepType:Cho php bn gn hay ly v kiu ca WirardStep n c th l cc gi

    tr sau: Auto, Finish, Start, Complete v Step.

    Title: ly v hoc gn tiu ca iu khin WizardStep tiu ny c hin th

    Wizard Slidebar

    Wizard: cho php bn ly thng tin iu khin Wizard cha trong WizardStep.

    Cc S kin trong WizardStep

    Activate: Xy ra khi mt WizardStep c kch hot

    DeActivate: xy ra khi WizardStep khc c kch hot.

    99

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    100/220

    StepType l thuc tnh quan trng nht ca Wizard, thuc tnh no xc nhWizardStep c a ra nh th no, mc nh l Auto

    V d:

    void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgse)

    {

    lblbiet.Text = txt1.Text;

    lblkhoahoc.Text = txt2.Text;

    }

    Wizard

    .wizard{border:solid1pxblack;font:14pxVerdana,width:800px;height:300px;}

    .header{color:gray;font:bold18pxVerdana,}

    .sideBar{background-color:#eeeeee;padding-left:10px;width:200px;height:23px;}

    .sideBara{text-decoration:none;}

    .step{padding:10px;}

    100

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    101/220

    101

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    102/220

    Gii thch v d:

    Trn v d ta a vo 4 WizardStep, chng trnh s thc hin trnh t theo ccbc v kt thc vi vic nhn nt Finish WizardStep3(c thit lp thuc tnhStepType=Finish) thng qua hm Wizard1_FinishButtonClick sau khi thc hin hmny n s chuyn sang v hin th ni dung cng vic cn thc hin thng 2 iu khinlabel trn WizardStep4 v iu khin ny c thit lp thuc tnh StepType=Complete.

    Chng 5 Thit k Website vi MasterPage

    102

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    103/220

    Bn ang gp vn thit k layout chung cho website ca mnh? MasterPage cth l mt p n tt cho bn gii quyt bi ton trn.

    Vi MasterPage to mt giao din chung nht cho Website ca mnh. V dwebsite ca bn c layout gm 5 phn banner, footer, left, right

    V content(phn cha ni dung hin th cho cc tin). Nh vy bn c th thy trntrang web c cc phn c cch trnh by khng thay i trong qu trnh duyt tin.banner, footer, left, right: bn c th cc phn ny vo mt MasterPage v tt cctrang web trong website ca bn s p dng layout ny thng qua contentpage

    I. To MasterPage

    Cc bc to MasterPage ging vi to cc trang aspx bnh thng nhng trn hpAdd New Item bn chn MasterPage bn thy di t tn phn m rng ca n s lMaster. Bn c th to nhiu MasterPage cho ng dng web ca mnh.

    V d:

    Code 1.

    MasterPage

    html{ background-color:#e5e5e5; font-family:Verdana;}

    .content{ background-color:White; border:black1pxsolid;width:700px; margin:auto;}

    .leftcolumm{ float:left; border-right:black1pxsolid; width:200px;padding:5px; height:300px}

    .rightcolumm{ float:left; padding:5px; height:300px}

    103

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    104/220

    s dng MasterPage cho cc trang aspx bn cn khai bo trn ch dn vi thuc tnh MasterPageFile=Tn _MasterPage ca bn

    v d

    code 2

    Trinh bay menu Left

    Trinh bay menu Left

    Trinh bay menu Left

    Trinh bay menu Left

    Trinh bay noidung

    104

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    105/220

    Trinh bay noidung

    Trinh bay noidung

    Trinh bay noidung

    Trn trang aspx bn khai bo 2 iu khin asp:content v trong thuc tnh ca nbn thit lp ContentPlaceHolderID=Ten_Placeholder trong trang masterPage.

    To mt Content mc nh

    Bn khng th kt hp mt iu khin Content vi tt c cc iu khinContentPlaceHolder. Khi trn trang MasterPage ca bn c 3 ContentPlaceHolder mtrong trang aspx ca bn ch s dng hai iu khin aspContent v ch n 2ContentPlaceHolder trn trang MasterPage khi mc nh ContentPlaceHolder th 3 vnc hin th.

    ng k Master Page trong WebConfiguration

    Bn c th p dng MasterPage cho tt c cc trang trong mt Folder hay tt c ccContent trong ng dng web ca mnh.

    Thay v vic trong mi trang aspx bn phi gi li ch dn trang th ch dn th bn c th thm n vo trong file webconfiguration

    Trong v d di y l cch bn s ng k mt trang SimpleMasterPage vo ngdng web ca mnh c th p dng cho tt c cc trang trong foder(Sub Folder) cha

    Ch rng file web.config ny phi cng nm trong foleder :

    S dng FindControl trong MasterPage.

    Khi bn cn chnh sa hay ly thng tin ca 1 iu khin t MasterPage bn c ths dng phng thc FindControl() trong mt Content Page

    V d

    Trang Findcontrol.master

    105

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    106/220

    Findcontrol

    Trang Findcontrol.aspx

    void Page_Load(object sender, EventArgs e)

    {

    Label lbl = (Label)Master.FindControl("lblTitle");

    lbl.Text = "Din n i hc Hoa Sen";

    }

    106

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    107/220

    Lay gia tri tu masterpage

    Lay gia tri tu masterpage

    Lay gia tri tu masterpage

    Lay gia tri tu masterpage

    Lay gia tri tu masterpage

    Trnh by thuc tnh MasterPage

    Bn c th trnh by thuc tnh , phng thc t MasterPage v c th chnh sa

    thuc tnh hay phng thc t trang Content.V d

    Trang Expose.master

    publicstring BodyTitle

    {

    get { return lblBody.Text; }

    set { lblBody.Text = value; }

    }

    107

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    108/220

    Expose MasterPage Property

    Trang Expose.aspx

    void Page_Load(object sender, EventArgs e)

    {

    if (!IsPostBack)

    {

    Master.BodyTitle = "Din n Sinh Vin Hoa Sen";

    }

    }

    Property, Property, Property, Property, Property,

    108

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    109/220

    Property, Property, Property, Property, Property,

    Property, Property, Property, Property, Property,

    Property, Property, Property, Property, Property

    Trong v d trn bn s thy mt im mi l ch dn MasterType, s dngc thuc tnh hay phng thc t MasterPage ta phi thm vo ch dn MasterType vt thuc tnh VirtualPath=Ten_Mastepage.

    Chng 6. Thit k Website vi themes

    Bn c th to Themes bng cch bn thm vo ng dng mt Folder c bit cang dng c t tn l App_Themes trong th mc gc ca ng dng,

    Trong Folder themes c th cha nhiu kiu File bao gm c nh v text. bn cth t chc ni dung ca themes trong cc folder con ca n. Hai kiu ca File quantrng nht trong themes l

    - skin files

    - Cascading Style Sheet files

    Trong chng ny bn s c hc c hai cch trnh by trong thm vi CSS vSkin

    1. Thm Skin vo trong themes

    Mt Themes c th cha ng mt hoc nhiu Skin, mt Skin cho php bn thayi mt s thuc tnh ca cc iu khin trong asp.net m nhng thuc tnh biu dinhin th ca control vi ngi dng.

    Bn c th to ra cc skin mc nh(s p dng cho cc iu khin trn form), skinp dng cho 1 iu khin c ch nh form.

    khng p dng skin mc nh cho iu khin bn c th s dng thuc tnhEnableTheming=false.

    V d:

    Trong v d ny ti s a ra 3 trng hp(mc nh, ch nh, ko p dng) p dngSkin vo trong cc iu khin trn Form.

    bc 1: Bn chn nh hnh 1

    109

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    110/220

    Hnh 1

    bc 2: hp thoi Add New Item hin ra bn chn Skin File v t tn Skin ca

    mnh vo hp Name v nhn vo nt Add nh hnh sau:

    Hnh 2

    bc 3: hp thoi thng bo hin ra bn chn YES.

    110

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    111/220

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    112/220

    Skin ti iu khin c ch nh

    Skin mc nh cho iu khin TextBox

    Khng p dng Skin mc nh

    kt xut ca chng trnh:

    Khi s dng Themes th mc nh nu trong cc iu khin trn Form c quy nhthuc tnh th hin th ca iu khin s b nh hng ca cc thuc tnh . Tuy nhinbn cng c th ghi cc thuc tnh s dng thuc tnh trong Themes quy nh,bng cch a vo ch dn .

    ng k Themes vi web.config

    Khi bn mun s dng themes cho tt c cc trang web trong website ca mnhbn c th ng k n vo trong file web.config trong ng dng web ca mnh nh sau:

    112

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    113/220

    ghi vo thuc tnh ca iu khin trong website

    Trong mt trang ta ko mun s dng Themes, ta c th g b n trong trang nybng cch:

    Thm CSS ti Themes

    Css l mt thay th cho skins iu khin cch xut hin ca cc thnh phn cac HTML v ASPNET

    Khi thm css vo folder Themes th n s c p dng cho tt c cc trang cp dng theme

    V d:

    File simple.css

    html{background-color:gray;font:14pxGeorgia,Serif;}

    .content{margin:auto;width:600px;border:solid1pxblack;background-color:White;padding:10px;}

    h1{color:Gray;font-size:18px;border-bottom:solid1pxorange;}

    label{font-weight:bold;}

    113

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    114/220

    input{background-color:Yellow;border:double3pxorange;}

    .button{background-color:#eeeeee;}

    File skintotheme.aspx

    SIMPLE CSS

    Registration Form

    Kt xut ca chng trnh

    114

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    115/220

    v d trn css c s dng ti kiu ca cc thnh phn html, bi v iu khinasp.net a ra m html khi trnh duyt ln p dng css cho cc iu khin ca aspx phis dng vi th ca HTML, nh trog v d trn c hai iu khin TextBox v Button ca ra m HTML l th .

    a nhiu CSS vo 1 Themes

    Khi bn mun a nhiu css vo 1 th mc themes, v d bn to ra hai file css lThemeA.css v ThemesB.css th khi s dng bn phi dng c php:

    Chng 7 xy dng v s dng cc iu khin do ngi dng to ra

    Mt webcontrol cho php bn xy dng nhng control mi t nhng control ca asp.net, bn

    c th d dng m rng ASPNET Framework t nhng control do mnh to ra.

    Vic thao tc vi webcontrol th hu ht l ging vi aspx, s dng webcontrol trn trang

    aspx bn phi ng k n trc khi s dng vi ch dn v d

    TagPrefix: Ch nh khng gian tn m bn mun kt hp usercontrol v trang hin ti

    TagName: Ch nh tn m bn mun kt hp usercontrol v trang hin ti

    Src: ch n ng dn ca control(.ascs)

    V d 1: to mt webcontrol thc hin php tnh ton v s dng n trong 1 trang aspx

    115

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    116/220

    Code 1: Caculator.ascx

    116

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    117/220

    Code 2 Caculator.ascx.cs

    using System;

    publicpartialclassCaculator : System.Web.UI.UserControl

    {

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    }

    protectedvoid Calculator(object sender, CommandEventArgs e)

    {

    if (e.CommandName == "cal")

    {

    switch (e.CommandArgument.ToString())

    {

    case"sum":

    lblresult.Text = Convert.ToString(int.Parse(txta.Text)+ int.Parse(txtb.Text));

    break;

    case"sub":

    lblresult.Text = Convert.ToString(int.Parse(txta.Text)- int.Parse(txtb.Text));

    break;

    case"mul":

    lblresult.Text = Convert.ToString(int.Parse(txta.Text)

    * int.Parse(txtb.Text));

    break;

    117

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    118/220

    case"div":

    {

    if (int.Parse(txtb.Text) != 0)

    lblresult.Text =Convert.ToString(int.Parse(txta.Text) / int.Parse(txtb.Text));

    }

    break;

    default:

    //

    break;

    }

    }

    }

    }

    Code 3: Default.aspx

    Su dung Webcontrol

    html{ background-color:#e5e5e5}

    .divmain{ background-color:White; margin:15px; padding:15px;top:30px; left:150px; position:absolute;}

    118

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    119/220

    S dng ch dn Reference

    Khi bn load 1 Usercontrol vi phng thc Page.LoadControl(), UserControl c tr v

    nh mt thc th ca lp System.Web.UI.WebControl. c ngha l bao gm tt c cc thuc

    tnh tu bin, thuc tnh ny khng c sn nh vi trng hp Load UserControl ng.

    Nu bn s dng Load UserControl ng bn cn p kiu ca UserControl v ng kiu trc

    khi s dng cc thuc tn. ly mt tham chiu ti mt Usercontrol bn cn phi s dng

    ch dn

    V d: bn mun thm d kin ca mi ngi xem h tng s dng ngn ng asp c bn

    hay ngn ng asp.net ? V tu thuc vo mi ngi h s chn asp hay aspnet a ra hin

    th mt UserControl.

    Chng 8 iu khin ADO.NET

    Hu ht ng dng hay cc website u cn phi c c s d liu, lu tr d liu,x l thng tin v a ra cc bo co, h tr tm kim

    Khi d liu tr thnh trung tm ca ng dng th cung cp cc chc nng ti ngidng ph thuc vo kh nng thao tc d liu, vn m ngi thit k v ngi xydng ng dng quan tm khi s dng d liu l:

    Lu d liu tp trung

    m bo ton vn d liu

    119

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    120/220

    m bo kh nng truy xut ng thi ca nhiu ngi dng trn d liu

    m bo thi gian hi p ngn cho mi ngi dng

    Bo mt d liu

    Trao i d liu gia cc h thng khc nhau

    Nhng vn ny c gii quyt da vo kh nng ca cc h qun tr c s dliu(HQT CSDL) v cc phn mm x l d liu do HQL CSDL cung cp. Net truy xut dliu qua ADO.NET, c im chnh ca ADO.NET l kh nng lm vic vi d liu khngkt ni, d liu c lu tr trong b nh nh mt csdl thu nh gi l dataset, nhm tngtc tnh ton, x l tnh ton v hn ch s dng ti nguyn trn Database Server.c im quan trng th 2 l kh nng x l d liu chun XML, d liu dng XMl cth trao i gia bt k h thng no nn ng dng ca bn s c nhiu kh nng lmvic vi nhiu ng dng khc.

    I. Kin trc ADO .Net

    Hnh 1

    Kin trc ADO.NET c th chia lm 2 phn chnh:

    - Managed Provider Component: bao gm cc i tng nhDataAdapter, DataReader, gi nhim v lm vic trc tip vid liu nh database, file,

    - Content Component: bao gm cc i tng nh DataSet,DataTable, i din cho d liu thc s cn lm vic. DataReaderl i tng mi, gip truy cp d liu nhanh chng nhng forward-

    only v read-only ging nh ADO RecordSet s dng Server cursor,OpenFowardOnly v LockReadOnly.DataSet cng l mt i tng mi, khng ch l d liu, DataSet c

    120

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    121/220

    th coi l mt bn sao gn nh ca CSDL trong b nh vi nhiubng v cc mi quan h.DataAdapter l i tng kt ni gia DataSet v CSDL, n bao gm2 i tng Connection v Command cung cp d liu choDataSet cng nh cp nht d liu t DataSet xung CSDL.

    Trc khi i vo hc c th cc i tng ca ADO.NET chng ta cng xem qua mtv d HelloWorld vi ADO.NET qua bn s thy c cng vic cn thc hin khi thaotc vi database( v d ny mnh dng vi SQLExpress).

    lm v d ny bn thc hin theo cc bc sau:

    bc 1. Nhn chut phi vo th mc App_Data chn new Item, Ca s Add New

    Item hin ra bn chn SqlDatabase nh hnh 1 sau

    Hnh 2

    bc 2. Nhp tn Database vo hp Name sau nhn Add.

    Trong Solution Explorer s thm vo Database trong th mc App_Data.

    121

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    122/220

    Hnh 3

    bc 3. to bng d liu cho Database.mdf

    o bc 3.1 bn click p chut vo Datatabase.mdf -> Server Explorer hin

    ra nh sau:

    Hnh 4

    o bc 3.2 bn nhn chut phi vo Tables v chn Add New Table

    Hnh 5

    Trong mn hnh ca VS s hin ra nh hnh 6 v bn thao tc to cc trng d liunh thao tc vi Access hay MSSQL 2000/2005

    122

  • 8/2/2019 Gii thiu chung v cu trc ASP.NET Framwork v c bn v C#

    123/220

    Hnh 6

    bc 4.Vit code cho Hello.aspx.cs

    using System;

    using System.Data;

    using System.Data.SqlClient;

    publicpartialclass_Default : System.Web.UI.Page

    {

    protectedvoid Page_Load(object sender, EventArgs e)

    {

    //chui kt ni n ngun d liu

    string driver = "Data Source=(local)\\SQLEXPRESS;AttachDbFilename=|

    DataDirectory|Database.mdf;Integrated Security=True;User Instance=True";

    //i tng kt ni