You are on page 1of 684

T_ ...

Scott Mitr:heII

IZASP. ET 2.0
II 2U......
TARTALOMJEGYZÉK
Aszcn6r61., .. , o •• " •• , o •••••• . .... xv
Ik\'(~z('((>,;. , .. , ... , . . . . . . . , • . . . . . xv",

J. rMl ISfllIIrkedés az ASP.NEl-teI


1.6ra Ismertedés az ASP.NEHel
Mia~ ... SP.NET! .. ..... ....... , ....... ,.. , .......... 5
Statikus ,,'eboldalak kiszolgálása .. , ... , .. , . . . . . . , ...... 6
Diruornikus ",eboJdalak kiszolg:lI1s~ ..... , ....... .. ........ 7
Az ASP.1\'ET weookblak clhclycz6c ... ....... . , .. , ....... , . . . . .. 8
Az ASP,NET-mowT, a szerkesztő "s ~Z adatbázis-rendszer tel"pil~ , . . ... 12
Ismerkedés a VISual Web lk"dOf"'rrcl ...... ,... ... __ , ....... 15
Új ASP.NIT "'ebh,,!y ll'lrchoz.!isa __ . , ... , .. , . . . . .. 16
Egy egyszeri! ASP.NE'!" wcboldlll(,trehoúsa k klpróbáL'lsa ... 18
ÖS5zcfoglalh .. , . . . . . . . . . . . .. 19
Kérdezz-felelek ...... , ____ . . . . _ ... 19
Ismétlő kérdések .. . . 20
V~laswk ........ , _... , _" .. 20
Gyakorlatok .. . ... . . . 21
2.6!a IUASP.NET PfOQIlImoási modeUje
Az ASP.l\'t.i· weboldal IITML re,;7.e .... 24
IITML-gYOf:SlalpaI6 ........ . .. ...... . .. . ..... 24
Al XI·ITML-fÓI röviden ...... . . . 28
Az ASP.Nt."T weboldal HTML ,bz(""""k ló:trehozása ~ Visual \~eb Developer
segíl~gévcl ............ . ...... .
Az "'SI'.NIT weholda! forráskód..esze ..
Objcklumközp<>nlú prOjjramo~~ - gyorslalpaló
&eménykezel6k az ASI'.NI::T·lx:n ...
43
17
""
A webes vezérlók progr~mo7.ása . ..... 48
össlefoglal1s .................... .
Kérdezz-felelek ......... . ......... .
!smft16 kl'rdbek
51
. .. 52
"
V~1a'lOk . .......... . ... . ........................ . ..... 52
Gyakorlatok. . . . . . . . . . . .. •.......... ... • . . .. 53
3. 6!a A VIsual Web Oevelopef ilaszn6lata
Új "'ebhely l<'1.rehozása ...................... . .. 56
!\ webhelysablon kiválasztása ..... ... ...•. . . 57
A "·ebhely helyének meghatiiro:clsa ... ............ . . 57
A forráskód programozási nyelv"""k kiv11asztisa ...•. . . 59
Uk·l.ó wd'helyek rncgnyitisa . . . . . . . ....... . ...... 60
Munka webold~J~kk~! ~S más tartalmakkal . . . . . . . . . . . . • . . . .. .. . .. .... 60
Tartalom houlacUsa a webhclyhez. . ...•.... 61
Tartalom :lthelyezésc. ~ln~·"eZ.,se b lörl~.., . ...• . 64
vi I Tnlljuk mag &l ASP.NEl 2.0 I"III2n6Iatát 24 6ra alatt

A V;,ua! Web DeveJoper 1<!SIrt'sO\abha · ... 6S


Kömrele1:; bd.lIitá,.,k .. . ... ..... . .6S
A Hl·,\ll-(er".ez6 ntlC1 be:lllftá.", ...... . · .... 67
A fejl=őkörnyezet abbkainak ""'glekintése, mo~gatás:l &; lilmtretelése . . .. 70
SegiL"'g brnyújtlsnyirn . .... . · ... 71
Ö",refoglalás ..... ...... . .... . .72
Kérdeu-felelek ... . ..... . 7.~
Ismttl6 kérdhek
Vilaszok
Gyakorl:Hok . . . . .....
"
.. 74
.75
4. óra ASP.NEl wvboldellk Ulrveme, Ntrllllonlsa él; Ull:ZlIIIé$e
......... 78
A pén;n!lI'i~ s4imoI6g<'l> swlg:;l latá",,;nak meghalároz;1sa ............... 78
A fclh;lSZnáJ6i felüler me8Ie,,·e7.ése ... · .79
A r"lIwsm.116i feJűlC1 kialakítása ... . ........ . . ... HO
A lórom TCXlBox vCléTI6 houáad:lsa · . III
Al",,,; lörlesztúrészlerel kisz;lmító gomb howad15a .. ... 83
It kínlt'nel megjeit"nil(os,." cgy címk .. "ezfrlúbeo . .. ..•. . .. · .. 84
A feJh.a5zo:íló; felülel tcl;':'sst 1&(')C . . . . . . . . . . . . . ... • . · .. 85
Az ASI'St.T oldal forráskódlio~k megir'd5a ................. .
A SlöH'gmezúk <'rtékeinek kiolv:1.'iása ... ......
A teljes forr.lsk6d . . . . . . . . ......... ' ....... .
. .... . "
· .. 67
· .. 88
It pl'n7iigyi sz.'i.mol6gép klpr6W.l::\sa ....... . ..... . · ... 90
A feldolgozou forr.bkód megreltim~ . . . . . . . . . . ..... . . .... 91
Hitxlk keresé.'" ~ hemt."nrlLx"fl ..... .. .. . ........ . ..95
A ford,kód vizsgálata ......... . ... .. . · ... 96
It hihakereső használata ...... . ..... . .. 97
Összefogla!:i. . . . . .... . .. 100
Kérdezz-felelek . . . . . . . . ..... . · .. 101
Ism~t1ú ktrd~k ........ . . .. 102
Váhl-'wk . . . . . .. . . ... . · 102
G)'3korlatok . . ............... . ... 103
5. ÓIl! AVrsull1 Basic v6ltoz6i és mOveIetti
A program()lá~1 nych'ck dJia · .. 106
A programozhi nyeln,k ~ltool"nOl> swlg"lt;l1ásai .. 107
V111oz6k bevezetése ts h:m:/liílata .. . . ...... 108
Értékck hozz;lrende!~se \':\Jlozókhoz ... . · .•. Hl')
V.illoző b"....m.:lésc .. · .. I{)')
A változók e1nevezhérn,k ~7...1"'lya; . . .......... 109
1\ v~1towk ad,nipusai .... . . · ... IlO
II Dim ulasítl, .. . .
. ..... . . . . . . . . . . . , . ·. 114
It \'isml Basic méh'elele; .. . ....... IlS
Számtani műveletek ... . . ..• . ........... 115
Öss7.chasonlít6 műveletek ... . .... . . ............ 116
Az összerÜ7.<; mÜ'·cl<.1 ...... . .... ... . . • .. ... . ....... 117
II \~~ual Basic énékarJó műveletei ............. 119
T.,uljuk liliiii 11/ ASP.NET 2.0 haSZn6IatM 24 ón! alatt vii I
A Visual U"-'ic lipusokr~ von~tk01.6 s;--"b~lyai .... , , _ . , 121
Típll.';;\ tabkitis , 121
ö.'-~7."fogl~ljs .
Kérde"" -felelek
,125
,,.
Isml,tló k"rdé:sek m
V~Ia.'lok ,. _ , .. , " 0
Gyakorlatok, ............. , ..........
" . _ , •••••••••••••••••

o ""
'28
6. ón! l'rOgnImOk ~ a Vi- ' Bak: m6r1é8i tzerkemteiwl
A vezérlési szerkezetek mílködési elve ... , .. , ...... .
Fdt(,l"ks ""z(,r!6i szcrkelt1Ck .. , ... , ..
Ulili.itá,ok "l'weha~ hamisnak bizonyuló feltétel eset"n
o , •••• • o ••• o

o • o o •• o ,
'"
, Ul
1}4
M:i'ik fchl'tek... uta,illi .• vl'grd'~Ms:l _. _• _
)wmisnak bizonyul6 fcll(1c1 "-'Clén ........ , ..
o o , ••••••••

o •• •••••
_ o

, 135 '"
A Visual Ua.,i~· ciklusoczerkezrtej ...... . o • __ • •• o 137
For ... NeXl ciklusok . o , ••• , •• o • •• o , _ o , 137
Do ___ Loop ciklusok ...... . ___ 140
Egységbe fog6 vez"rl"sl szerkezetek, .........
eli<\r:\sok és filggi'l~nyek
A felesleges kódok rnenny;ség~nek csökkem&
o

o •• _ _
'"
'40
I'ÍS
clj"r!isokk~1 és filss"tnyekkcl ..

''""
, ................. .
Paramt'terek átadása eljár:i'lOknak é.. függvényeknek . . . _. , , .
Énlckek vi_"'7.aadása függ\'blyek ",egít~gé-vel
Mi ... sze...".. 37_ esemlcnykezel6knek?
......... . , .
, .. , .. . _ . 151 '"
ÓSS2efoglalis . .. .. ..... .. . . . , ... 152
Kérdeu-feJelek o , • o • • , , •• , •• o •• o , •• , o o •• 153 o

lsml:llű kérdések
Vil:l5Wk ,
Gyakorlatok
, •

, .. 155
o '"
154

7. ón! Objektumok II visual Bak:ban


Alo:wályok ~S az objcktu,nok S"~cn;:pc - még c~'Ys~er , ... , .• . .• , __ 1s.s
Ar. ob;"klumok szerepe az ASPJ'<lIT webal hlma~sokban , ............ 159
Objektumok !ffi-eho~"" _. , , .... 160
o • , _ o o ,.

Paramtterezett k005truktorok ......... . .... 161


Objektum l\llaid()fl~gainak be:illítá..a .,. ..162
Objekrum ragfoggv6n)'cinck ffiI'8lÚVáSll ... , ....... .. • ' , . 163
I'_""ménykezdűk K>trdlOzá.sa az objektumok eseményeihez o o •• 164
Összefoglalás •. o o ••• , • •• , •• , • •• , •• , ••••••• ••• , •• , _ o o , , 165
K~rdezz-felel{'k . o , •• o • •• o . ..... 166
Ism~16 k~rd6ek ••• o o •• 167
V::ílasmk . , ... . .. o . . 167
Gf"korlatok . o , . 167
8.6nt Az ASP.NEl sz6vegmlgjllenft6 VmrI6i
SWv<'gm<'gjd<,nit6 "~zcrl6k .. o ••• o ••• 170 o o o •• o •••• , •• o •• o ••• o o o ••

A Lit..-r-~I vezérlll hus~n:ibw. • . .. . , . . . . . . , .. , ........... , .. , , 171


A IJtera) "e~érl6 Text tu13jdon~g:\nak bd!líJ:j ... programból . ..... 174
I
vii T~ meQ az ASP.NEl 2.0 ~ 24 6re.u

A !,.:.Ibd velérl6 ba~lllálata ..... 177


A !,.:.I~I "cn'rl6 által dMllilOlI llTML-kód ... 179
A ubel "eúrl6 form~úsi luJajdonslgai . , , .... , ........ , , ... _. . 181
ÖSS;;,doglalls .. , .................... , , ..... , ..... . . ... 189
K<':rdell·felelek .. " ..... " . .... ", .... , ........ , ... . _... 189
ISIOC!J6k~rdések .. " ............. ", .. .. , ..............•..... 191
V~laswk ... , ...... " ..... " ..... ", .... , ....... . , .. . ... , .... 191
G}'llkorlatok ..................... ", .... , ....... " . ... ,., .... 192
II. rész F""IISll~16i adatok ~s. ib feIdOIgOmSa
9. 6re A webel drIaPat ~
I'dh:l5wjI6i adato k "'"zegy\Ijté;e HTML weboldalakon .. , .... , ...... 196
A~<illpu!>dem ..... , ...... , ..... , ...... , ...... " ... 197
A bemelIel átadása a wcbkisrolg!il6nak ~ .. forrn> dem ..,gítségévl"l , , .... 19')
V~;oacsatol6 és :llir1llyíló űrl.pok ...... , , .... , .............. ..... 201
Az ASP.r-.'ET webes .lrlapok működése .... . ............. , , ... 203
Webe5 veúrl6k a fdhaszru\16i .dalok Ö55zegyújtésl''''' ................ 204
A B!.!ICalrulator.aspx ASP.NET 01(1.11 u'sZld<':"" .. . . . . . . . . . . . . . . . .. 206
A f<"lha,zllál6 ,Utal megadol! t'rt<':kekre emlékez6 wcbes a rlapok ... , .... 208
A ll.'dICalruJalor.aspx forráskód n:."iléllek mcSidsa ................... 210
Összefoglalás. , , , ............. , ..... . ...... , , ...... , ... 213
K<':rdeu-feklek ......•...... , , , , , ............... 214
lsmélJ6k~k ..... ,. . ..... , __ .. ,., ........... , .... 215
Válaszok .. ,...... . ... ....... .. 215
Gyakorlatok , ...... ", ..... " .... " ...... " ...... , ... 216
10.6ra Adatgy(1jtés ~kkeI
Alapvel6tudnival6k a TextBox vez6rl6r61 .... , ......... . 21l>
Ma"elet "egrehajt~,S;l az űrlap eJkOldés.-kor , , , , ............. , ... 221
Többsoros szövcg!Ilezók (,S jdsz6mcz6k l<':u-cho:clsa , , .............. , ... 223
A löbbsoros szö"egm<'z6k haszllálata .. ".. ... . ..... , .......... 223
A jds7.Ómc7.ók has7.Il:llat:l. ...... , . . . . . . ............. , ... 225
A TextBox veúrl6tulajdomjgai ... , , . , , , .... , ...... , ... 228
A szOvegmez6 hCXIsz:l!uk meghatározk:l ......... , ... 226
A .'!7jh·egmez6bc írhal6 brakterek szá~llak korliltolJsa ... , ..... , , ... 229
EsZl('tikai rulajdonságok - a szOVcgm.. z6 bctatipuslnak eS ... , ... 231
sT.ineinek beállítása .................. . ................. 231
~lefog!JI:ís .. , , , ...... , . . . . . . . , ................ 233
Kérdeu-fddek." ._ .... , ..... " ..... , ....... , .......... 233
!slYl<'!tlő kérdések .. .. .. . .. .. .. . .. .. .. .. ........... 234
V~lasmk .. _., ... , .......... , ....... ....... . ...... ... , .. 234
G}'llkorlatok " ........ ,. _., "" ,._ ... _........ 235
11. 6111 AdItgy(ljtá JenYI6 istikkIl, v61esz16gombokkll tb i~kkeI
A h"vih~'tő ad.1tok osztál)'o:clsa .... , , ..... . .. " ............. , .. 238
A megfelelő wel.>es vt'n'rl6 kivllasztása . _. . ................. 239
A DropDownUst v.,ú-r16 .. ' ..... , .. , .. , ..... , .......... 240
elemek hozlJacUsa 3 lenyíló lisl::lboz .... , ., .. _ , ....... , .. 240
T...... '"'9 II: ASPJET 2.0 haao6llltlil 24 6ta _ lix
Len)1I611Slil Ilo=tldisa egy ASP.NET wcbokblhoz . ,........... . 2·H
II DropJ:loo<o."Tllisl ""zérl6 esztáibi rubjdonsigai. .. ........... .. li7
II Ibdlollunon ,..,~~ . . . . . . . . • . . .. •. .•............. 2~7
II Te;lC1 & a GroupN:.une ruJa~g 11lIs;cn;lI~llt . .................. 250
II be,elölt wlaw6gomb meghatj107Ji$l ............ . . 251
II ,ojla-'1.tÓiumbok esutl:lk:>i rulajdon.<oig;1I .....•. . .....•. 252
II Che.:kBox ''e~érl(' IllIszn:1lau . . . . . . . . . . . ...... . •...... 252
II bereiölt jelöl6négyzelck nlet!h:mlroú5:I . .. ....... . . 254
ö-.~zo;,foglalls . . . .. . . . . .. .. . .................. 256
Ki!rd"~7..fcldek . . . . . . . . . . . . . .. . .. 257
Ismi!tln: k&dl:""k ... 258
V;tl:l.S7.o1c . . . . . . • . . . .• .... ....... . 2~
G}".. kOfbtok .. .. • •. . ..... . . u.o
lZ. ln A~IdItok I .. n6rr1
II fel~l61 a<blok: e~ S7.0k:w;gcsol"gc ...... 262
II bemen.:tdlcn6rzés f:ljtjj . . . .. .. . . . • . .. • • . .. 263
II relha$m1l6i adalok cllen6m!se:lX ASP.1\"F.T okblakon ..... .... 26-1
ASp.NET ol<bl az ellen6rdl "nMOk bemUI:I~", ............ . 265
1\ RequlI'edfif:ld\':Ilidator "~"Z("f16 ........... ..•............. 267
A~ clk-nőn6 "e~M6 ~II:II vi~111 "ereM megh:tt;lrozkl .... . . 261:!
Az i!,....én)'lclcn bemenet eseI!n.. . .. ............ . ..... 269
rnegjelenílcnrXí hibaüzenet n-.eghatárol.h:o . .... ....... . ....... 269
Az liSP NIT ukLl kipr6b11:i5:1 . . . . . . . . . . . .. . .. ....... . ..... 270
II bemenel é":("Tl~go:!:nek ellen6n:i!se progr:amból . ..... . ....... 272
Az elJenGn6 '·el.ér16k abpszo~l!lttá$.3j - OSSzefogblh ............... 2'"
A ComI"'",\':Ilidatorvez~ .. ....... ..... ..... . ........ 275
Ki!! melO' ~"tCtu5OOlít.W. a Comp;lI'e\':Illdalor ,."zérl6 segít.~·d •.... . 278
A Ibnge\':tli<btC>r ''e71:r16 ........ . . .. . . ... . . .• •. . 280
IIOC"TltroC!l eHen6nése a RegularEll:press;on\':thdIlQr ,..,zM6 S('gl~'eI . 2lU
Az dlcn6rz6 veúrl6k =~ik:>i lubjdoo$iga' . ........... . 284
Eg)'fi> ..1IenlSrz6 "e~ __ . ........... :287
Osszefogbl.1s . . . . . . . . . _. . . • . . . . . . . . . . . . 288
Ktrdeu·felelek ... ___ . . . . . . . . . . . . • • • . . . • . ... _.... _ 288
l~ml:Il6 kt~k .......... . . . . .. ............. 289
Válaszok. . . . . . . . . . . . . . . . . . . . . . . • . . •. . ....•..... .. 290
G~-akC>rlJlok ....... _. ................... _ ......... .. 290
UI. mz Munka ~
13. ón!
Az
BeIi_* lIl"'U46ook ViII96be
ad.'I~zls·k"l.elt:s al~piai ..............• ................ 296
II jelenleg tuSZJúbt"" ad;.nt>;;\zisrends~k ...... ............... m
SUuktur.11t ,.dnak WOI;i~ .. . ...•. ... .... ....... 296
IIIlb1~k oWopai _...... . .. .......... .. .. 299
Els6dlege kulai ",,;dopok .. .................. _300
lI<btl>;;\zi5 ~5a . . . . . . . . . . • . . . . . .. . .......... • ••• • _302
1Id:.lb::Iili1ll.:ibL1k Ji!lrehoz::is:. .. . . . • . . . .. ..... . ........... •. 304
II I T..... meg az ASP.NEJ 2.0 haSZnáIttM 24 6ra alatt

Adatbázis-ter\"ez6 di6h~jlxm .. . ... . .. . . ~


Adatok homadása a Books t;lbl;looz J<>9
Ös.",.efoglal.is . ....... . . . .... 313
K~rdezz-felelek ........... . · 314
lmlMl6 kl'roések ............... . .... . ....... . 314
V:iL1szok .... . ........ 315
Gyakorlatok . .... . ............ . • .....•.. . .. 315
14. 6ra Adatok ~S4I az adltform·~eI
Adatforrás-ved·rlők ..•... · .~18
Az SqlDmaSource \"ez&l6 haszn.1Iat~ ... ............. 319
3. 1 ~5: A lek~rdeWs kipróbálása . .. 324
AJ. SqUht3S0urce \"ezM6 kódja. . . . . . . . . . . . . 325
Az ad:ubá1.isok n)":! ..e: az SQL .. .............. . ............... 326
Az SQL SELECT UtasítáS.l res..J<.1cscn . . . • . ......... 326
Az SQl-lekádezések er<."dményének meglekínll'sc ...... . 32;
a Visual \X'eb [)e1.·elopcrben . . . . . . . . . . . . . . . . . . . ....... . .327
A vissz.aado« sorok ","-"mának korlitozás.1 a WIIERE lJil""dI.lékkal . . 330
Az en.'drnény rcnd,,~ al ORDER BY zár~dékkal .. . . . . . . .. 333
Adatok s~Gri'", k .........:tez~ az SqlDataSoo.m."e vezérl6 vará15l6jiban ....... 335
A~ Sqlll'~'aSou= vezérl6 aclarnínak S7->'íre.~ . . . . . . . . . . . . ....... 336
Az SqlDamSoutce vczerl6 adat.ainak rendelése. . . . . . . . . . . 338
A WHERE ..k.lClékhl dl:llllll l"kérdeztsek kipr6lXikisa . 339
Az SqlDat"-Sourcc .. e:térle;: kódja. . . ........ 340
O~zefoglal:'is ...... . . .....~1l
Kérd"u.-felelek ... }n
Ismétl6 kérdések .. . ..... .... . . :142
Valaszok . _ ....... . .............. 343
GyakorlalOk .. . . . . . . ....... . . ............ _.}4~
15. óra Adatok rntgjellMlltm I w8bes ~
Webes ad3IVCz,érl6k - ánekinté$ .. ..... . · .346
Adatok megjelenit6c" GridView \"eU,rl6 segítstgi' .. el · :149
A GridVi .....w kódja .... ...3SO
A GridView te<;t.res;labása .. .352
Egyszerre egy rekord megjeleníté.se a DetailsView vezérlő scgí~"'g(·"el . . . 359
A lapod> felüle! testreszabis3 ...... . ... 360
A DetlilsViev.- megjelenésének tCSlres7..abá~1 .. _ . . . . . . . . . . . 361
A Det~iJsVicw k6Jja . . . . . . . . _. . . . _.......... _ . . . . .. 362
u.pozás (os rendezés 3 GridVlev.- segítstgbcl ... . . . . . . . . . . . •• . . .. .~3
u.poz:ls ... ..................... _ . . . . . . . .. ..•. . .. 364
Rendezhet6 adatok megjelenít(·", .... _ . . . . . . . . . •. . .. 367
Összefoglalás ...... _ . ............ . .. _ 370
Kérdezz-felelek .. _ . 370
Ismétl6 kérdések ... . . · . 371
Válaszok _ .
Gyakorlatok . . . . .. .. ... .... . . · . 371
.. 372
15.6ra AdIIak t&16tt, bII2Cria .. szn..,, '•.
Awtok flWi,bc, tÖrIke és b...;ZÍII"i.... a~ SqID:lI~rce ,..,lérl6
~'d .. 374
A1 SqIIntaSourao \"~6 forr:bkOdj:> . . .... . . . .. 376
AdallTlÓdC:l6it6 SQL--uwit.isol< ... ••.... •.. . ••. . . .• . .. . .. 3n
Az NSERT uwitls ........ . .......... 378
Aduok törll:sc a DEUITE Ul!lsí'~s.s;Il . . . . . . . . . . . . . . . 379
Ad1tok $!crl".~·.d~ az UPDATE ut~.,ítbsal ... . . .... 379
Ad.;nok $~rkc,zlbc és tl">rlésoe a GlidVk'W \lczC:rt6 s.,gí~o!·""l .... .lOIIO
"datok törlk61~k c"8,xHyezke ~ fe \ha"'1.... ~ 16k n "k .................. .lo81
Sl"rk~'het6 r:1csnézet létrdlOz$:t ........... .... .. . ... . .... .lo85
A nerlc"'zt6 feliIlet leslreS7... I:dsa és II frissítki 'IJ';lWlyok .......... 3f17
Optimi"" """,,nllk . . . . . . . . .. . . . . . . . . .......•.....•.. 397
A&.."k !,.".;r.úr.i"" a Dct:Ii!.o;V,.,..... \"eú-r\6 $C8r~gé\·el . . . ..........•.. 399
A !,.,mjr.i51 dmog:nó Do:taib\"oew tesuC$Ul:d..<:I. . . . .. . .400
~ogblh . .. ...... . .............. 401
KtTdt:u·felcld< ......... ........ . . . . . ... . . . •.. 402
~k~ .............. 403
U~nok .............. . ...... , ... .. 403
Gyakorbtok . . . . ... . . . . .. . . . . . . .. . .......... 404
17. 6rI AdItkIPetOIt ltnYI6 kt&. ·. fI '''vombok '' i"/iI5tli0ata
J.isla"e~érI6k - :lnekimk .... .. .. ... . . .. ... . .......... 408
Adunk kapcsol:l"" II lista"ewl6khOz ............................. 409
A 1 ; ~la\"ez~rI6k dinamikus fehm,(:sl;nck eloSnyei . . ..... 411
!'rogrmnN<lU v:\1asz a kijelölés m(><.!o.;ít~~r:t . . ................ 412
,u. credn~ny s7.iIrbt- a DropDownUst "cz("1i<f S<:gitM;g<-..... eI ........... 415
A mtlf*k feborolis:l egy 1cnyíl6li51~ban ... . . ................. <i 16
Acbtok 5I!tlrésc a kijelölt mt1bj abpj;1n . . .. .. . ... 418
Adatok ~l1~bc a fdhasmál6l61 a Checl<1k>xW! és a RltdioBuIlOnUst "elM6
....lj:ltso!~'eI . . . .. . .. . . . .. . ...... . "'O
A hs"wez.MtI clemeinek fclsorol.aúisa .. . ........ .
A Selt."CIL-dltem és SelecwdValuc rulajdons;lgok ~1~1lt ...... . ""
. 42.~
A bdioBuuonWt és <ll«kBoxllil ....~1it5It ........... . 42~
mo!8Jek>nbm....' Ics.treszab;is;, . . .. .. .... ...•.. . . ~24
O$.sze(ogl:tl~ . ... . . . . . .. .. ..•.... . ............ 427
K(..-deu-felelek .. . .. ....... . . . . . . .. . .. .. . .......... . ... 4~
[,m<.. IG k",~k ........ . .. ....... . ............ 428
V~ la,mk . . . ....................................... . 429
Gpkorbt ...k . .. .... . ....... ......... . . . . . . . . . . .. . .. 429
18.6rI lu 1dMk'l :1 :.111" má,ldItokkll kIPetOIItOI wm6k
A GritN"ICW k a Deuil,V""" mcz6inek 1uekinté.'I<: ...... . ....... B2
A Bil tipu"; O.WOPOk megjelenÍltsénck módia ...... . .............. 434
IliperM"lI.korlsok meg)denJtóc a ( 1)·J>C--rUnkHdd ha5DúJat!i\"a1 . . . . .07
Kc!-pck megrelení,be az InugeFreld h.L'<mlbti,"~1 ••...... ..... , . 441
Helyet1t,sít6 kat:llaerek Ju.'lt\~bl2 a WHERE sz(I"r6kifqe7bckben .. • .. «.,
AcbtJapcsolis ... . . . . . .. . . .• . . •• . 446
. 1T..... m.g IZ ASP.NET UI halo""" 24 6ra-.u
Eg}v:iinyíi éi k~ir:1n)'íi ad;nkllpcsolh .... ,.................... . .. 447
A vcztr16ll acblkl1pcso1atinak l>e;illitig . .. ..... ,447
Ós.,z.,foglaLis ......... , .. ' ... , . . . . . . • . . . . . . , 453
K~ro..u-fc1elek ...•• . . , .. , . . . . . .454
l5~kénlésck , ., . . . . . . . . , . . . , .. , ...•.... , . • . , .. " ..•. 455
,,.
lV.rtR
V~laszok
Gyakorlalok . . •. . . . . . . . .
Nftig6ci6. ....... _wl • "tzoldlllk . . .dll
f
.. ..... · .,.
111.6ra A .. 1IIrl1llylk 1ZIIbmte6I lI8'Oio'cDo lLItWtWOei
Az ASP,~U navig:lct65IcI ...... ~k 1tt(:kmL~ . . , ... . .. .., 460
'lt"t:hbe!y\lnk szerke:t<."16wk meglutirozás:o al oIdalLérképpel , .. 461
Ar. ,,1ct.It~rk~p dk6ziLése ............. . ., .... 462
OldaILc;rk~p k~szíIC~ ~ webhely szerkezete ~Iapifn ...... 464
Morz.'<3útvonal mcgjclcniLbe a Si!",Mapl'~Lh veúrl6\'cl ..... 467
A .s'{e~lapP~th ,'"Zénó n1egjCknésénck Le'II~biis;l .. ... . . .... 468
A wt:bl>ely tel;es su'l'kel.e1ének mcg;elt:níLé5e .". ,.470
'lt"ebht'I}i1nk su'fkete\ének rr~sjdenit~ a Tn,,,Vi,,,,,, ,.ezérl&.'e1 ,471
A Tn.""V.....ow v"zfrl6 megjelenésén",k tc.S\teSl;Ib:1s;! • . . . ••. • ..
Wcbhcl)'\ink 5lerltcttLtnek megjeknitbc ~ Menu ,..,zérl6>"CI ..... .".,.
· 475
Osszt.foglal1s . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. . . .. .
Kl'rdru-felc1",k .... . . . .. . , , . . . . . . . • . . . . . . . . . . . .. . ... . .. 4íKI
Jsméd6 kérd6ck ....... .. ...... " ....... . .. 481
Vilaszok .. " .. " ., , ....... .
Gyakorblok ........................................ , ""
. ' 4!ll
2O. ón ~kw III'
Felhasznil6i fiókok az ASPl\U kÖlll)'ezcthen ..... ••• .484
Tapig timog:uJi ... al ASP.XET w~-bhrlyekCtl .......... 485
fdlu~16k 1...m.lroz;isa szcn;pek szerint . .......... 489
Hozz::ífér6i Sla~lrok l<':trehol1.o:. éi )(e",:I(-se ,. . .......•.... " 491
A wt:bl>ely S~ITP·be111iLi.~i ...... . . . . . . . . .. .. ., 49.~
Ft:'lh"-Sro~l6i fiókok léI,,..,llOcls.... a webhel)' fel\ll~~n . . . . . . . . . . . .494
A CreateUscrW'7.ard vez~rl6 testrcszab1S:l . , .. , , ... , .. , ... , , .. , ,496
Elektronikus lev~1 kUld6e a fiók dkéilOh<':t kÖ\'~6en .499
Inaktív fclh~szn1161 fiókok léttchozi5a . "'1
"'"',,
Bcjelenlkere. ~ l\,'ebheJyre a Log'" ""z~'cl • , ........... .
A Login ,..,úrili
IC:Sti"CWIhha ....... , • • . . . •. .., ..•.
Kijelem.kere. . ......... . ........... . .... 504
TafUlom mcgjCl~..,í!l:5e a hitelesíLé:5i 111~poI ftIAA"f:nyében .•..... .. ,S06
ElfclCJIctt ~l~,.. k ,is5zaáUit.>:S~ ..• , ... , .. , . . . . . . . . ..• , ... ... . 507
Ós.",..,foglalJs . ,................ , ....... . . ... 509
K~rdezz-fclelck .... ,. . ... , .. , .... , .. ' .... , ... , .. , · 510
J.srnétl6 kérd8ek , ............ . , ... 510
V~las7.0k . . . . .. .. . .......... • .. .......... . .... .510
Gy:akorl>tok ........ . ............. . . . . 511
TaruIjuk meg II ASP .NET 2.0 haSZn6IIt6t 24 ÓlI alatt xiii I
21. m MmerOIdaIek haszrM\1ata II eo'sz WeIlheIYre MWnYeS t'H* LbJoklétrelJozlÍÚrll
Me~teroldalak - áttekim6 .. . ....... , .. , ............ 514
Mcslcroldal lélrehozása. . ... .. ...... .. ... ... .. ... .. . ............ 518
/I webhelysablon meglervez.!~ , . . , .. , . . . . . , . 520
Mesleroldalt61 öröklő IISP.)\,'ET oldallttrehoúsa , .... , ....... 525
Meglévő oldal be~lJíl~sa mesleroldal haSZrl:1lal:1rd , .. , .... 527
Abptnelmezen tartalom közltse 11 nle5leroldalon .. , , .......... , . 530
A1apMdmczcu "agy egyuli tartalom ha..ználalárwk be111il<4a _.. 531
egy ASP.Né·T oldalon ................ , .. , ............ , ......... 531
II meSleroldal ford~k6d rb1.enek módosíL'ii53 • . . . . . . . . . _.. 532
/I meSleroldal működb;ének kipr6b;ilása .... , . . . . . . . . ... 534
ö...,zefogla\ás . . . . . . . . . . . . . . . . . . . . . . . _. . . . . . . . ... , 535
Kérdezz-felelek ... . . • . . . . . . . .. ,.•' , 536
Ismétlő k('rd(,-ek ......... , 536
V:llas7.0k . . ..... ,....... ...... , 537
Grakorlatok ........ , .... , . . . . . . . ,..... , 537
V. rész Webf14 fot6111bum készltése az ASP.NEr SegítSégéVII
22. ÓI1I Afényképtlbum-aIkIImazjs Ie!vének aIkéSZftéSe
A tervez6i folyamat áuekim"'sc , .... , .. , . . . . . . ... 512
A fényktpalbum-alkJ lmaz:is terve7.ési .,]vánsai 544
/Iz .,]"án'iok megfogalmJzása ha:;zruílali esetként ... , . 545
Az aWuházi<;-"-1.erkezct l~rehozása .......... , .. , . . . . . . . . 547
Kapcsolatok modelJelt~ egy adatbillWan _ .. 541!
Kapcsolatok kiktnyszeríl6e idegenkuks-megszorilásokkal .. , .. 550
II fényktpalbum-~ !ka lma ;t.1s ad~ll)ázi~lxlfl szcn:plő ....... 552
c!.'}·-több kap<:SOblOk fe\somlái53 . , . . . . . . . , ....... 552
II felhasználói fiókok lábláinak ].!trehonsa . , .. , , .. , . . . .. 553
II Categories tábla lttrchozás;l , ....... , . 551
II Pkturcs tábla szerkezL"lének meghatározása _557
II Commcnts tábla Il1.rehm,á"" .. _........ , , ....... , . 5S8
Modellek felVlÍl.Olá.... az alkalmam felhasIDollói fclOlet(,hez .......... , .... 5flÜ
Ó.=efoglalás .............. , . . . . . . . . . . , . 562
K"'rdeu-felelek .. . .... _...... , ..•.... , ................. 562
lsm&ló ké~k ... , . . ...... . 563
Válaszok .. , ....... , .... . , .... _. 563
Gyakorlatok .. . . . . . . . . . . . . . . , ...... . 564
23. 6nI A fIInykjpllllum-abknaz6s eIaPjainek fel6p1tése
A~ alkaln13Ús feloszr:lsa kezelhető feladatokra .. ... , .... , . ......... , ... 566
Egyszerií mesterokk,l hozzhdá", ........... _. . . . . . . . . . ...• 567
A helyettesítő ",cbold~bk létrehozás:! .... , ........................ 568
A felhasználói fiók oldalaiIllI k l~trehoz:l5a . _ _.......... _ _. 569
FellusZlÚI6i fiók lfuchozás:ln:,k lehető"é lélele 3 látogatók sz.:ím:íra 570
A bel<'plető oldal U1rehozá...,. __ .. , . , .......... , ....... , ....... , .. 572
Uejelemkelk;; inform~dÓk felvél:ele a mesteroldall""J . . . .. 573
Jdy I r...... 1MII az ASP.HET 2.0 hIIZniItjt 24 6ra . .
A "ebe!; fl-nykfp;llbum kezd6uld:tljlklk létreho~s;, ............ . . 574
!oz. SqlDaUSource ,'e~rl6 houb.di$;I b brillíth1l ___ . . . . . . . .. .. . 575
A rl"1lyk~palbumokra mUlatt> hl"~lkoz1sok megjelenítési< .... ..• . . . 571:1
egy Grid\"lCW S<'gl~~'el . . ....•..•.. _ . . . . . . . . . . . . . . 578
A Iu.teg6ri~k kezelbe . . . . • . . • . . . .. .. ... . _. . . . • . . . . 579
A n~c1"n feLllll5Zllál6k felügyeleti o ld:olhoz ' "dIó . . . 5BO
hoz~f&é."'n"k kurl~lozá$3 ... . . . . . . . . . . . . . . . . . . . . . . . 5BO
A bcjelwt k"le1.1 fe1haszn1lók kale86ri~H$I~inak lek~!Í= _. . . . . . SSI
Új k:uC"g6ria [elvéi"l" ... . _ _. .. . . . ...... . ..... . 584
K~t~·góri.1k megle kiméso: . szclkc5ZI6c és löMse .. _. . . . . . . _. . .. . . m
ÖS$zefnlll atii> . . . _. . . . . . . ....•... .. . _. . . . _. .. . ... 591
Khdeu-fo:ldck . _ . . . . . . .. .. . . . . . •. . _. . _ . . . . . . . .. .. 592
24. 6ra ~ llltöltiJ I '*
n~ 1 1 . . .. Ittw ll-ujegJ ! I k'6A
A ff-nykl'p:lll>unl felilgyeLeti okbbin:lk b._{~;C:césc • . __ .. . . . . 596
(Jj k~-k fchölt~ a fm)-ktp:.nlUmba ............... . 597
Meglé\1i k4-:k mcgtddntbe. !i7.metiZtC:sc és töri~ ....... . . . ....... 6 1-1
A fo!-n~'k~lbum megjclC"nítbe az ÖSSle$11lO8:n6 ..,.~mlifll. . ... ..• .622
A ~lh:1.szn~6 fénrklpall>umAA:lk WJ~ . _. . . . . . 623
Egyetlen k~ & a hov.! urtozó 1l~"Zbek megtekint6óc . . . ..... 628
"''''gjegyzbek tr:isának lehet6,·~ ,l-leLe . _ . . . . . . . . . . . . . . .. . . .. 629
~ l>t"jelmtke= f"Lh:i5Ul~ I6k ,.,..:lm~ ..~ •... . ... _. . . • . . . . . . ...... 629
MegjegrzC"SCk mcgjc:knit~se .... , ...... _, .. , , . 6.l~
A "..,bhcly sttfkc~~1énck fel~ft~S<' é5 a navigkl6 mcgval6síl:1s,;o , , . . , . . 6.~
055Zefoglat1s. . . . . . . . . . . . . . . . . . . . . . . 635
Kl-roczz-fekkk .. .. . . . ... . . , .. , .. , ... _.. .. .. ... , _.,.. . 636
T_ 639
A SZERZŐRŐL

Scott MitcheR, ~ki II 4Gu)'!;l'romRolI~ .com n"v(f fltpncnI ,\Sl'/ASI'.NET-forr:lwkal


k07.zél<:.··.. 6 "''''hhely n"rke.m6je és f6 szerzője, 1998 61~ több 5z:1~ dkket ín ~ Microsoft
webes Icdonol6gi<lir61, ti" al< Irll"mel"" cikkek törnkdegén kh'iJl nur öl: könyy," is
megjelent az ASP/ ASP. NEl' l'::makOréb"n, <I nou'" IOllrst'!f ACIj,,.. S..nl?,- P"ges 3 .0
j" 21 Da)'! (Sanl.S), a l>erisnj"8 AClh'/! Sen.,,.. Fuges (O'Reilly), az ASP.NET: Tips,
'I illorta~, a"d Co(},>(Sams), aZ ASP,NEr D<l1I1 \feb Comrols K/ck Start ($:1ms), illene
a Teac/, IOllrs.eIj.4SPNET in 24 Ho"",-(Sams). SeolInak emellen foJy6ir.uokban is
jelennek meg irásai, pt'1,ulll a Micro$oft MSDN Magaz/ui'-jában. \"dLlmim az asp ,ncl
PRO-ban

Az íráson ki,iil Scott akliv résztvevői<' az ASP/ ASP.NI:.,'·relha5znil6i csoportolrnak. ts


ormg>o-""ne sz:lmos ASP,!"<TI-konferendín WI doodá<oka1. Az ASP,NIIT 6 a hozz:!
kapa;olód6 'echnológiák hawlilatál oktatja is a Kal iforniai Egyetem (Uni" cn;ity
o f Dlifomia) San megói ré5~legében_ lU irá~ (OS" I<lnítás mellett &tilt s7.oftverfejle.z_
I~I is foglalkotik. filggeden tan~csad6kl'nt, &; m~r szjrn<:>l< ke""kedelmi alblm3l,bt
alkoton (,5 dobott pL~cr..

SeoII a mítchelli 4guysfromrolla.com eimen bhe!:6 el, webnapl6jit pedig


3 www.ScottOnWrit inll .NE'l'eimentahilhatjukmeg.

Ajánlás
EzI a 1<6,,) • .,1 a Jml)rlnmoll, .~m"ek ajllu/om, mel1 0I)'a/[ fO kis/any 11011.
~ j TarUjuk nwg. ASf'.NET 2.0 ~ 24 ÓIII...u

KöszönetnyiIvánftás
Köny"" írni f~=ó dolog. Oly"~nny;r~
elszívj:l al ember ~il, hogy nem is
bh.."1!cm VO!rUI dl! feleség<ml, Jlsun múlh:,uatbn türelme é.< kibrró úmogJúsa ~kIl1
6!eszi;lZ ~leremt't. felh6rlcnü.! \'kUnunj

Scm ez akOler. 5Cm;l többi könyvem nem készOUK1cn volna el csodálatOS csal:ioom
n(,lk(ll . Megingathatatlan Szen;,!L1Gknck és biZUt~suknak k&zönherem, IlOjIy m~ at
v~lIyok. ~ki vagyok.

Ibjwk kh"ill kl\;o;tónt't.d b"dcmcl ~ NeU RCI"·e. Mari< R.",frow. Matt Pun:ell & a &.111"\11
ktadó tel)"'" 57.erke.n6i csapata.

Mondja el a véleményéti
AZ oh<uó a legforu0:<3bb kritikus. akinek a ,'ik" .o;Ii)"<' rM!kem és a kiadónak I> rop(X!nI
én~kn. Szeret ..... nk ludni, Uli! CSJn:ilunk jöJ. ml az. amin pvflhalnink. mily.", kön)l\'"k~1
kcUcne meg;..l.",t"tnünk (.,. 19y tovibb. K!rj(lk. ha ir. Iűntessc fel a kOnyv ..,..en:6j("1 &
dm~. \"::Ibmim a saját nc"'~, t<'"lefonsz.im:it vagy e-maii dmt:"1. Megjegyzbo<it ~l~flO."'n
:l.tt:mulm:inyozzuk. és to"ábbítjuk a kOn)l\' .~~r1~nek és szerknZl6Í1lck

E-maii: t ..dbackbamspubli .. hil\9. 00.

LevéL GK'g W~gmd


As.5oriiote Publisher
&.111"\11 Publishing
800 Eas! 96th SUttt
tndia~poIis, IN 46240 USA

,11"8/t'8.IZ<'s: Grt'S a kdn)V lémdjáL",1 kDpcsoImos technlhl l kérdésekben m:m wil


seg{uml, de 1000'<1bbiljtl azokal az O/m.$dszoJJJdlal n"k, ahol kéSZ.SfOggCI ,'<f/l/uoll/llk
rtljllk

1\ kÖlc!r6l!s a S~n~~ kiadó tObbi köny,,~r6l a """'. ,,oQpublishing . ,:e,."


"'eboldolon
tal~lhlltunk további inform.:lcj6k~t. Irjuk be:l Search (Keresés) mcz6be a kooyv dmér.
\"311Y ISBN szim:il (:l kÖ(6jelckkel együtt), és megjo:'lenik a kereso..11 oldd
BEVEZETÉS

Ahogy a Világháló tovább hal:ld Ostökössz<-'fŰ pályáján. <I ",ebhdyek Malikus IITMl
oldalak egy5zertI gyOjtemfuyeib61 fokozatosan ~t!alvezh"h, dinamikus wcbalblmaz;i·
sokká ~mek. Al olyan webhdyek például. mim az ,,&ly vagy a~. Amawn,cum, ><>kb!
robbek egyszen1 HTML okL->laknál: ,"~I6di alblm:<r.ások, amelyekt:t n lmem"ten
k=ztiil .. menInk d. Az adalve~r<:11 webhclyck fc1o!?pilb;<;rc mInos, "',,'Yujj=1
versengő megoldás létezik - ebben a könyvben a Mi<;rosof! wcbalkalm.náwk K"lrcho-
zásár-A súnI, nép'7.o:rú ASP.NU tedmoI6gi~já""k JegÓjabb viltozat,,! mutatjuk be.

Az IISp.NE'!" wl,:balkalm:aí"<>l< önálló ASP.NET,,-eboldalakból ~lnek feJ. AJIOSY


a könyv ~z:im~ll1n pc"ldilj:í1 ~t(ekint''C lálni fogjuk, em az ASP.N!:! oldalak k~k
l fl'ML megjelenítési....,. rdh:!Smil6ó adatbevitel fogad1s:i,...., illetve adalhlzisokkaJ való
cgyütlnulköd{.,;n, ls. l\z ASI'.NET wt'lX>ld:J.bk HThIL'jeJöI6eket ~ forclskódokal is tar-
talmaznak: a fomisk6d leSzi Id1f~I6vé az olyan fejlettebb szolgáltatások elérbk, mint az
:ulath!ízc",k adataihoz '"::116 holziftré$ vagy egy elektronikus k'\'él küldése az ASP.NE"
oldalról. A forrá.,k6dot többféle programoLW nyel"en il; megil"h'ljuk; ebben a könyvben
mi ~ Microsoft Visual Hasic nyd"", fogunk tám:lsd<odni. Aki még nem programoZOIl
VNJal Basid"",. ~agy még tdjesen ke7.dó a progr.llnoz:lsban. ~fl/l;lk ~ kell aggódnia'
az 5. órát6l keru-.., három leckét i.1; a progr.1moti~ nyd\"{:k fogalmainak. iUet'.-.: a V~ual
Basic nych"l:lfWlJk sZC"ntelünk .

•"-2 ASP.l\1::"T ~-ebolcbbk fejlesZl6il1. ml'g\<önnyitend6 a MicroS()fi. VI.>;UlII \reh Developer


n~'en közzétett egy ingyenes szerkesztŐ! - mi is ezt fogjuk haszruiJni a könyvb....n
ASP.N!:"T oldabink Iélrehozis.'ira. A Visual Wd, lk",eloper egys7.erubl'" t.,;zi mind
a HTM.L-jelöl~sck, lnínd a programkúd« l.J.nalm:lló részek megir1s.'it Al ASP.NU
old:llak Hl'ML-res-lC gyorsan dk6zílllt-1.6 a WYSIWYG (What You $ee ls Whal You Get,
'"::Igyis.azt kapod, amil láL'7.") "hű gralllru5 5LC"fk=6 segit5tgével, amelyben. külön-
féle lifML·.den>eket egyslerííen az ASP.N!:"T wchokb.olakrd hÚ7Jlatluk, 6; puS"aán néh~ny
cg.r,rk.l nintáss.'! elhe! YC:l.hCljü k.

AJ. ASP.N!:·r 2.O-S vlllozal.J. több javítást t.:Irwlma~ al 1.0-5 ki:.~hol képest. Ezzel
a v:llto2.atlal a Microsoft minden kocihhin:íl könnyebb<" !eue alad.1tvezérelt webhelyek
épit6;("l, amint azt a 13. fejezeuól keW'e, anmcorelk .... wűnk ismerkedni az adatb:ílisok-
kal együum6köd6 webhelyek épílbével,llIJ.8Unk is I~tni fogjuk. Az aootWzis-képcs
weboldalak léteho~t &eglt6 úi esz!I:ölök közlll a 14-16. fejcZ<.1ck mutatll:,k be
néh1ny~t. EleIl kívül az ASP.N1:."T 2.0 és a Visual wd, Dcvelopt:r;, bill ....ít oly~n
alközöket. amelyekkel professxion.111s. könnyen haszn.11hat6 "-ebhelyeket k6w.íthetílnk.
A 19. 6ciban ali" nézzük meg, hogyan határo~hatjuk meg egy ,,"el>hely navig:.kiós
xviii I T..... II'MIIIIlASP.NET 2.0 ~ 24 /in _

tt.~. ~ hogran hozh'llunk Ime eg)"S.:en1en mcnükd. f:mé=clt:Cl ~ IusonIók:aL


A 21. 6r.. <'gy új szoIg:1lt::lw...al. a """,,~-rokbbkbl fogblkoLik. A rne:slt."IOkbbk
~-d 3 wt.-bfejlcs:ttők oI}"20 ,,~\ k~k. ;undrekt.1.
a webhely mindt..., okblml alblrnaV\2.tnak.

KOI:~(lnk~ aZ újonc ASP.mT-fejl~6knek 5J".lImuk. igy Mm súmíl, hogy V".. n=k-e


mir t::lp;1Sl;I:iJataink II ! n"U-I('1 vagy ~ progr:amodsi nydvdd<el kapc50lalb;m.
Mi~ ~ kÖflYv v('gérc frűnk. k(,pesek lesZiInIc elk~5zíl""i saját dinamikus, auatvcl'krcll
"'·eba lblma7.á""inbl al ASP.m. ~gll~gl~\"el, ...& a 22-24. fejezelekbcn fel I.'i épitünk
egy teJjese-n maköd6lt.fpes dektronikus fot6:t.lburllQl, alTl<'lyben felhaS7.n~liuk
a koclbbi fejc7.elckben lanullalot.

A könyvben haszná~ jelölések

A r".... oly.! fogísokat mutllnak be, lmelyet az ASP.NET hatékonyabb


hasméIlItát teszik le!wtővé.

AFigyelmezte/ések adon he-/v1:etben le~6fX1 problémákr8, illetve megold6s8ink


meDékhattlsai ra mutatnak rj.

A Megjewz9sak I\as.znos kitQ6szlt6 lIIdnival6k81 tartalmaznak. ameIy.bt eUr


helyben i$ eIoIvash8tl.r1k. ele k6s6bb is vissmttHhitliillk fájLt. III nem SHfttnénk
..:Ion pibna~ _SlI"" • fljtzet lonaMl

A fentiek ~1I~1 kön)""ilnk killönbOz6 betűtípusok:tl has=il a k6drbzlelek b


~ fcjczctek sZÖ\'egértek eháhw.~sk... A kódok:tl I>%On08 néle .... 6g4 kar::tkterelc
jell!k. A helykitöItők - olyan ~ .... k. ilk'l\'(' kar.lkte~k. amel}'ck hclyt~ kblibb.m51
k"lllmunk - azonos sz.l ...~ d61e bcttlkkcl jcl"nnek meg.

Eg)'es utasítások luls:lgo,;:m hoss~ú.,k ~hhol. hogy dftrjenck kön)'\i1nk eg}"el len
sor.1ban. Uyenkor a köv"lk"ző.'>Ot c\,,~n egy " karakterTd jelezzilk, hogy az adotl
u(asit1s {olyr3t~sa.

KÍ\~nom . l~' 3 könyv oIvaslsa is 3kkn":I (;lml..,Y' okozzon. mim amil ~ mcgir1s;a
jelemen nekem - jó programmj511

$(011 M,rch<!IJ
.. I tch.1114guydromrol h. ,co-.
I. RÉSZ

Ismerkedés az ASP.NET-tel
l. Ó!1I Ismerkedés ill ASP.NET·tel
2. Ól'a Az ASP.NET pfO'dfamoIási modellje
3. ÓflI A Visual Web OeveJoper haSll1á1ata
4. óra ASP.NET Wilboklalak tHfVHl!ÍSII,létrshozása és tesztelése
5. ma A Visual8asi~ váltolÓi és műveletei
6. óra PTogramok irányitása a Visual Basic vezérlési !Qerlr.emeivi!1
7. 6r8 Objektumok a Visual Basicben
8. óra Az ASP. NET srovegmegielenllÓ vel6r1/li
1. ÓRA

Ismerkedés az ASP.NET-tel
A lecke faITa/máMI:

• 1\-ti az ASI'.:-'E1?
• AL ASP.NET használatának rendszerkö\'ctc!mi"nyei
• Az ASP.NE'!" használata el6« telepí!end6 szofwel'ŐSS.letev6k
• {\ ,NET kC'e\rendszer, a VISUal Web Ik,-cloper és az SQL Server 2005 telepítése
• l~mcrkt:db a Visual Web Devdoperrc!
• Egy egyszerU ASP.NET ""boldal dk<'s2.Ítése és megtekint':"" egy höngé~z6bt>n

Az ASI'.NET egy izgalma.. webprog!':1moLlsi (cdmológia, amelyet a Microsoft dolgozon


ki, (.,; amcly lehet(,,·,', teszi a fejleszt6knek, 1>q,'Y dl,wmiml$ ".dJOida/akat houanak
I&r". A dinamilru~ webol.dabk olyan oldalak, amelyeknek a tart:llnüt dinamikus.1n
állitják ,,16, amikor a litog.1!6k l"k("ik awkat. Al Amazon.com nyít6lapj:l péld\ul
bejelemkez&ünk Ul~n olyan könyveket mmal, amelyeh1. kif<'jczctlcn Jl('kQnk ajánl. és
ezt a korábbi vá,!..'irlá5<linkn. alap<J7.r.a. 1:7. aZ olcL,1 !dl:Ít dinamikus oldal, m'-"fl a t:lnalma
arr61 roggöen v:íltozik. hogy ki látogatj:! mcg. Ebben a könyvhen a dinamikus ASP.NIT
wchhelyck gyors és cf,'Yszeru létreho7,.ásávaJ fogklJkozunk.
41L rt&z • lImeIked6Iaz ASP.NEH"
Al. ASP.!"ET eI6u:l. \lkn...,(l dlllanukus "~rogIamoúsi technol6gijpt Acti\'~ 'ic:n..".
Pagonek, röviden ASP-~k hh'1J.k rur a1. ASI' no.::'J>ST.CfŰ ~'Q/t :I. dinamikus "'d>helyeket
fejle'l7.U'!k köri-ben, fontos uolgiluti.ook hi~nyoZI:J.k belőle, amelyeket más prog!:lmo-
l~5i nr", ...,kben megtallthanun" II Microsoft az liSP hiányos.s:lg:til a~ ASJ'.NJ::T 1,0
mt.'gjck'nt~1~"el küszöbölte ki 2002 janu~rj:lb,m, Az ASP.l><U h~rfI:Ir sok:.lk kedven..:
wehprogramotlsi megoldása Ictl, a Microsoft pedig 2005 novemb.......'ben kiadt~
~ rég~n "ln 2.O-s változatot, am~lynek let'\'c:tbckur a l<'g8Yakoribb wcbfcjleszl~i
febdalok mcgh.1t:'irozis:\ra és a1 c1,ck~1 a fd:«bIOkat l<'Cgyszenhít6 ":tOlg;\lt~t:\sok
lx-{-p ilé""", Ö5.S.ZpontositoUa k

Mid6tt aoronban neIuI:\thatn:\nk el,;6 ASP.J\"ET w~'uhdyonk e[kw,Ít6(-nek, lelep~etlonk


kcll a SI:."I' ketelrendv.ert C\'r.T' FrJITK.'WOfk), a VJSUal \\~eb n.,..'dopen o!s az SQL Sen~
2005-01:, A .I\TI frm..,,,urk nélkQl ~l 1.51'.1\1 ;, nem kq,e. működni, a \'iSU31 W"dl
Developer pedig egy olpn kiflflOlnuk ft1leSZ16körn}'e~ amdl)'CI ASP,J\1rr """,hdy,,k<-1
b ,,'dx>kblal,," hozhatunk~. SUTkesnhetOnk o!s tes7.lcU>etilnk. Az ASP1\TI ....:lXII-
dabk egyszeriI .V,Ö\<-'gfjjlok, c:mt h1nnil)"m sima $ZO\..,gszcrkeszt&."". ptkljul ~ MÍI:ro·
50ft Jegyzenömhj""d - Notepad - dkbzlthC161<. de ha ITÚr k6:zített!lnk kcrlbb.tn
webhelyeket, akkor tudjuk, hogy 01)';11'1 eszkÖZÖket ha=l:ílva. num a Mic.u\oli Front_
l'~ge, jelen~ ~·gy.zcn1bb{: tchetjük ~ fejlesztbi folyam~(ot ann.fl. mintha e<ak ~gy
oIpn ~ltal~nos SZŐ"egov.erk<..><;Z\6t h3$zn.fln~nk, mint a Jegyzettömb, Az ASP,NET
c:.<:t~ben pontosan ugyanez", hdYlCl,

A h:lmudik o!s egyben uwl......, )('fI)~ OsszeIev6. amelyt:\ tclcpítcnünk kell. az SQL .'K."T\'cr
2005. Az SQL Sen...... egy atlalbá=tslllOlO>', \.';ISt'is egy OIY:m különleges alk:tlmazi.<, 3mt.'ly"'-
ilIb«>k hat&ony tároIisára és Iekérdezé;lT(: Icrvcudt. sok webhdy tl3SZnll ad:I\WztSoka~
az e-kcn:skcdclmi webhelyeIt p&l:óul ki\'Í1d ne·lkül :Kla!Wzisoktxm rüg:títik a n~
lbr:Icet és a ffil'gjcleníleo: tetm8unl'omúd6bt. II 13. (>I"1Ió1 kezd\'e rn:I.gunk is lámi I'o,;tiuk.
hog}"n 1.>ll,"I\Unk létre. kmlezhetünk le éi m&Jo:.;ithatunk adalb:lo7.N>b.t a \ "1SUal Web
De\dopei ,;,; ASP"'....Tf okbUk segi'~'eI,

Ebben a leo::k8>en arr.. összpontosltunk, hogy mindent mcgfdel6en bclll;L~unk. hogy


nekil~lhaS$unk az ASP Niif wc:balk:Jlnl:lúsok k6zito!sfnck. IUr nem lmru: 1'OS..z
rögtön n IISI'.NIT oldalak I~rehozi~n~k mikémifre mtmu. fontos, hogy d6ször ami
szánjunk egy kil; ;00t. hOb,), clJen6riUOk, hog)' minden demet megfeld6<:n lclepitet-
tOnk ~S ~llitollunk-e be , ami n ASP.Nl:.T hJszn~lat~hoz ~-tük5tges_ A lecke \'ég(:n
clk6zitOnk majd egy igen "l:!yszenl ASP,Nl;:T weboldalt, dc ~ rbl.letekhe m~g nem
mcgyOnk bele. Az ASPJ\lIT oldalakat részletesen a kö...etkező tI'Cko!-ben, illt:\ve
II 4 6r.'ioon vizsgáljuk meg
,. óra • Ismerkedés az ASP.NET-tel I5

Mi az ASP.NEr?
TlJn6dlilnk m:'lr raj!}! , hogy vajon egy olyan dinamikus wehhely, mint aZ Amazon .com.
hogF'n működik "~;6nf,,l ak mögött' Ha az Amazon.comon vásárolunk. a meg1.átogaton
oldal unalma dinamikusan dho zik, válaw.:'lsainkt61 és a~ általunk dny...'!1 muvele-
H'kl6I fűgg6cn. l'~ldául ha rendelkezünk egy fl6kbl aZ AmaZUll .~""OlllOO. a webhely
nyil601dal1rutk ]x,töllé.sckor az oldal tetején a mi nevünk jelenik meg. lejjebb pt"dig
5O'-emtJyre SZ>lbon ajjnlal(,kal I.:llálunk. Ha beírjuk egy köny," cím(1- a kere",imez6be,
megjelenik a ha..on16 címu könyvek hst\ja. ha pedig egy adol.( könyv dnll:re kattintunk,
megjelennek a .r.ilaSZlCXl könyv adatai. nÚ5 Lltog.1t6k hom fUZÖ!t megjcb'Y·zl'se;\"e! ,
illetve egy össze5Ílet! énékdC.,...,l egyetemben. H:l a könyv('{ a bc..-v:ls.árlókosarunkba
l~zük. ~ megrendel~1 kezdc.-rK:nycztink , a \\"ebhely elkeri a hilelk'inyaSZ,'!munkat ,
m.ajd a7.1\'<Szeget r:\:remeli a Idny"nkr~ .

Awkal ~ weboldalakal, amelyeknek a larw.lm.-íl a felhaS2n..iI6 általme gadot! ad.1tok ""dgy


mi.. infonnkiók alapjln. dinamiku.san haliiru1.Z:ák meg, dindmiku$ u'Li><;/tlalaknak
neveuiik. A webhelyek keres60ldaLi például mind dinamikus weboJdalak, mivel
a I.:lnalmuk "gy~ azokt61 II kcresesi relt&ell:'kt61 fugg. amelyeket a feJhas.zruUó megad ,
mi5rbl:t pedig II "lvebkis.zolg:1l6n úrolt dokumenltuookt61. AZ Amazon.com személyI"<':'
.subon apn.lal:1i szintén 3 dirL1mik"s wd>oldabkra adn.. k példil. Az Am.non.com állal
ajánlOIl köoyvek és más tenn<'kek :\Szerint válto:/:nak, hogy ki te1tinlÍ meg az olddll. 6,
hogy kor.íbban milyen termekek olda],it n~zte meg, és mil vá~roIt .

.... Sf(ltiL~1$ u'CboIdalaka dinamikus wd>oldalakkal éppen ellcml:lcscn működn.-:k :


a I:utalmuk nem dllozik. ,\ ){Th1L oklalak I*ldiul Sl:lti\rus w~hohJalak. vagyis ha
egy wcbhdyell egy oIilith a kovetkez6 HTML-kódok irnak II:', n "ldal statiku~:
<html>
<body >
< b>H~ll o . Worl~!</b>
</body>
</ltt ..l>
Ez az oldal azót statikus. men" IálOgat6t61 és nús ll:nr'-:Zúkl61 ruggcllt,nül mimJig
"b'Y3nalt a kiml:'n<!tl:'t eredm~nyezi: a _Hello, IXbrld!' (HeUó. ,ilig') $LÖ\·eget, fHkö\""r
lX.1űkkd. Az egy<':'\le!1 alklllom, anuko, e!,'Y st3!iku. weboldaJ l."lrt:llma meg-.-tdtozik. az ,
amikor valaki áL"\.Zerkeszti n 010011. 6, a m/'x.k),;íúsokllt menrve felil1ítja a n'gi dIIOZ:UOI.

lényegében minden mai wetmely stati~us és dinamikus weboldalak keverélo:éból


épül fal. Kizátólag statikus oklalakból áll6 webhelyeket ritkán találni, mivel ezek
képességei igen ko~álOlOttalt.

Al ASP.l\'ET hasznábÚl el sai~tit\"a megtan" lhaljuk, hogyan hm.hatunk létre dinamikus


wcholdabkall.,)!\almaz6 wffiheJyeket, ehhez azonoon tis.zt1ban ke!llennünk a statikus
l's dinamikus weboldalak ki5lOlgáLl~nak ktilünlm!geiveJ.
611. rkl: • lUn8Ibd6S IZ ASP.NEr·1II

~ ASP.NET csupán egy, dinamikus YllelM*illlak tIIóáIitásk. haszn6tla16 ~


k&iil. k ASP.NET az Activa Server l'Ign IASP) utódja, amely . MICrosoft kIribbi
tecMológiaja volt a dinamikul WfiIOIdaI_ Witrl!hozásáfa. A hasonló me~ t 6lÖtt
o/yllllOkat találunk, mint a PHp, a JSP VIgV. CoIdFtlsion.
~n $lIIrnélyesen az AS~NET·et lal6iom aiegköooyabben és leghatékonyabban
haslI'1Athat6 megoldásnak - il'"
Imk err61, és nem más technok>giákr61. Al. ASP.NET
sokkal többet tud. mint III ASP; ha kOl'ábban msr ktiSlitettiink ASP pai'ill'lCstájlo.\:at.
IijOlletünk, hogy mindazt megtehe~ük III ASP.NET-beo, amit III ASP-ben. csak jóval
röviÓllbb idó al3tt, lJ9yanlgy III ASP.NET 2.()·1 változata is reogeteg Í!\YÍIMI tart111maz

--
III \.1) .$ váltOlllthoz kbpest. P6IdéU ~ jócskán továbblejleszten uerteSll4t. • Visual

HI mér fejiesztettiW:: WebaIkIImIZ6SOb mb prograffiOlási techooológijk. ~


III ASP. 8 PHP vagy • JSP segitsigevtl. • most kMtbzó két részben lArgyalt
Inyag mér ismerós lehet. H. III • htlyzet, nyugodtan ugorjunk Az ASP.Nff.mot~
il :uerktlszt6 ás al «kRbAziH tnd$lflr rffhlpkáse cfmii rism!.

Statikus wBboldalak kiszolgálása


Ha konboon m~r fejlcs.w ml1n k webhcl)'ckL1. ,... Iószín(j]~g mdju k, hogy annak OzellH' l·
1~6;l;hcz eb'Y Ir'Cbklszolgúlóm van S7.0ks~g, A wL-bk ~gM6 oI)'l1n s1.ortvcr. amely
fol)':lm..10S:ln "'"-r a bejövő U~ 1Ih',!/mdtre, 3melrek ol}"ln k~res.,k , ",mcl~k
egy ~don URL·", idnyu lnak (Iisd al U :l.b!'1I). A "·ebkillwlg;;'iló rnegviUiPlp II kén
UIU.-f. megkeresi a megfelelő fl~t, m..jd \~ killdl:lll anna k :ll üS}ftlnek, :lmclyiklGl

-_
a k~r& Melelt.

A t U
, ....
I

•' \U"

1.I . 6brI
AfótIo.' ......... A ,Iti' 'i'" A,, ~~16
olljl_ . . - - o........ 1IjIl
llezelll. b.j(Jt6
• l' l'"
l , le Uftler 1Ii'nI/,,"""
Anukor p&lául az AmaWO.OOD'IOI IJ.:OjptJU\c 1T1C'g," bön~ a;;: Arnawn,com
webkiszolg;il6j:5.hoz intéz egy- M!bn kl!relmet, ~mel}trm egy adot: oIlCblt kér. pék.lául
II /lx>oiUl/lndex.hull-l. A"I. Amnon.com "'ffikiszol~lója a kén URL-t lefonlit~
a klswlg:l.l6t fuwu6 wmíe6gépen ::llJ.lh':lIó nlegf~lel6 f.>.~,.~ , és \isslaad);: :lnn3k
t,..ulmi:. :lnll 3 l:x'ing&z6nk jelenít Ill\.'g.
1. 6ra • Ismerkedés IZ ASP.NET-tel I 7

A webkiszol~lá5 e mod~l l jc statiku.:>, nem Yáltoz6tartalmú old3lak kiswlgálás:íhoz


megf..-ld. dc ~ dinamik~ oldalak kiswlgálás:ílK)z mir lúl egyszer(!: e5lt'rinl a modell
szerint a ",..-bkiszolgáló csak annyir 1e$Z, hogy Madja a kért URL-n lev6 f~jl tartalmát
a kl'relm<'l kiadó böng.':sz6nek, II tartalmat lllOnoon semmilyen bemenet alapján
nem m6Jo,;ítja.

Dinamikus weboldalak kiszolgálása


A staúkus wd.lOld31ak csak HThIL-.:lemeket tartalmaznak, amelyek le1rj!ik. hogyan
kell m..-gjdcnnie aZ olOOln:1k a felha",-nóló böngé<7.6jél>efL A wcl>kiQ.olg~ló igy kére<re
egy~;:L-n1cn, módosit!is nl'lkfil elküldht:ti aZ uldd tartalmit a kérdlll"z6 bfmgés7Linck.

Ez az egyszertl modell nem működik a dimITÚk"s wcbuld.,lak esetében. ahol" I;,I.rtalom


l:ilogalónkl'nt különbö:d) leh~1, ~S több tényez6r61 ftlgg A dinamikus tart~llllat az oldal
fOrrásk6dja írja le, amclr~'l az 01001 lekéTtsekor \'l'gre keU hajt:lni (lásd aZ 1.2. ábnít).
A kód a '-égT'('hajtás "-f'-xlmL-nyck6ppcn állitja el6 azt a HTML-t, amely~1 majd II látogaló
böngéóz6je megkap_

---• I 'i"

, ·"'teT",

.fíjIr-..........
,.",, ' 'NjJ_
' _ _ ii . " ....
~ . k6dOI, .... OI6M!jO
"'~
.~

~.~fóiIt
,,_. .
A P'~"'-­
.... M,J 100'1< I/IIOL fÓOItI. lis
~.I/IIoL_

.... i!.';·'! ,,6jIoo


.III~~

1.2. iIbra
,j dinamikus tI'CbokIal /Orlal", .... z oldal fimrJ>k6t1jti.wk ,<'i;rt1/ajtástlml áll elO

Ez a modl'U mar alkalmas dinamikus tartalmak hoz is, mivel a dinamikus webo!dalak
val6jj.ban nem is l~eznek addig. amíg nem k~relmezik awk:ll. Tegyük fel például ,
hogy <'gy o lyan weboldalt szere1ntnk Ittr.-bowi, amely megjeleníti az aktuális dátu -
mo! oh idÓl. Ha cZI cgy st::ttikus OJdaJOfl szeretnl'nk meglenni, valakin"k m:lsodper-
cenkl'nt módusilania kdlcnc az o ldal!, hogy az id6pont fris.~ü1jön, aITÚ nyilvánvaloon
k<!pt:elensl'g.

Egy din;mtikus webolOOlon amnban forclsk6d állitja elő a dátum<:>l h aZ idő!.


ITa q,'}' felhasználó mondjuk 2007. febtuir 4--<"n du. 4:15:{)3 6r:tkor 1110gaqa meg
az oIOOl!, a k~rclem pillanat:lban v~g,..,hajlódik az aktu:l!i.'i d:ltumOt él! idÓllekértlt:z6
foffilsk6d, b viss~adja az adatoJ"n a kérelme7.ó webbönt."'sz6nek. amely így
a 2007 . febru!lr 4. , du. 4: 15:10 id6ponlOt jel/!f1il; rut'g.
ali, rész • Isrnertedés IZ ASP,NEl-tal

Az 1.2. ábr:ln láthat6 modell re"",e ntmHeg Iccg)'szenls1lcu, a "'cbkiszolg:116 ts


"dinamikus weholdal forriskódjának vt"greh"jLása ugpnis rendszerint egymástól
filggetkm. Alnikor egy webes kórclcm érkezik, a wcbkisZQIl(~16 mcgh~Lározl<:l, hogy
II kén uldalMlllikus vagy dinamikus-/:, (:s h~ i\wilrus wcböldalr61 van szó, a tana!mát
köZ\etleniil elküldi a kérdmez6 böngbzGnek (~hogy az U. ~br!in L1trukJ, míg ha
dinamikusról (p"'Id:jul ASP.l\'ET oldalról), a kiszolgál6 áudja az oJdaJ v.:grehajtáS<lnak

_.-
febdatát az ASP.NET-morornak (l~sd al. 1.3, ibr!it>.

-- .-
---
Iv. 4SI'.I«T......
• I' A" tp..,ou.!

."fo. lIlt

t~' h~__ .
·1=1' •

ol
._-_ot .
A lijlo='

",ASP.0Cf-.
....,..

POOIg ..... oloojljo • l:IidO<.


.... 1IoIIIIIjt.1fTML
._-
_-
.,i!'

HTML_
_~

\ull~
10'" _t- ,•
• .. bllilOltU6 .......
• "'1ójiI1ogf tI1Ml!OjlJ. k
~ iOI.ÍPO<i . 1ITMt.___

....,IIIIv'P • ., 11.4;'1.

1.3. Iibnt

A webkiszolgál6 II kt"n fájl kiterjew:t5C alapján állapítja meg, hog)' statikus ""gy
din.1mikus oldalról van szó, Ha a fájlkitcrj('sztés például . aspx, a H'mlgál6 t\!dja,
hogy a kC'1t oldal egy ASP. Nic,. oldal, ezt"n a k"réSl ~tadja az ASP,NET-motornak.

AJ. AS~NET·mo1Of olyan szofr.ler, amaly tudja, hogyan klll! vé~reha~ani III AS~NEl
weooldalakat. Minden webprOQr1lmllZlisi techllOlógiáhOl - ASP. PHP. JSP - saját motor
tartozik.

Amikor az ASP,NE'I'-mo!or yégrehajt egy ASP,NI:.' old~h, ! n'ML kimen"tel h01-1étre.


amelyet visszad a "' ....bkislolg.i!ónak, az pedig tov-.ibbadj" aZt" wdJC.' k"relmet ki:!d6
bóngész6n~k,

Az ASP,NET weboldalak .Ih.lyezése


Miul.án !(:(rehol'lunk egy ASP.NI:.' ~vebold:!ll, ahhoz, hogy meglekintsilk, Je kell k6uünk
egy webOöngé:;wn kere5ltÜJ. A böng<.'>71l elkUldi 3 k~ a webkiszo!g:U6nak, az pedig
továbbítja 3.l ASP.I\'ET-motornak, A mOtor fddolgoZZ3 ~z olddt, 6 visslltadj.1 az cn::U'
ménykén! kapott J-fl'1>tL-t" böng'::'SZ6nek. ASPJ",TI wcbhdyck fcjlcszt6ckor" !'::úeho-
~ott ASP. NI:., oldalakat a .wmlt6g.,p(jnJrno ment jOk. kipfÓb:1Hsukhoz p<.'<.!ig tdepiten(jnJ;;:
keU egy wcbklswlgálót.
I. ho ~ IIlASP.HET-t.lI .

A kiqolg!ik'i ldepíl~sh..~l ~ nffll ll\:lgunkn;ak kell bőljl6dnunk. ~


al ASp.NET " ..d)hel)"ek kés7.Íl~re a koo}'\"Ünkben i$ ru.5zrníll VlSu~1 Web De\'eIoper
1:Inalll\:lz egy ~8y57.ffil wri>kis7.olPJót, amcl)'CI am 1CT"I·~Zl~k. hogy az ASP-'''loT
oIdabka\ ~lyben Les7.Ielhessiik. Ahogy a k~ lC'Ck~kben I~Lni fogjuk, egy ASP.NEr
oldal !esZl~lbekor a "L.ua! Wcb De\'eloper elindítja n ASP.'\"F.T /:Jet"CIop'nem In-t>
Semm." elindít cgy bön86s~ is, am~ly kiadja 3 kttes\ 3 kÜH"tkcz6 fonn~oon:
http://loc~lhost :k,,pu/lz.ím/ ASP. NET_old"l . -'BP",

A ktrelem http,'ll.cx: .. lhost rt:szc aITÓl t:1jo!kozt:uja ~ bOngés7.a, hogya ktIelml'l


az adott sz.1nút6gép "'chkiswlg;ü6j:lhoz kel! iru"'znie, nem pedig egy mislk kisz.olg;\J6hoz
lU Imerneten A /c.tPIJszám adja meg 3n 3 Ilinpu/(ponOO. amelY'-"fl kcNSZtűl a kMIrn.!(
dk!lldjük 1>I\I1&."fl w<--bkis-,,;>lg:l16 qn' adon k:lpun kerez:tQ1 fi!!)...:li a bqö\'6 kérdmeket.
Amikor a7. ASI'.NET Ik>-dopmem WebSefvert elindítjuk. az v.I!asLt egy n}~toU k:lpuL, &
el jelenik mo..~ az URl. k.1PUBZII.oI ~~ V~I, al'. ASP ....TT_old.ol ."spx rész a tcs;,:-
telni kÍ\~nt ASl'.:>:J:.T oIdallljlne\-e.

Az ,\SP,NEl" oIdabk hc:1)t>en történő elhdyezbc, és az ASJ'.Nl' De"velopmL"flL \l,"d,


Ser.'eren kel'CloltOli kiszolgál:isa több el6nnyel t~ jár·

o ti I<!SZII!I& jlltl!ml!llm/XSoIltt ",Nk!ll is dn:gf.'z/wt6. Mivel a böngt5Z/'ít61 l>rkc7.<'I


kl:re. s.1~1t gtponkrc ir:1nyul, 37 A~P.t\'ET oldal~k klpr6b~U51hoz nem kell
k~pooJ6dmlllk az Internetre.
o GJ':''''. A helyi k!relmek t",rmé:s7,ct"-" ""öd..,n .'iOkk~1 g~bbak . mim azvk,
~mclycknck kCTeSZtOI k",U utamiuk az Imemf:'len.
o I"l/(mjiJle Mbakerr!5ésf Ichl!lóségck ál/mIk fCmlc/lN!zésfl'. Hl'lyi f~eszt~nl:l
spe<i11is hilxlk<-.....':Sl'Si m6ds=kf."[ ~lk:lllll:lzhatunk. p(>kUul sorróI5OIT.I.
,·igIg!~kedhetünk ~ kó<.lon.
o B;ztf:mságos. Az ASPJ,TI Dcvdop~m \Ji~ Sen'er c5:1.k hd}'i k:lpcsolalOk3!
engedl-I)'el., igy flf:'fIl keU agg6dnunk :l.O\I:IIl. hogy egy IO'i.'aindUla1Ú fel/l;lszn:l.16
howf"'~ 5z~zhet 3 rendslerll'.."Z egy nyitOIt wri>hl'lyom kCTCSZlilI.

.0\2: ASP.I'iET oldalak hc:1}'lxr.tooénó elhclye~nek Iegr6bb Mtr.1np, hogy a2 oldaJak:u


CSlk a SóLP! .~mÍl6g"píinkön tekintlK-tjük meg. \'"Jgyis a 11tog:1tök a szlmít6gq,..1kőn
nffll rudnak ol}'\ln URL-eket beimi a böngés:dSjOk chn.-;:lvjjoo, amelyekkel n)CgI;ll.og.~t­
tUl/Úk az ASP,NIT webheJyiinket, ll;( olY'~n ASJ'.NllT wl'bhelyf:'! ~en:,tn6nk készíteni,
~yet b:irkJ megtekinthl'l:. aki imemt."tk3p<..."'IUlau;l1 nmdclkezik. "'g}' ul?bgazdállOZ
kdl fordulnunk, \IlIgyis egy olyan <:éghez, amely . wd) ho"ting' szolg1\t:1w..'<l kínál.

A ..dlgv<b S1'.:Imos, imcrned:apool:m:d reodelkez6 wmlt6gépf:'l. üzeme!tf:'!,


amelyeken m<lg1n........m(~)'ck \'\lgy cégek elhelye,thf:'!ik.1 ...-",bhclyeiket. Ezoekm
:I sz:imit6gqlf:'ken ...·e!>ki.'l1.o1gi16k fum.ak, lIImel)-ekf:'! bárki elérllt.1 az Iml'rIlf:'Ien
kereszrill. Arrukor fIÓkot nyilunk egy webgazdjnjl. megkl!rtll'I.jük ~ céga, hogy
~'"zzen be qn' /lIr107l/iil/)~If.'l'et mmunkl'lL, A 1:Inom1nyn!v (domain name)
10 I L r6sr' IsrnerbOiIIl ASP.NEl'"

:lZa ,.,..ö\'eg, amelye! a IJIlogalók a wd:>böngtn6jOkbe beírva ell~!0g3th.'lnak a


,,·wdyünkre. CA Micruoofl webhelytnck \anom~nyne\'e ~kÜul ..icrolloft .~.
a ~zerz6é pedig '-JIÓs1.ln([leg BCOt tmi tche II I n to. COm lenne.)

TamWszetesen csak olyan tartom6nynevet vát&szthatunk, amelyet még senki más


nem Íflgy8lletett be. lia meg SZIIretnMlk tudni, hogy az italunk klWn! r.t~
szabad-e, 16togassool el ft http://_,netaol.cOlll eÍlml, ib. elmtt beIrVa
'g i6iiaük. hogy mig .1érhe16-e,

Ha a webhdyOnk<..' <'11}' ,,'ebgazdán:ll hclyC7.>:Ok tI. annak löbbek köti,!! a kÖ\'t'lkezó


el6nyei vannak-

• A U'ebhdy II)'iIt'llllOstl/l clblM6. Ha a wclJhclyet egy wcbgnda t;ul~l fenn,


bárki megtekimheti 3-tl, :iki imcmedc:lpc$Olau.a1 r.,nddkezlk
• SQjállarto",tln)~,CI(1' has::ntlllwl,mlt. H.:l bq:gyeZlClOnk eb'Y lanom!nynevet,
ami a "'e"helyünkre mUl3t, a 1::<ln8:IIOk egy olpn em'SZCI"Úen megjegyeWe!6
nb-en keresztill &hetik el n oldalainkal. mm! a ........ webhely .COlO_
• TeJjer mértikb,,,, a Ii'Cblwly leJipírésL'ire ~nlOSithal,m' Wchl(c~roIg116t
!e1<..'P'1enl. biZ!oru1gi ja, 116csomagokbl eU1!ni, a I3nom!ny~eket megfelel6cn
beállítani stb. meglehd6scn Ixmyolult feladal, de h~ eZ! egy webgald:lr.l bíz;tuk,
ez a srolg:lhat1s benne v~n a7. árhan, igyawebhely elk(:~1.ílb&e ösSZporllO-'.olt-
hatunk.

Több BZInt'(i webgazda céo köziii villaszthatunlt, amelyek teljesen IIt.ó iron, eltilTÓ
sebemp ib elténS ~t!SSaI ~ak mIis-m6s ~II. A kembt
ll'I'f oly.., WebheIYen ~ kezdeni, mint. http, IIWIoIV, topho.~ •. COlll vagy
• ht tp, IIWIoIV. hOlt index. com. Em • \\1bheIYek esoportosltjjk • $ok el:Bl"
wqazGa e~, [IlY ll'I'f adatblilisból kert!Shetjük ki lnekiri; m&9fe1e16 _on
megtelel6 ~ás~at nyú~Ó c'get.
Ha kiYálasrtonuk Bwebgazdát, amelyet meg szeretnénk blzni, léjljOnk kllpCsolatba
8 céggel... gy&6djiink meg róla. r.ogy tllmogatják ill ASP.NET·lejles.zlúl.

H~ ~ webganb szoIg:lltatisa mir üzemel, ) wd.>Oldal~inkal r"liölthe!jOk "1T:l a wmí\6.


8~re. amelyik a roólcunklll tlrolja, ~ ('z ulin bórki mcgtckinlhcti azokal a:t Int('lTlC!en.
H:I feltöltOnk I*l<'üul egy ~.hun n<....,11 f~jlt, és a tanom:inym""ünk
bobahomepage • org, az l ndlX. ht .. oldal n>egtekintéséhcz ($;lk annyit kell beírni
a böngés7.6 dm.si\'jjba, hog)' Mtp: 11_. bob,hODepa!le . org/lndC'lC. h~ ...

A magfelel6 webgazda megkeresése


Miel6n nyjlll~nk egy 1l6k0l egy webgazdjn~1. olyan $ZOIg:\JtalÓ( kell keresnOnk, akik
t'lmog:l\pk a:r; A$P.J\TT 2.o-s dlloz:atát. \'(:k.'1l1ényem szeriru alegkonnydx...:n ugr
bukkanhatunk egy l1ym~. ha mcgn(:uük a TopIIO&S_comho:r; \";Igy II Host-
l . ón • lsmerbd6s II ASP.NEr·1II 111

Index,comho7. ha:sonl6 ,,·ebhelyekct. amdrek löbb ezer webg:lm céget sorolnak rtl.
Ezeknek a " .. ebhtlytknek az adalh.'j;W:íb;Jn killOnfék fellélelek ueriru k~nk,
I*ldJul n~dh:lljuk. mennyil ~.gyunk hajlanUó:Jk h:i\"Of1U fizemi, foIo:Ir..iz.il~g ~lyik
lerulet \.gy ~ppcn milyen "ebkiszolg~l61 1't.'nds7.er ftlel meg neJrunk, ~ így l",?obl>.

A W.. bg3~k ll.:m)IlU n(,hány doIl1n61löbb WZ vagy több ezer dollá rig leljtd6 d íÍ"i
~~moIhatna k fd, II nyújtott sroI8~ltal~sokI0l ra~. Á1tal1bóln belépési dij is \'an,
am; 25 ~ 100 doll:lr közöt! m07.0g A webh.,ly clhC'lyez~nek költsége me!Jel\
:I t:lMom;\n'fl1 ~ bejegyzéS<.' is pénzbe kerül; r."nc;b7.eJ"Íni {:Vi 10-35 doU1rba.

Ha ki\-:I!aSUOflUk II wt:bgazdát, & meggy6:t6dIOnk róla, hngy I1mogatjjk a z ASI'.NET-


(.:jICliZlé.'II, I~nk kapcsobiba ,·.,Jilk, b. ~ilnk e\6 "gy roókr:l

"ti"..1 mU'ld:l hclylleT1, mind a "'ebgazd1n:il ~ e!J)('I)~k rroegvam1:l.k a 1'1'\;183


dOOyci, , k.'gjahb. tu. eg}-s=e mindkét rncogoIdiSl alkalmazzuk. A f,-;leszt6t, lt'$llC'lbl
és hibakcn:,,(."'iI Í"\-..,;<)h helyben. a Visual Web o.".·clopcr be<:piteu w,--bk i.,..zoI~l6j1n
keI'CSIIO I \'~g"7.nI. és ha d készOltilnk:l webhelly..l, ~ kkor feltölt.,ni azt a "·ebga7.d~n!i1
nyitott fl6kunkból. Igy II fejlC:S.Zl{'S.i kö rnyezet is idc~lb \cSl. 0.; a w"bhelyünkel is b:l rki
elérhet!.

Lehet a satát számftógépem 8 webgazda?

Azok. akik jlandó sd!lassávú, ~ t~mes 'O'3\IY DSL kapcsolattal, iletve


$ tMitU$ IP cmnellll!ldebmek. sej'l mmft6g6pUkr61 is iil'lIm.rtethetnel
w.bheIyel, H. m 61 I Iehet6s6gr61 többel szmtnW. tuOOi, lépjijnt kapcsolatbe
IZ i'ltemetszolgíltatónkkal.
Ha nYMnOS webllelyet szeretnénk, uerint,m c"smUbb 8fl'{ 'N'eIlg~
10r<lOOI. SajAt szitmft6gépűr1k beMlitAsa egy nyi/Y6nos webhely íizeme~elésére
bonyolult. is ha nem megfelelDen végezz\ik et biztons'gi rések mil(illl1aln/li;;
Brendszeren, ametyen blr8sztül Yilsz6tyet IlSelkethtnek ránk. 2001 júliusában
péld'ul a CodI! Red new intemeles fi reg lNorsan e~trjedt IZ Intemeten, ~s
megfert6tte BMic roso~ állllllNérton webkiszolgMótBt. lA féreg olyan program,
amely /inmagát megsokszorozva teri&d sámft6gé!lts I1616zatokon keresztOl.)
Ei. fértg a .HELLO! welCOlD(! co Ilctp, 11_,WOrID.com! H.o.cked by
CIlin. . . ! • szöveget írta 8 wvboIdaI8krI. (A codt Red féregról
' Ilttp: 11_. ".,rt,arg/a,willOri.a/CA·2001·19. htal. címen
k~ további i'lfa0nki6l) Ha saját Sl6rnIt~ rt'(iIV*IO$ W~I
iilatneItt!iri. etnu: hiSSCriI tírndSOknIt tehetjl& ki \JIIIgII'Ik8t


12 11. r6sz • lsm8fked6s az ASP.NET·teI

A v&SZé1yl csöl\kanthetjuk, rn. beSll!leuiik a legfrissebb biztonsági jllVÍtócso-


magokat a MicrQsQlttól, illlll'le ha tájlikOl6d\rll:. arról, hogyan védhetjük meg
legjobban a ren~erfinket A webgazda cégekné l azooban profik doIgcmak., akik
valószinűleg nagyobb tajlamalanal bírnak a webkiSlolgálét baáll~ása, Ülemel.
lelé-se és biztositiisa terén, eIért ell Bfeladatot érdltllleSebb rájuk bimi.

Az ASP.NEr·motor, a szerkesztő és
az adatbázisrendszer telepftése
Emlt.k"77Ünk vissza: a böng.:'szó nem lUdja. hogy a webhelyOnk ASP.NEl" okblak:tt
használ..:os ~·L ncm is érdekli. A webkisrolgil6 nonoon ~k akkor képes végrehajtani
aZ ASP.NEr oldalakat, ha telepítjük az ASP.NIT-moton, men. a végrchajclst val6j1oon
eZ a rlJO{or végzi. Az ASP.1\'ET-motor tel"'Pitéséhez szimltógépilnkn<'k a Micr050ft
Windows 2QO(). a Microsoft WindoWll ),.""P, a MiC"f"O!lOft Windows Server 2003 vagy
a Windows Vl5Ia ~ndszert kell futt.:ltnia.

Ha a Windows 2000-nél korábbi Windows·változatot N$Ulálvnk, például Win·


dows NT·t. Windows ME·t vagy Windows 9B·at. nem lejlemhetlm ASP.NET
alkalmazásokat a ViSllBl Web Developemd.

,,"cm cJ~, ha a 5zimíl6gépünkön a megkiv1nt of"'nici6s rendszer fut; mielőtt mllnk1ra


r"gl ... tn.:lnk n ASPJ'IET-<et, lehet, hogy további Iépé5eket is v':'g~ keU hajtanunk.
A W,ndO\\'li Xl'·t haSln.-\16kn.1k p<"ld-\ultelepíteniiik kell a Servkc bek 2 (SI'2) j:lvítÓC50-
magot is. Ha nem ludjuk biztoSan, hog)" II ~ndszcn1nk megfelel..., a kö\"ctdmén)'Cknck.
anól még nyugodtan ""-1lkisé~lh("[jilk II telcpíté-sl, mm a teleplt6prt)g,...~m úgyi., nb'}'<.-",·
mezte1:. ha valamHyen összet ....'ÓfC - pdiliul a Service bek 2·~ - ~ 5ZÜk<t.g van.

Ahhoz. hogya kon}"\' ASP.NlIT-pc:ld~il dkí:sÚlhcs..,ük. három OOlctC"\t>t kell Ldcpítc-


nünk. Az elSŐ" .l\'ET F"lJnt:work no:víl kCr<:l",ndsz..-r. amely n ASP.NET oldalak
fddolgoz.'is!ihoz 5ziik~ge~ alapkön~"\'I:í,...~kal ~lrt<llmaua. Az ASP.NET-motor is ennek
a kcmrendszcrnek II része. A második a VISual W<"b !)e,·"lop<:"r. amely az ASPl\'ET
o ldalakkal val6 munkához II legalkalma",j..b szerkesztő. Végül teleplt<"llünk kell
az SQL Server 2005 adat!JjzÍ5moton is, a"",ly~"l a 14. óril61 kezd"e folyamatosan
haswálni fogunk.

A három összetev6 egyetl<"n telepit6programon k<"resztül td~l'íthet6, amelyet megtaJ:\l-


halunk a Microsoft webllelyén, es kiírhan,nk CD-re. Ha 19y t.."zünk. a tdepítés elindí·
tásához c.'i3k be kclltl·nnOnk II CD·I a számítógép CD-olva5Ópha, és rrn\ris nwgj<'lenik
II telepítőprogram kczdú ktpcrnl'6ic, amelyet az 1.4. ~br:ln láthatun k. A köv~'"lk<'l6 k!'-t
abl.:!km a Next (T""ibb) 8um1x>I ".·...:gnyomva ltpheliink.


1. 6rIi • lImIri::edM IlASP.NET-tel 113

'- 1.4.6brI
tll"I<'PfI~
Q CD-l,.
""Skczdéséhez heI) ..;u,jk
udmil~) CD-JlQ.\I. /lJeghojl6jdi>«

Ha a Slámll6gip(ri. nem tes.! eleget , követelményeknek, PéldáU Mm \elepkettük


a Itgfris$ebb jlYftócsomegot. 8 teIePífÓPrOgrar tijékoztat a PrObIémirÓI. H utas/.
láSOlliI is .ut. hogy mi'nt fTisslthetjUk I rend5lIIrt. Miut6n lrissítanii. • OéPtt.
funllS$\lk ujra Ilelepitöl

A Microsoft a Visual """h Developcr- slerk=61 ASI'.NEr ,,'Cbhelyek kffiít{-s(:ht:1.


l"r",,~l". e;ren a CSOIn~1! t:ln3hn~zza a .NEJ' kereuen<bz"n is. amely 'lZ ASI'.NET
wd)!lel}'"k fddoJgoz.1s:1h,:>7, ~i~ges alapkönyvctrJkallan.;,lmaua. Ezt a kerelrends~..ert
~ Visual Web Devclopcr lelepít6je aU10UJó<tikus:Ulteiepiti r;7.en kívíil k~ núsik C!lOONgot
i.. \-!ilawharunk. amdy.. ket az \.$. :1bcl.n l:1thatunk.

---'
,
__
__
._.. _ ,---
...._-......_--_ -
............ _
. .....--_-...
_ . - ....-
'"

_._------
.----'-'--
"".,~,

,_... _-- ~ -

... _--. _ ... 1.5. In


G~J'ltI.j, "'<ll nJIa. hogv QC: SQL~""
XlQj EYp'_ E;htiQm tc/cpilftlk!

AZ első viLtsLLhaLÓ k~it6 (::;<)(lUg a Microsof't M.~D~ 2005 Expres.s Edni"n AZ MSON
~ MJcn:x;o(t t~kdolrunlL."Jjd6k:at, m1Isz.aki k.icl5ok:ll, k6dpt<ld:\k~1 és ,1Úg6f.ijloltat lar·
1lI1n...:W gpljteméo).... jltintlt:'L mt'gWilh:ltó a h t;t;p , 11.dr. . ..ucro&o!t . ""'" elmen, deo
<:nICmeS helyben is tdepit~'f1i. ezén j;t\'aslom, jdOIjUk be ~ liOW t.arto7h~.
14 1Lmz • lIrnerked6S ll: ASP.NET-tII

f\ rrdsodik v~bszthlllÓ C!IOITI.:.g II MicTusoIi. SQL 5<....... .,,- 2005 E:rpn.."SIl Edition. amel)'
<:gy in8)~ ad;1I1~zismolOr 12 II C$OITI38 nem klXde7i'i. tehát a \hu,,1 \\'eb ~~
S1k~ ~ az SQL s.:n..,r 2005 ~1k011$. do: könyviInk mD:xtik kiébcn er65m
t1m:a..9.kodunk 1"1, ez.m jobb, ha bc.,cIOIJilk en a ~~et is, CS tclepilj(ik a pI"OI!t'amot.

_.-
......... _.... -
'-~_'''.'''!'.!o-

._-----
._----
. -..,-, ~

- .. -----
... _-_ .. ,~ .. 1.6. ibrI
Adju. mq a .....pptJf. amelybt /d'pflffll
.".-.info'. a
Ilru<ú WOO lJftriopf:rt!

f\ kÖ\"etkezó ablak (lástI aZ 1.6. ~br:l.t) a~. a hd)', ~hol ""'lpdh31juk, melyik mappáoo
'l.crétn6Jk telepit"nl a VLSU31 \\"eb De\""lnp<'1t, ilk1VC 3 többi vibszton összetevŐI., {:s
ln Jjthatjuk a ,züks"llcs J.... nIeztenllet n~lIy>!ig:Jl
is. MiUlán 313p<b:1n eJJen6ti7.tOk, hogy
~ megfelcl6 <"''IOmagok.1tleJepltjilk, kattintsunk az Install (Tckpítts) gombr~. f\ teljes
tdcp;tts n~h1ny perce! ig"'nyeJ. Kötbe:-n /1!J)'dclllmd követhctjilk. melYIk c.';()ffi;OijO!
telep;t; ~ppo!1l a program, k J:j!!uljuk II t.:'Ijo<s tdepltL"Si folyam:u d6rchaladisit LS
(lb!! n 1.7. ábr.1I).

_ _N __ ~ "_

------
.. - --_. ~

----
'*-------

1.7. ibrI
Kó<"..,1* fJf1JoNm-' a "","pílh ttWlreIit!
1. 6ia • IsmerUd6s az ASP.NEl·I8I I ,S

Ismerkedés a Visual Web Developerrel


Amikor a telepítl's bdei<-'z6döu, wnjunk egy ki. idől a Visual Web Oc"el0p"'rrel való
ismerh>dl'sre. A progm'" elindít:is.lhm: v~la'''7.uk a Start menG Pr<>gl'Amok al 111<-"nGjl~1I'iI
~ MiC1'05Oft Web Developer 2005 Expres.~ Edition pontot. A prog"-'''' b'..'löllésckor
nll.:gjclen6 ablakO! az 1.8. ábl'd mutatFt.

At _ _ ""'" _1P'*'iO 1.,0106"'" .. - . 0 1


_1'OIOIIt _ "'-"_

1.8. iblll
A H.w,1 Web Dc<'CIopcr b(,JtJJtésckor mcgj<-I<",(f Sum I'ap,;!

Amikor elindítjuk a Vimal \\7eb [)e>·elopert. eI&Lör ~ Start Page jelenik meg. ELen
a kezd6old<llon a bal felső sarokban I:it lJatjuk a !l'gut6bbi projektek listiját (Rea:nt
Project,;)' alaIta pedig a Getting $L:Irted ablakot. amelyben a leggpkoriOb feladatok
d"égzé5ének módj~1 i5mertet6 oldalam val6 hi"atko:cisokat találunk . A jobb oldali
oo.z.Iopba.n a Micro.o;oft MSDN' webhelyén közútett legfrissebb cikkek listija látható.

A program ablaJcln.1k bal oldaHn a Toolbox (\'ez<"rl6k) pal<"lta helyezkedik cL A Start


Page megjdené5c:kor el a paletta ilre~, dc amint elkezdllnk dolgozni egy ASP_ N!;;,
oldalon. webes vezérlők széles dlasztl:ka jelenik meg r:r.jL:l , amelyeket elhelyczhctunk
aZ ASI'.t-'ET oldalakon. CA Wi-1.>es ,·,-·zérl6k mibenlétével é~ céljával a kűv<..1.kező 6r:lhan
foglal kolunk.)
16 11.1lÍal • J~edés III ASP.NIT·IBI

A progr:lmabl3k jobb szélén a Solution Expl<.>te, G\fegold~stanúz6) taUJható, amel)'


a Start Page esccében szintén üm;, de ha reoltil nk VJgy létrehozunk "gy ASP.NEl"
",,,uhdYl'l, iti annak fá~jai j<:l<,nnek Jll<'g, köztök adallXtzisf~ilok, HTML oldalak,
ASI'N ET oldalak. képf:ljlok. CSS fájlok. bcálHtóf:ljlok, ('$ igy tov:'ibb. AZ ablak jobb
oldalán wUlh.ltó a Solution Explorer mclk'u a DataLYdsc !;xplorer (Adatb:'izí~llóro) is.
amely az adon proj<'kth<,z tartozó a(btbMisok.1t mutatja, I"s amelynek 8egítségével
"lá"t al adatMtisokat lctll'hozhatjuk. s:&,kl-szthctjük <'s lörölhetj(1k.

,.
UI ASP.NEl webhely létrehozása
Ahhoz, hogy egy ASP.Nk.T "'eboldalt létrehozhassunk és dolgozhas.~unk vele, el&;7.6r
létre keU hoznunk egy ASP.NET webhe lyet. Erre a Visual Web IJ<;-veloperhen több
módszer is van. V~\aszthaljuk a File (Hj)) menü 1':ew \X'eb Site «(Jj ,,"ehhely ) p'll1tpt,
vagy bttinlhalUnk 37. eS7.kö7.tár N"w "eb.,ite gombi~r:I, de bUinthalUnk a S1Jr1 Page
Recenl PmjecL~ ablaklban a C,eme W"b Sile (Webhely \éuehozjsa) hivatkm.ásra is.

B:l.nnelyik módszen \':ilaszljuk is, megjelenik a New \l:'eb Site párbe'7"::"<.bhbk. amel)'"t
az 1.9. ábrán láthatunk. Houunk is létre most egy webhdyrt. Egyd6rc ne aggódjunk
mllial1. hogy nem értünk mind"" in található lehetőséget , men réS11elesm is megnl'7.-
zük őket a 3. órában. A Templates (Sablonok) bdllilást lugyjuk az ASPNET Weh Sile
lehef<5ségen. a l.oc:llion (Hely) lenyíl6 liSl~t File System (f~ilrell<i.~1."') értéken.
J Language (Nyelv) len),1ó IL.Lit pedig VISual Basicen. Az egyetlen , amil meg kl'll
változtatnunk, a webhely helye: tegyük a webhelret egy Kyl'i rstWchsi te nevű
mapp~b:J aZ ,',5l!alon.

-,. ,-- ..........- .. -- ..

---
-- ------
>-~-"-"'+
..
1.9. h
!l<>Ulmk /,</,.,. "8)' új
AS/~NtT uclJlwly(.'f az
M;ztt,} 'lO' m'<PiJájiilxm-'

Amikor új webhelyet hozunk létre, megadhatjuk egy m~ nem létem mappa nevét
is. Ha ilyen mappanevet adunk meg. III OK-ra kattintva a Visual Web Dawlopor
magtérdazi, hogy automatikusan IélrllhoUll'\I sZ<Ímunkf3 a mappát.
l, óra • lSrnerUd6S az ASP ,NEl·tel 117

Miul~n lt:tr.,lIuzmk az új ",ehhel]'.,1. a k~pemr6nknek az 1.10. 1br1hoz hasonloon


kell kjn~znie. Új webhcJy ké5zítésckor a Visual \\~t:b Developer ~ulolTllltikusan I~hoz
egy AppJ)ata nCVll" m"pp1t, egy Default.upx nevll ASP.\'.TI oldalt. ':5 egy "-cbes
bellJít;\SOkal tartalmazó 311ományI (web.<;onfill)' Ez a m"ppa ~S a két fljl megjelenik

--
~ SoJulion J::xplorerben_

.......... _...
•. '_.1" ,'.:0.."
,-, ..
..
__ ....
.:,,-
---
-- _._._
'M

--.,,""-,..._..••_-,•....•..
c,- .....

-"--
,.-
,~-

0-
",.. .. .... '

••
, ..
-
.-.----
..
••
-
M


"


1.I0. /ibra

. - . ,- ..... Az uj ".:McI)'
,,{.",,-hozá< .<111"•
", •• • " Dl'[""{I,mpx
ASl'1\U ű/dnl/(l{

Az automatikusan létrehozott Default ...."px oldal megnyílik , ob a tartalma megjelenik


a fÓ'~blaklY~n. kL ASP,NIT oldal jelenleg még csak m 'ML-I tartalmaz, de ahogy a kés6bbi
k",k'::k!.>én látni fogjuk, ~ I-ffM[..,en kíviilaz ASP.NIT oldalak webes l'ezM6ke! és kiszol-
gálóuld"li fOfT'ásklxlol i~ magukba fogblhatnak. Az ASl'.NET oldaln.lk ezek a részei
jt'll"rmocn k':'''l kmiln fájlha kerülnek: az egyikben lesz a lITML-kM ~ a webes l'ezúl6-
ket leíró re,'zek, míg a núsikban csak a forrisk6dol: találjuk, Valójában ha ~ Solution
Explorerben a Detault.aspx elem metlen; plu~~jélrt: bIliniunk, kilhaljuk, IlOgy van
egy másik, bcig"azotI fájl is. Default ,aspx . vb n{-v",,: e?; a Default .... spx furdsk(x1·
fljlja,

Ne aggódjunk. ha elsóre túl solnak találjuk ell az in!ormáci6!ömeget. Ennek az


óráolll; az a cÍII}g, hogy áttekintést adjon a Visual Web OeveJoperr61. A következő
három órábllO részletesen megnélz(l az ASP.NEl oldal. részeit, és a Jétrehozá·
sukhoz. illetve kipróbáliÍsu!dtoz szükséges lépeseket.

Amikor ~l. ASP.NET wt,'buldalnak a HTML-t ~ ~ webes l'etérl6ke't tanalm.1ZÓ re5~...el


dolgOlunk, kél n{,~el!ill n:-nddkez{,sünkre. Az. els6 a SOUfCC (Forr:'\s) nézet:, amelyben
3 !-fn.1L é,. a webe.. \'e~ri6k kódjá! Uth..1tjuk, a m:lscxlik pt.-dig a Design (T<,IV<''''ó,I néz"l,
:ullelybt:n eg;-'$Zt:r\lbben határozhaljuk meg az oldallaM..ollmát. A SoufCC néz"'ben sajjl
lBI I. rész· IsmertedH az ASP.NET·leI

kezúleg kell begépelnünk a fITML.kódol, míg a Design nézeth"n a I ITML-clcrf\ekd h


3 wd:>es vcl<':r16kCl a Tooloox p;llcttáfÓl húzha~uk az oldalra. A kf:t nézel kÖl.ön
a főablak alján u.láli1aI6 IX,,;;gn {os SOI.m:" gombokkal v:.!tll:ltonk.

A Solulion Exp]o",r 3hu aPropenie, (Tubjdonsilgok) abIakOI laláljuk. Ez az ablak


n okl:.] b..:"il]líll",IÓ l1.Jlajdonságail, illetve az éppen kijelölI HDIL·elemet vagy we~
vezérl61 muI3Ij ... Elt aZ ablakot mcglcl'L16scn g)~~kr:m fogjuk hasutálni, amikor
ASP.f'<TI weholdalakal kb.zílÜnk.

A Proverties, 1001OOx, Solution Explorer és Database Explorur ablakokat áthelyezhetjük.


lia a címsorukra kattintunk, és ill egérlel elhilzruk oket, a szagélyükre k<!ltintva pedig
átmératezhe~ük IIZ a~akobtt. Ha vé latlenül a cfmsor szélén ta~lható X·re kattintva
be~ámánk valamelyik ablakot, HView (Né~atl manüből Mmtikor visszatehetjGk.

Egy egyszeru ASP.NEl weboldallétrehozása és kipróbálása


Ha ki szereménk próbálni egy ASP.NET "-'eboldalt, egy hf>ngés~.6\"d kérelmel kell
iméutünk az adOlI olda lI kiszolg116 webki5zo1gáI6hoz. PJÓb1ljuk ki mOSI a
Defau l t . aspx okl:!lt! MielÓlt a mnban nekilámánk. fel kell I,illenünk n~mi
ImtalollUll:llaz oldalI, mivel a HTML-kód jelenleg még nem jelenít meg semmit. ha
1...:l:ÖltjOk egy böngész6be. SouI"O:' n~zel:ben :íU;Unk a kun:orral a Default. aspx oldal
<div> és <I"iv> cimk~; kÖl~, é.• irjuk be a kövelkez6 s.livL"8et,
~hl>Hcllo, World!</hl>

El< a .1 Idio, szövegel jelenili meg, nagy mérctű" bertíkkel . Miután I"-'Írtuk
"~orid!"
3 fenti szüveg<.1. mcnjunk ~ Debug (Hibakercsts) menObe. t5 v:\];l55zuk a SUrt ""I!>out
[)ebugging (lndítá.-. ),iooken.'.s(os nNkűl) menilpomol. Ezzel elindítjuk az ASP.t\"ET
Development Web Serven, illelve a számitógl'p a\apéndn ... zeu böng~sz6jét, amelyet
a prog,..~m ~ http'/llocalho"t,kapusz<Ím/MyFirstWebsite/Default.aspxeimre
mln)'Í1 (lásd az 1.11. :ibr.Jt). Az UR!. kL>p'LfZ'am rbize att61 függ, hogy az ASP.!\"ET
Development Web Se,."er melyik kaput ~Ias.ztia ki.

0 . 110, WOliu ~

1.11. libni
.1 Vef",,/t·(I$fAX "Ifj' b(J,W-:m'ibo!" ""'R1<*1'"",,
1.6nI • bmerUI:In az ASP.NET-tel I 19

Ez 31. ASP.NET oldal ncm lúl érdeke,. nun·j a lanalma. statikus tcrrn<':szctí'l, minda20nilul
j(~ szemiElleti, hogy egy ASP.l\U oldaJ meglckinlbéhe2 el kell inditammk az ASP.l\'ET
[)M.·doprnent Web Servert, és le kell kérnünk ar. old."llt egy böngéw'ln keresztül.
En automatiku8:1n megtehetjük. ha a Dcl.>ug menÜ Sl:an Without Debugging pontját
v1bs:7Jjuk.

Most bizonyára azon gondolkodunk, mi lehet az a hibakar8sés, és miért nélkiiki


inditottuk el a kiszolgálóI. A Start Debugging (HibakelBsés indításallts a Start
Wrthovt Oobugging Jehetóségek közötti különbségeket a 4. 6rában tárgyalj uk,

Osszefoglalás
!'>ta lénregHx:n mind"n ",ehhely tartalmaz ilyen ''agy olyan diromikus wcboldabkaL
Minden v.ebhely. amely JdlClővé leszi a felhasznál6knak. hogy keressenek a wcbh<,Jy
urralnlában vagy a termékek kÖZÜli. il letve testreszabják a v.·eWlely t:malm:\t, dinamikus
természe«I. Dimmikus oldalakat reng"'-<1I t<:<:hnol6gi~val ko':siithetOnk. és ezek közül
az "gyik legjobb az ASP.t'ET.

KÖlcrtlnkbcn azt fogjuk megvizsgálni. hogy mikém hmhatunk Ján' ér<:kkes b im~'I'3.kliv
ASI'.l\'ET weholdalakaL A példákat ~ Microsoft ingyen<....; Visual \l:'eb Dc\'dopo.:1' s7.<:rkes7.-
16j<'vel kb"ítjük el. amelyel kifL'jeR'tlen n ASP.NET wcbhclyekkcl való munk~r:l
telvevck A fc;c~~'tLx:n mcgnE7.lük, hogyan telepílhCljük a Visual Wffi De\'elojX-'n, ilk't\'e
a könyv példi,hoz szükség"" kél kiegé$l:Ít6 ~zetcv6t, a .NE'!' kcretrendszerr 6; a~ SQL
Server WO'Hit, végül pedig megismerkedtünk a Visual Web D(,vclo(X.'f fclük:t(...·t:l, <:5
el kf<;zítettük els6 ASP.NET v."eboldaJunk:ll. 3mcly~'t kj ~~ próhlllunk egy bi'mSész6ben.
A 3. (rlban sokkal részletesebbC'n t:lrm·a1juk a Vjsu~1 Web Developer környezetet.

Csak most kezdtük meg kaJandozás<Jnkal a7. ASP.l'lET világában. A következő 23 órá-
ban kh'\ll-bel(]j m,,&,-'iZ,sgáljuk "zi aZ izgalma.s tedmol6gi!it. o':s vtgül e!ko':sz.ítünk egy
tdjet; ménékbcn mUköd6képes t'leklronikus f~6album-31kalmazásl.

Kérdezz-felelek
K: ,'rlI afő klllt:mbség (/ S/Uli/ms é:< a dinamikus U'eboldalak k6z6l1l
v: A stalikus wch.,ldalak unalma nem váltOZIk, mig ~ din~mikus wcboJdalakl:
3Z oldal minden lekérésekor más ichet. mcn 3Z oldalo.sak "kkor jön lélJe.
A dinamikus i:>rt.1Jom jellemz6en a felhasznlil6 ittai ml'gauou vagy egy
~datb.1ziWóI kiolvaSOtt adatokból, V'dID' a kel16 kombjn:kiói~hól ~11 e16.
A National Baskctooll AssOCiation (www . NBA.cO!!V hi'"alaJos webhelyén I*lltiuJ
J:íthatjuk a csapalok mérkőzé..,i\, a7. eredményeket. a játékosok stati5ztik:íit. és
igy tovlbb. A wd""ldalak a tartalmukat eg}"sl(·n1cn ... gy adatbázisbóJ veszik,
20 I I IÉ • tun.bd6f II ASP.NEr·IIII

amely mindrn mérk6ús UI~n fri.....'Il11. Az olpn k~orok , minI ~ Googl~,


~ dinamikus I.3rt.:11,",,1 webhel)"lldub;\tiwk és a 1:lI(>g;lt6lilI.31 borirt k.:fC!likifc)(:_
res Ó5SZe\·et~'el ~I]rtj;ik dó.
K: SZÓ Lull r6la. 11Og}' u Ils/lal treb lXl'dopcm:t DZ ASP.NEl' 1)clJcloplllem tr•."
Sen"<-," fogjaM hasznA/ni. 1,4fallck mds u'f!bkis..-vlgáló/ fctld$zerr.-ll ls uZ tlSPNF.T
olda/lik /ruzoIg<.l/dshm?
V: Az ASP.NET I)e>.'o:lopmc nl \"("~-b Serv~rt kif~i<'zett~n ASl'.NhT 2.0-$ ",~boldalak
he!~i teS7.lo:l6be 1~'fVCZl~k. J la a 'I'.ebhel}ilnket egy wd'lflWa ~gn~1 helyczzük
el. ot! mh wehkiszolgjl6 szoftvert haszruUnak. ~-dig vaJ6:színiIleg ~ Mkm..
50ft Intem"'- (nfornuliun se,.,.cn (liS). am~Jy ~gy prof"""zlon~lis 5l.lnt([ weh..
kiswlgil6. amelyet a Microsoft din:tmilru$ wd;e; lechof}oI.~ihoz -:1.7. ASP·hez
és:u. ASI'.:-u:T-hcz - fcjleszten~k ki
II~ UíntJoo.,,'S 2000. WJlldot>."'I XP Pn:>f.,."ooru.l '"~gy W....ndcn>.'" 2003 n...".J,;;ren
h:..,;zn!ilunk. az liS mir ,.,.JfKóni1leg lelepltve \":In a gép(l.n\n'\n. l la nem. a tele-
pitb.hcz ,-jta~z\lk a SUn, S..:tling,;.. ConlJUl P3Jx.i .. Add or R<:'IT\O\c I'rogmms
(Sc:ut. Bc:Ulitások, \'cz!rtl'ipull Pn>gr.l.mok t.,k-pít~l6rIéso:) rTIC.-nilpontot .. majd
Iclturusunk 32 AddIRenove \nnde""" Cumpon.:nts (Windows <~e,,.6k
howadáS;>/ eltá,'Qjítúa) lt'llCI&égre
En ~zt j;wasJom. n~ teleplt<nk al !lS-I, hanem hasZlÚljllk ;nk~t)/) az ASJ'.t\I:."
Deve]opm('m W('b se"'en, hacsak ~ '-~gyunk p"'lQ5ak a ~ ilS hdllit:1sjb<ln és
hi1.lonsjp ha~zn.1lalJb.,n AZ ASP.NIT O~""elopmcnt \'reb Se""'cr bizIOn,:A!.'O-
""hl.>. nlivel csa k u adon ~lIm1t6g;;pr61 ('rkezó webes k~lmckc! c!lgl.'<.Iélyezi.
míS aZ us teljes ért'-:k\l webkls~olg:116, igy mcgfclcl6 javll6csom~gok ("5 l)(':\Ilí-
t:1..'\Ok híján ki '"lIn té-v~ a fQSstindulanj felluszn11ók l:1madá$Olinak.

I. Mi a killönbsl"g a .5tatikWl b a dinamikus wcboJdaJak közötl?


Z. ~1i a Feladata aZ ASP.'TI.. motornak?
3. •Az ASP.NI:T weboldalak kiszo[~lhat6k Windows ME oper.klb. rendszert
használó szlrrút~krl5I.· Ig:u V""~gy hamb?
4. MIlyen szoft\"ercsomagokat kclltelepiteni ahhoz. hogy ASP.NET webotdalakat
szolg~lh~nk ki egy s7.lilmítC>g;;pr<íl?
S. Mikor ~rdemcs fontolór:> venni. hogy cg)' webgazdánál hel ye~.zUk el az ASP.NI:.T
oldalainkat?

1. A Sl:.ItiJrus ..."riloIda.bk H1"ML-k6<.lja \~ItQutbn m:I",d. amig a Fcjleszt6 ~


m6tJ0:,ílp azt. núg a din:tmiku.< w.:bokbbké cs:Ik akkor jön [(1re, ~mikor
a "'dJo(dalllckcri. a ...'ebhely ~ik látogatój:l..
1. 6[8 • Ismerkedés azASP.NET·tel 21

2. Amikor II webkiszolg{iló egy ASP,?-''IT oldllra icinyulb kérdmet fo&ad. az


ASI'.NET-molomak adja nt át. ~mely lIllán végrehajtja a kén ASp.NIT oldalt. és
vi ..s7;1adja n el6állitoo HTML-\ II webkis7-01g:i16nak. Az ASP.NIIT-!tIO(or teszi
leh<..'16\·0,<, hogy az ASf'.NET oldal !ITML-kódja dinamikus;ln álljon e16, és ,runden
kérdemn;;l más és rn.1s legyen.
3, l !"mis. ASPNET oldalabt csak Windows 2000. Windows:'\P. WUldows server
2003 vagy Windows Vista rendszert fultató sz!imitógépekr61 lehet ki5zolgálni.
4. Ahhoz. hogy ASP. Nic, weboldalakat szolgálhassunk ki egy sz:Unító#pr61.
II ./'.TI keretrendszert és egy az ASP.NEl" -t:t tárno::;:aló webkiszolgiJÓI kell
telepitenünk.
5. Akkor érdemes egy webgazda cl'ghez fordulnunk. ha ASP,Nt.., webhelyünket
clérlt<..1.ő"" S7.erelnénk tenni az Intern~1cn k~re.sztÜI. A "'ebhelyeket általáb.1n
a legjobb hdyocn ft"jIe.<Zteni és egy webg:lZd~n~1 közzé!ennL

Gyakorlatok
Ehhez 3 Jeckéhcz n~'m Ul11:07.ik gyakorlat. de kés6bb, amikor már gördülékenyehOen
megy az ASP,Nl,' wcboklabk lélrehozJ:sa. nlinden reje7.ethen bpunk feladatokat.
2. ÓRA

Az ASP.NET programozási modellje

• lrrML-gyorst.~lpaI6 rövid be\'e7.dbsel n XtmtL-be


• Az ASI'.NET wclx>ldalIiTML és forrisk6d részeinek I:lrtalma
• ASP,NEr weboldaLJk és webhelyek léuehoLisa :I \r15ual Web [)e\'eloperrel
• \l:'cbe;s vezl'rl6k hozwd~s.:l az ASP.NIT w'cl)okbl JITML réslkhez
• Az ASP.NEr 01<1:11 működéstnck megha~roz.js:1 kiszolgAI6old.~li forroú;k6dda1
• Az ASP.t\'"ET old;d~k megtekint6e egy webböng6zl'ibell

Micl6tt nekil~lham~nk aZ ASP.NET weboldalak kl>wl6;l-nek, fomos. hogy pontosan


értsük. hogy.1n működik az ASP.Nl"T progrJnlOÚSi modell;e. Atlllnt az Óf:I 50dn I:ltni
fosjvk. az ASP.NET weboldll13k két részb61 állnak: egy fom1sk6d é;; egy lITML részb61 .
Az ÓI1I első fd~ben nl néuilk meg, mi tartozik 3 IITMl részbe, míg a m:isodik fclt\x>n
azt. hogy mib6111l a forr.l5k6dol 1art."I1maw rész.

A leck~ a Visual Web [)evelopert is múkódb kö1hen 1~ljuk . lImi jó alapo! ad


a kövctk.,z<'.i fejezcdlCZ. amelyben részletesel:>bcn ls megnézzük a köo}'\'bcn ~n~lt
w.crkeszt6 mak~.
24 11. rMZ • IIfTI8IkIdM az ASP.NET·t.!

Az ASP.NEl weboldal HTML része


Ahogy n cl6z6 leckdx:n cmlilenük. al~llvC(6 különbségek ""nnak a S(~!lkU5 és
a din:llniku, weboldal:ik köZÖlt . A legl~nyegesebb. hogy a dinamikus webokblak
vegyesen tartalmaznak ~ITML-jclölki k kiszoliPJóoldali forr.hk6dol. Amikor
egy dinamikus wcbold~ lt SU:l'Ct~nk megtekinteni. k~résünkrc \'1!aszul "ég~luft6dik
a forr.isk6d. ami előállítja a HTML-t, 6; ezt a dinamikusan létrehozott tn·ML·kódol
bpj2 meg az űgyfe\progl""~mun k

A rnoM kővetke1J'i részlx"ll a di n:l(niku~ ... "eboldabk HTML rl'Sz{"f \'i~g:illl1k meg. ~zcln
pedig a Ie#rdekest.·bb részre t"runk r,i, ~ rorrlsk6dl""J Miel6!t a7.onoon közelebhról is
szemüg)'TC \'~"f1ntnk n ASP.NEr old:t lak HTML reszel., tudnunk keU. mi az a HTMl,
mily!"Il nyelVIani szab:iJyar vannak. 6; hog)'an jelenítik meg a lITML-k6dolM a ""eU-
böng{-szők. Ha már jól isrnerfilk a IITM l nyelvtanát. Cl~ a réS2;I nyugodtan átugoriulfuk

flTMl.gyorstalpa16
A HTMl, amint azt nl.1r val6súmlleg rudjuk, azt úja I;.,. hogyan kell megjeleníteni
aZ okbh egy wd>böngkzObcn. Ahhoz ~kUul , hogy a böng0<sz6 egy Űl<.'11<."C( félkö,i'f
betúvel jeleníts.;,n meg, a köv<'tkezó I-fl"Ml·k6dot írh':lljuk,
<b~ E , U lko"ér len . <I t»

A ~rrMl-k6d demekb61 ~ II; ezek "ják le 3l; adatok megjelenését. Az elemek egy kezd('i
és egy ( nem mindig kÖlelez6) ;>.;iro címkc:b61 álln~k. valahogy igy,

ln az <e l """,é",. a kezd6, az <I .. l """,é ",. pedig a úro ciml<e. A IITML--clemek 3
kezd6 és a tiro címke köZÖlt ~U6 unalmat formázzák; az, l}()g)' milyen fonn:ltiSl
alblnuWlIk, az elem ncvét6l függ. Ahog}' fent lálhalÓ, félkövér sZŐ"eget ugy
állíthatunk el6, ha <b> és <Ib> címkék közé helyezzük. (A b a .bold" TÖ\idite.e, ami
félkövéret jeleni.)

A weboldaIiIk formázásiWloz HTMl·elemet széles választéla ál rendelezlÍSr8 ,


Ha többet Wlretnénk tuOOi a IiTMl-r61 és a külöllféle elemekJÓl, lapollllk fel. sams
kiadó Te«h Yourse/f XHTMl and HTML in 14 Hours cfrrIIÍ könyvét (ISBN 06723Z0761),
ViIIIY kIIrllSsük fel III Intemetan a httP" I www ... )s ..h ..... lB . =-/ht ml. cimet

Nem nlÍnden HTMl.... lemnek ,'an kezdő és úro címki'je is. A sortörést meghatimz.6
<bt"> vagy a vizs.tinlei" vonalaI húzó <h n elem pékUul nem rendelkeZik z:lru
címké\'eI. és az új bekezdés! kezd6 <p> dcmt.., is haszn~lhatluk;>.;iru dmke nélkül ,
2. óra • Az ASPJET p'"",.,1IIáIi mc-' lj 125
Ez egy bek@zdá.
~,

Ez egy lÚalk bekudi


<o>
h ~ eqy beke'dé.
Ez utóbbi e:;et(o!:oen ViSZont ha (igy gondoljuk. ki is teheljilk a záró drnkéh1
~p~Ez egy beke.M.</p"
<p>Eo '"'ilY daik bek ... <U.</p~
<p~t • ."o;g .,gy bekez<lá~<lp>

Bár a HTML nyelvtana nem követeli mell. hoqy minden elemnek legyen kezdó és
riró cfmkéjtl is, a HTML ~gOnJbb "nyelvjárás,,", III XHTMl már ilyen köYtitel-
ményeket tfomllSll. Az XHTMl SligOrUbb formálását" böngéSlÓk gyorsabban és
könnyebben ké~sek f&ldolQOll1i, millI a rugalmasabb HTMl-nyeMIIilI. emn
(illeM &Qyéb ~ok miani S~ webhely igvekszik XHTMl·meofelel6 tartalmat
nyújtani. A követkero részben az XHTMl nyelYtanára és el6nyeiflj ~ Visszalér!io:lt.

Felesleges elválasztó karakterek


Amikor egy böngéQ6 IITML-l jelenIt meg egy webhdyr6l. a kódban 11.'..6 el\'~1aszI.6
karnklerek (.Oreshclyek" . pél<Uul koo;j\'i.s.sza . tabulá,or. szóköz Slb.) 'zarnit figyelmen
kNi.U hagyja. Nézzük meg p(:lcUul a 2.1 péJdiiban szereplő '·ITML·k6dot, amely
több ilyen kaf:l.ktert is t:llta lma~

,,",, <"
<h1>~"lc<De '0 ~ Si~,,!<'hh

,, <b~wel~!<'b>

.,
<, 'M uo "~ vleltlnl/ ~ alte,

.," ,, <l>Thla
" nut. , Ilk ..

" ",
10,
11,
12, <'l></p~

A 2.1. példában esek azért számoltuk meg a sorokat, hogy megkÖ!lf1YlWik " réjok
~1lJfi, való hivatkoz6sL Egv valódi HTML oldal kódja nem tllltalmaz sorSlirnollat.
~
Amikor a femi kódot belöhjUk egy böngésző!:>e, a prog ... m Ö$.$7.e1ömörili az el0lasZló
kar.lkterekel.. ahogy a 2.1 ibron l;illutjuk. Mindegy, hány karakter szerepelt 3 kódban.
cs:tk egy szóköz jelenik meg. A H, T, M és L betOk kÖZÖl.li koo;i~issta karakt<...-ekb61
21! l NIl • IIInIrUdMIl ASP.NET....

példiu! <XAk eg)'-egy szóköz len a bOngé:sz6bt:n. Az 5. sorban [/\bb Rf>ki\7l ro


u.bul~tor k.:or:ddert is elhely~Zlünk a. You are" b a .now ,;sitmg my ~te" 'lZö·.-egdt
kózúlt - a ~ e:ztket is egyetlen ROköuc nyomp. &w:

.'!l:'~,- -e
,,'eleo'lIe to my Site!

2.1. MIn
.4/f'1':1fL.btmkt<6fo' " .... jI"'n6 ............... ,,~ 'IJr~nwnltl..ll~

V~1. mcgfigye!l!etjOk. hogy ~ elenJek Úl 50fba keruinek. mig nú.....k ~


kÖH1,k A· c,l> elem ulUlnu pékUul ktll(ln 50rban je1enik meg. mig a ' <o.>
<,Icmck., ugy:Ifl:lbba:l sorlxa foly,k

A I rr:-.IL-elcm'.-k k~féleképpl..., jclenilht.1ők ITlCll' bebö elemekktnt és hlokkdcmekkmt


A bds6(inllfle, hel~Uen kift.1t.1I) elemek ,,,-nr k,,;edenek úl sort" z:iro címke uWn, nlis
a hl()kk"IcnJek igen. Ahog}-" 21 ;lbcln I~UuIÓ kmJefletb6l rrW ~"lIl6s:limTl(:g ]uuUltuk.
a <hl> blokkelem. mig a <ti> és:ll <1> bels6 elem. (A péld:lböll<'het. hogy nem~,
dc:l <p os bIokkclem.)

A HTMl beISd és ~telemeillet ttljes Jist6t6t e http: !>NW.htalt •. p.~ . .


rer.,r.,nce/htal41 inI ,htal,iletwehttp:, '>NW.ht
""f.,r-enc<e/htal40/bl 'k, ht ... l címen tdlalJl* n-.g.

M"eI a ~ összetömöriU az el,,:;\I:I.WÓ bDkt~kl"l. [~CS, 1>0(0' fdlllt'fUl


~ k.. rdb: hog)':m helrezhetjílk el a IITM~lemeket az oldalon? Ha nml q;jmit lllCIVlyi
:\Of1Öft51 \"~gy szókÖZ! teszünk kJ, hogyan keszíthetOnk oly:1fl v.-'ebol<.bh. ame1rndt
tallalrnll jobbnlgaZ'tOIl v:lgy amelyben beh .... z:i5Ok '"Jnnak?

No., ~ IfrML..dernekhe~ kOI<'inféle sN1I1SJl'iÚ:",z6k~owak, amely<,kkel ST,;dJjlyoz,hatlUk


J fortrJjzhl. péld1ul a kitöltés!. a trullI!Ó!t;I[. az. dhcl~'t'z6il. illet,·~ a ~. '11 ful)';Wrln~-lt.
""!nos kOny\i1nk terjedelme nem teszi Ichct6\-c. hogy.,:ztkkel fogblkouunk. de;l.~
demck dhel}'t'z6éne:k nflliny I1lI'xlp.t l:ith:lllJllk nuJd a kOnyv !iOCln. illetve - ammt ~m'>I
a kÖ\"etkewleckében meggyóz6dlll"lOnk -:II VIMJa] web ne.-doper is segk az eIerrJek
elhel)e~be",
z.. óra • lu ASI'.NEl flI optmáIi lIIIIIiI+ I 'cl

Egymásba ágyazott dmkék


A !·ffML<Írnkék. t'XI'»IÚ5b<1 ásJ~zha/6M. ami azt jelcnh, hogy egy HTMlA:írnkepjJt
"gy m1sik dmkep:i1'Ofl beliil is dhelyetl\elOnk , lb pékL1ul aZl s7.cretní:nk , hogy
egy ""eboldal egyszem:' dólt ts félkö vér bt't:Ovcl jelcnilSt'n meg egy szövcgct, mind
az <b, mind 'ól .:b,. cfmkékl'l kileIK'IjOk, valahogy így:
d><b,.ez Mit h f~aóvo! .. h</b,. , ",I", ez '.al< d<'Ilt<1 ,.

Ebben a pél<:Uban a <b ,. dmke n <i> címkén befl1ltal:IJhaI6. (A köny.'ben n 'RI1násba


ágyazás. iIlel\'e a ''''JallIJ(uáskift'jezést is h:.lszrnljuk = . ) A kód it-4emése könnyen
mt-gfejthel6. Az < i,. címke 3zt jelöli. hogya l:ut:llm!inak dőlt betűvel (jt:llics) kelJ
megjdrome, 3 <b ,. pedig azt. hogy mirxk-n. 3mi 1.'7= az demen belül ":10. félkövér.
A2...Ez d611 k f<'lkö"ér js" S2&-eg lehil d61t t:; félkövér is lesz, a .mig el. csak Mh" pedig
d6It belii$.

A cúnkcpMok:u meg is cserélht'tjiik, k az d> elemet 19y3l.haljuk a <b~ elembe,


<bHi>g. d<'Ilt h t lU kovér lu/h , m1V ez cs" k f<H kov<!r<!b>

II fmli kél kódrészlet n egymásba :igy:."LOU címkék lu:I)l!S h:ll.-zrci.I:I.l~'" mut:ll péld1l:
az egyik címkepimak mind" keld6. mmd " úr6 cfmkt:;e a nlisik cimkepMon belül
t:lll1hat6. II 1Ie1)1e1('",1I ®,"ásba á8J.-I.ZQI1 ('Iemelm~ csak 3 kezd15 dmkéje \'Jn" m!isik
clemen beiOl. mig" úro dmke non kl\'\llre keru!. Ez" HTML-k6d példiul helytd"n:
<iHm.Ez dlIlt. lia félkO vé r ia</i> ... Iv n eul< r'aovér</b>

Figyeljük ,"<-'g, hogy a <b~ kezd6' címke al. <b eJ~me-n belül t:lL1lhat6, de a ;cir6 <Ib,.
nem. Ydgyis" <b~ eleme! hdyteJenOl ilg}'aZluk be.

Keríilja; 8 helyt~niil egymásbll égyazott cfmUk hasmálatát, mert neoozebben


olvlI&ható HTML k6dot eredm6nyeznek, lk ahogy az Ól'ában k!sóbb látni fogj(j;,
az ASP.NET weboldlllal: HTML rlmének egyes elemei nem is engedik meg
az i1Vesmit.

A kis- és nagybeblk megkOlönböztetése


A lrTML-clemek T>e\·&en nem leszünk különbregel a kis- ~ nagyben1k között.
A fo'lkö",o'r fórm:i;ciSl <b> és <8> fonrliban i$ jelölheljük, mig a l~bUz:IlO1 rneghat:iroz6
<t .. ble,. címkét ímatjuk <tA.bLe,. ""SY <TABLI:> form:lban is. A bc:«Utl~snak az elemek
kczd6 és;cir6 ctmk~ között sem muszii m~gegyeznie
<b>E z ! ~l kOV~r</B>

Ez a kód ugyanazt en.odmt'n)'czi, mint aZ alábbi,


<8>Ez f é H ovér</B>
28 1t . . . ~ IZ ASP.HET-til

Dr Irt\:;Jtjuk ~zt iS·

Az XHTMl-r61 röviden
A7. Xl rrML a HTML egyik "...Il1aut3, amelynek $zigorubb nr~lvtani 'iZ:lbál~-a1 ~a nn.1k
Az Xl rrML megköveteli, hogy hcl)'<'SCn ~gy..uu k cgynt:i.sba a címkék':'1, ~ ~zt ls, hogy
minden címke hweta~ legyen. V~g)'l$I\.3 XHTML·ben szeretnénk kód oini egy 1n'ML--
~blázatOl, nem haszn;illllltiuk a <TAB LE>. CSO\k ~ <tabI.,> fr::ismódot;.

E7.cn kilill U XJ-mll dokumemumokban minden kcW6 drnk8lez tanoznia kell


eg)' t1ró címkrock is. It. bek~Wt':s "ekként pékU.ul nem :oIlWm:!.~llltiuk Onmagil;r;tn
a <I)" cimkét, CS2k igr <1»_</,,>. lU oIy;In. 7.aro cimkt·..d nem rendo.-lk~z6 ~let'nek.
mInt a <bn & a <hn oettben az XlmtL a kOvt'lk~zó f~ ilJ" elő,
<L l"

<hr l"

It. I .. anmlk :1 rövidített ;elöl&.-. hogy a keZ<:kl <:s a Z<iro dmké k k~t nincs t.:lIu lom
Az <.·J-.t<v l .. ugranaZ1 jelcmi. mint az <eJ ...... ft...,.<I .. leln"'f~.

\'~1. az XlITMl·megfdcl6s(,gI~l ~7. is :RlIk5l-ges. hogy al. elemek ,..llcmzóit ldt'ZÓjckk


kOú tegyük. It. jdlcmz6lz olyan ne.~ piNk, amelyeket kÍ\<Íns:ig ~l dhdyeme.
t\lnk a k~zd6 cimkébo:n, ,,,,Iahogy íg)':
<Il _ ·-h-"tr-uctioruo" -styl •• ·o:ol.or,nd,->bl" bla bl"."p>

lu a <Il> eICnmek ket ;e11emz6je VlIn az ,n.tr-uctlon& (u~) érttk(l .d


bZl>flOljlló), I",lamUll a eolt ~ : ced (~.in:\"ÖI'Ö$) tnékU et y l .. (SlJ.1us), filn'cl,ok 1l1l.'g,
hogy mintlket jdlc:mz6 értékét idez6jelbc tettük, C5:1k:1l igy relölt jdlemzókkcl
~ko:zó ~1enK'ket t:1rulmaw doIo:umcntumok !>limít.:ll1:lk XHTML-megfdo:lOOck

Az XML, amely IZ tXrllMible Mllrlnip ÚfIgIMge rövidítése, 8'If olylll1 nyelvntk


• neve, amely elemekkel rl~ le IZ lIdatoklll. Az XHTMl i5 az XMllllgonJ
kirvetelméflyeire 'PijI: kis· ts III!g'(bettlk megküIÖllbÖzt.té$ll, heIYUen ~bII
'wazon cfmUk, z6r6 címUk k6111ez6 hBslMIata, Ha tObbet SlefetnW; tudn!
az XMl-rDI is az XHTMl-r6l, 1IWIdri.6ppen SZet.mJ: be I s.m kIId6 TIIIICIr
tbcnel XML111 24 Houn (ISBN: 0612322137) is Teec/t ro.net XHTML lIIId
HTMLin 14 Hrus (ISBN: 0672320162) cml kOtlItait.

A2 ASp.l\1rr ..... ri>okblak dkktil"""l~z nem feltl\lenI1l.szú~ az Xl fT\ll mdrebb


isllleft:'1o:. de bizonyo:'! okok mtou Ibl~, hogy a l'de kapcsobtOl'l fogalmakkal
tosztlban leg}"Ünk. EI&zör~, a VISUal w.:u
Oo:n:lopclben egy'Qen1cn dlcn,'írtmt:'1",k
2, 6nI • lU. ASP,NET PfOVI'IITIOZIIa mOdIIje 129
(llsd a következő
6cl1), hogy az oldalaink megfe!e!nek-e a s.z:IW-lyoknak, ami mJg~ba
fogl~ljJ ~ZXH1'ML-lTlf'gfelel6:st'gel is . M.1~lszor, ~Z ASI'.I\'ET webcs veZértólt. amely-
ekkel n"'g ebben az 6r.lban megismerkedílnk, XtITMl-le! írjuk le:..z ASP.!\'ET oltbl
Imll rész~ben. Ezen kl\'Ol. amikor" böngbiW egy ASI'.1\t;"T oldalt kl!r. a kisrolg:i16
a webes "czérlókt'1 Xl-fTMl-l~ alakitp.,1!s en a k6doi adj;! ál" böng6z6m~k

lU ASP,NEl weboldol HTML részének létrehozósa


a Visual Web Developer segitségével
Az ASP.NI:T webokLIJk HTML r6ze Slalikus I-ITMl·1 éi u'f'hes I'f'Zér/óket t3nalmaz.
A webes veztrl6k olyan IIDll-kódrészletek, amelyek programozh:u6k; lIegitsl!gllkke!
a fejleszr.6k módosíthatJák a böngészőn"k elküldöti HTML-l, A webes vezM6k emellett
arr.. is lehet&éget adnak. hogy a fdh"sz"~16 :111:01 bevitt adalOht összegyiljtsilk,
Il'h.1t hídk.,m szolgálnak a ImlL és az ASP,!\'ET oldll forráskód része köZön. A webe!;
vez"rl6k homad:í.sit és m(iködtC1ésl~ részlet""'" megnéuük ebben 3 fe;eze\ben,
a 8. 6r.'l161 kezdve pedig rengeteg webcs ,,",zérl& fogunk használatba venni.

A Visual V,-eb Ixve10perben kM"le módszerrel adh;!tunk IITML-",-nalnL'u és webes


vezérl6ket az ASPS!:,' weboJdalakhoz:

l. $:lját keJ::iileg beírjuk a lfT/oll-c.nalmat es" webes wzérl6k k6djit


2. A VisUlII web [)e1,'eloper grafikus ( w) :s'IWYG) 1<m"".rop'eL'!;egítsl!g~'el
HTML--clemeket és webes v('zérl6ket húzunk az oldalra.

A WYSMIYG 8 What you See ls what You GfIl (an kapod, arrullátsll roviditne.
A Visual Wttb DeVeIOPer ~al gvorsltja lel 8 wtbtoNozésl, hogy IehetM teszi
il fejleszt6knek, hogy az eoérr~ húzzanak HTMl·elemeket a weboldlllfa. Hasonló
grafikus tervero ft Microsoft FrO!ltf'Bge vagy I Macromedia DreamWaa\lel,

Tapasztalatom szerint a leglöbb ol)l<ln fejlt!Szt6, aki jól ismeri a HTML-t. s1jve:sebben
írj:! be 5:lj!it kezúleg a HTMl-dmk&ket és a we~ ,...,z&rl6k kódját, és nem h;!szn(ilja
ól. grafikus szerkeszt6 swlgál"'-\:Ísatt. Azok azonban. akik nem rendelkeznek l:lpaszul a-
tokkal a I--ITMl teren, áhaUban könnyebbnek és oIc:sóbbnak ",-1~lj:ik a szcrkern6
haszrci.lat3l. H~lten1nktól fiiggetlen(l] i;W3SOh mindké!. nl6dszen kipróWJni, és ~melJetl
dönteni, amdyi kkelgyorsabban megy a munka,

Hogy szem!éltessl1k egy ASJ>.N'!:T oldal HTML r6;z{-nek elkészit6,(1., hozzunk létr<'
egy egyszerű ASp.NEl' webhclyet l"gyt:1.len wdx>lcLllaL IndilSlJk el a Visual Web
Dcvelopert a Start. J>rogratmi, Mic~ft. WsuJI 'X'eb Dcveloper 2005 Express Edition
menOpomtal. majd a File nlCllu New Web Site pontját választva hQuunk lé\re "SY új
Wt!bhely(.1. Ekkor megjelenik 3 New Wt'-b Slle pjrbeszédablak, amelyet a 2,1. ábr:ln
láthatunk. V~lasszuk aZ ASP.Nt;"T W,,1l Síte 1\;I.blonl, :I loc'~hon ( Hely) len\'il6 Jistából
:II ) L _ • lImIIUd6t IZ ASI'.HET-tII

a file S~em.;II l.:.Ingw.ge l.,ubó! ped'8 a \ i5wllbsic clemel. HguJ adtuk mea
a ...·eOhely f:i.jJj:l.lnak eihei)'e~ mlIg.11O rnap~t a loc:Jtion hsUtóI jObI"" ul3lNtó
m}\~ZI:1lm (a ptldib:on U ASlIalon. egy CMpterl rlC'\iI rnapp:.iboln hel)'eU\lk el
J ...·l-btleJyet),

__.. A·"'-_ _ _
-,,-_----
_w. ,. ,
,,
~

... ... ...... ..


.-
---
-- :::.:..:::;::::;.;:;;
- --
2.2. ...
..- ... - _.... 1 =:JíI~
1~ .... a_ASP.\1iT

A Location
--
~ 1t1.ehu:uf.J6...a

leOYI6 lista ~ meg • WebheI'f mtntHénri; he]yjL A kÖnVY ~


• File S)1'tem jF'íJrltl1dszllf Iehet6ÚOtI .... almazzuk. dit mM 1Ithet6s6vtk il (tn-
debzHra állnak. Ez.! 00, ~ k1~~i prOQlar'.'r'tlvUnt. Vu
Basicot haSmáIit*. elért lImilor uj web/lelvet hoari. létre SQV'SQV PékWIOZ. lTUtIdig
hagYJUk a Language jNvHlI beMltMI IZ llapértelmezen 6rtétell IVu Ba.icl.
A New 'MIII Site ~ , kiivatkaz6 ÓI'iÍba'I résMtesebben IS
/<9+,,,'"
MlI.u1n e"'~nilk a megf.. le~ bdUil../oSolcl.I;ll ~'"«'eb Site ~rbe$zM;lbl.:l.kb..In, b
az OK gombra kalliNouunk. a V~I '«'el> o.:.-eIoper az alábbi m:optJ4ik:ot t:I fjjlobt
hozz:t ~ az álulunk ~dott köny"t~rban

• AppJ)ilta - Ez a Ill:Ipp:i. Ilmel)' kewedxn O~, tartalmazza nul'! u


adaúJlom:l.nyokat. Az adatved-reJt ASP,'!:, alkaJrnazisok k~lit~1
a 13, 6cl.t61 kezdve foglalkolunk
• Default .allpx - El II rajJtllr1~lrn~l1..a ~z ASI'.NET oldal ImlL ~W,
• Defaul t .aIlPx. vb - Ez II fljJ t::nu!rl1l1lZ:1 u ASP '<ET oJdll fO!1"ilskód ~zét.
• w.. b. >nUll-Ez U XML fortn:\úSll Ujj tx-.'IlIithok1lt urtalnuz a .... ebllelyhel.

A B ábr.ln lálh.:u",k .. \'1SU:lI "«'eb IX\'dopen az új ....mody létrehousol utJ.n


A PfOId't f~jJjait II jobb feb6 sarokban ul;i[ható Solution Explorer muUtf:!.
A főablakban a progr=> nIl"gJlyiljil 3 Default ,"'IIPX f~JIt. és mqgeIeniti annak
I IT\t1... k6d!;It
Z. 6n. ' No ASP.NfT ........ ,....... ild ", 131

.-
-- _ ,_ _o
- __,

-- 2.3.6In
C,.,u"MI"nlt!
- thrmcmult
els6ASI'.\·cr
1I.~'d .. ,."

A IJalal5Ó ""rokb:In kél fillet Lim,nunk DeSIgn (TCf'\'evSl b Soun:~ (I'orr.is) né\'en
A Iks'gn gomb a grafikus (\rY~J'CYGj tenoe:r6i JCk'rnti meg. amelyben eg)...,enkn
lX'irh.:l\JUk:lZ ASP.:"IET okbJon ,~enlleni kiV;!,n, unalffi:lt, ~l. olddhol hon.bdni
kivant IIThl L-elemeket ts "'ebes ,·ezér16ket perl" a ll<llokbit található Tooll:>o';
(v"lkr16kl (Y.lletLirol ~ ie .... cl6:lblakb:o húzhaij\,k. (11am3rQS:1.n "Imi fogjuk. hogyJn kell
en elv""geznl.)

A INMk gomb II Sou.Juo, amellyd f~ \"~lth"'iunk. im·l:i.lha~k az ~P"ET okbl


il'n)~ HTML-kódját Abp;llbpotban cl. al.akti, IIp, e7.C1t mo<;! II Deh",li •• *Pl<
ImlL-k6dp1 Ulh:lljUk a koi'pml}&, Mt-gf'.g)'cUK'lJllk. 00g)' bir nq nem dunk egyet-
len Itn{~:sem az A,<;1' '\;ET dd:dhol., ~... bmennyl In'Ml·k6d nqis .'IZ.erepd f".Ip

AZ oId:" let~n pl'1d:lulll ePage ut~sil<lM ta1:iljuk


<_,
_
Pali' l.anguall."VB· ""tölWentWlreup."fahr·
_Pil~,·o..f"ult.&8p",vb' lru..rit"r-Jlat.~l • l>

Ez n u~u.s iruonnációlu.i köWI n ASP,\"ET OkWtÓI, A -.que"e;et1enu6 al. okitl


forrhlWd részeben haszn;;il\ p.ogr.l.lnozisj nye,,~ lIdj:a meg; III COdeFU. jellemző pedig
a f(ll'dsk6dot I3rtaLmaZÓ fl~ nevd Anukor az; Ór:I \'égtn maid megnl"zűnk qJY icl,n
pl'1W1. JaIhatjuk, I>og)' az; ASPSET oldd tanaJmjt '" kL-relmct kudó böng(":W5 nmllapp
ITIeg teljes egtsztben. Ilyen ~ péld:iula '''''g..
UiUIlJS. amelynek Iart~ln\;l a "ebki-
5Z01~16n t.:Il~lh:lt6 ASl'~"ET·motornJk »WI. ezért ~1. üllyfelnek nino ri nü~ge

A fIIPa"e ut3s1Lis ubn azt az abptrtelnK"2et! lln.tl-lartJlm.:1l wl:lljuk. alTlelyct a \'1SU~1


Web Jko,'eIoprr 3ulomalllrus:m brir. ~mikor IéIrehozunk eg)' új ASP.!\"ET ...·ebokblt
Ez a resz egy <ht.l;> demb6llU, ame-lybe <I ... ,b b <body> elemek agpz6druk,
a <b:dy> elem egy <tor.> elemet, lll. pedig egy <div> elemet I3rulmaz,
Észre'''ehcuuk, hog).:o. LJ. oilirin I.:illuI6 .. t., ....,. ctmke wulmn eg). ,una~ • •rvec·
jelkrm6\.. Ez n=J sz:.b\·;iny'06 IID1 L·~UmtZ6. 5Ót:l 2.3. ;ib!":l <fc,,-' (.~ egyoih.:lllo
nem is J-IT).1L.,.c,!eml AZ ASP , n ...·cbokJ;.Il:lim.:ik:o.wk a IITML-dcmci. :lmdyekbm
mcgt:Itilhaló :l ",nat .. ' Nrv.,r· ;dleml6. a we/.>Q ,·ekrl6k kuklnJego."" ~ei Az. 6r.I
kd6hbi resztben ponl(l1S;tO Il~Unuk, mik azok ~ " ..."-'"'" \"e:rhl6k;;s mi :l QcrepOk
:ll ASP.NEr ..."CboIdalaknn, a 9 6ráh·~n ~ig r6.;de!ellCbben t1rgl':djuk ezt:l kOlónlqa
d ,m,. elemet 6; annak ~lj:jt ls.

AHTMl·tartaIom szerkesztése a tervez6 segitségével


Az. ASP '"'ET okbl HntL ~k szcrk.,.zt6é""'~ 1uszrú~ljuk:l Design lapot.
amd)= grafikusan \tgezhelJilk a uerXeo.zt6l. ~:lgy:l SaulU" nhe1ct. :lhol II JIDl t.--
forr.l5 megtelmll~ közben s:.1'I1 kt"Zl1leg ír1"'IJllk Ir a t:..ulm:lL lJ&ZÓr ntzzllk meg.
hog)"an adhalunk t:ullIlm:1lll~ okblh(>~ a ~·"'1.6 qit#""el! Eg). <table> JITML·
elemet fogunk dhd}-.,zni. amely ~ intemetes hd)-ekct - ntlOO'. Google. \ IS'\
L)'CQ!, - foSb] t;tb!lzalba :l~>k cmblénúl' III qn"lln.

A .. tabi...,. HTMl-elem riessan1 ueReatRI hoz létre, amely sorokb61 .. oszJopot;b6I


él. Ert al elemet gy*-' hauNllfii; weboIdllltlt efilndeáUnll! kIaIakltáitl, bíf ..,.,
más m6dsze.-ef:; is reodelkemr. AInak. A HTML oldalak elrenderim-6I
elemhaszn"atá'6II httPl' '"""".w). hools.,,=/html 'M
<tobi." '* .
.1"YCLll ~lmen
kaphatunk b6Y8bb feMIáoosltb t.

--- -- -
-
-- Z.4.~
Aml.lo:»" Mz"rn.1k <:!tI· I ffUl-/fIhI.1zalOl.
Itf<!I'dhllli" k JOI'OJi h oa:Itp>lt u.. .....r
ti

11kt.., ti lábl4mt s.z~'f" """"'""'«<"


Kezdrí1k aZZ:lJ. hog). :l ()e;ign fiilre ""ninI...... len=6né-~~ v::iJrunk .....1. ds6 d''-''sunk
az lesz. hog). az okblhoz ~djunk egy <t ·,bl .. " IITML-elentoe"l etJho,l! \'~Ia ...... ,k a (.;t>UUI
(EI~) menli Insert T~bIe IT~bL1ut bewJráso) poruiál. EMo.-k 1Ul1.... r.. 3 2·i .llldn
L:tlllidÓ pjlrbesztdabbk jeIen.k meg. :o.hol ,-;tbmlulunk. hc®' rg-,' sz::atJ\-:i11)"O& .... blon'"
2. ID • Az ASP.NEl pr.,. ........ 1I'IOCIIII- 133

(It'mplate) I'pítjük a t:lbli7.atOl. VlIgy egytm t:lbláz:ltOl hozunk létre, és IT\;lgunk adjuk
meg a megjelenltenj kivánt soruk (rows) és oszlopok (oolumns) ~mit, illetve a táblázat
teljes sztle:ssc.'g<'I (width) és m:J.gass:lg.i1 (height).

Ilouunk Ittre most egy ktt oszlopból és nl'gy O;Offi6I ~IIó, 300 képp<:>nl (p~el) s~Je~
és s.ooképpont m~gas t:lbl~z;ttot. AI. el.só os~lopban a webheJy neve fog szerepelni,
a m.~sodikban pedig a webhely emblén\.1f;i A webhdY('k l1C'\'tt úgy ~dhatjuk meg,
hogy egys7.enlen n adon sor első oszlopaba k::l11intunk, és beírjuk II neVet. A T)e\'ek
houbdjs.:l után ~ úbl1zal úgy fog kinhni, mim ahogy a 25. :íbr.ín láthatjuk
MegftgyelhctjOk. hogy tl"linck'n wdlhdy nLove balra igalÍtva, mcglehetŐ6en egyszer\l
ki,*zeul betűkkel jelenik meg. CstrlO<$itsunk egy kicsit a megjelenl!sen: igazítsuk
körepre a webhelyek n~'tc, é:!; állílS\.l k ftlkövér Arial betűtípusr:. ~ sl:Öveget!

Ehhez ~'srenren jelöljük kl a klv~nt webhely n~'61ek szÖ\",~, ",aid v;.\.I.:lSS;nJk


II Fonnal (Forrn:\tum) menii Font ( 6elútípU5) almeniijénck RoId (Fél kövér) pontjjt
Ez ut:!n 3 meg mindig kijelölt szöveget a Formai meniiJustify (Igazítás) almeniijérn:k
Cente-.. (KÖU::".-e) leJ~őségére kattintvJ ígazíthatjuk középre,JIa ~ szöveg továbbr.> ~
kijelölt mar:td, a betűtípus l11Ód05it.1s:íhoz csak annyit kdl tennünk, hogy a bal. felsŐ
sarok közell'ben 1",,6 Cut (Ki~g:í5), Copy (;o.11~1s) és Paste (Ikillemés) ikonok abu
ulalhatóli5clból az Arial lehct6séget ~Ias.ztjuk, (Az emlilelt ikonok egr ollÓ!,
két papíJ"l, illetve egy \"1g6bpol 1brnwlna k. fs köz"et!eniil. a \1ew. Fomllu és 12yout
m"nuk alat! t"Ulh"tók, )

---
_.- - 2.5. ibra
Az ebió oszlop larmlmn:aa
a >r<1u' u'<1bhdy ""'~
)I j l,.. • 1Irr..ucMI. ASP .NEl-.

A 2.6. :il:rln hogyan fest


láth~IIUk. ~ VISUal Web I)eo,-.:Ioper ablak:!, mlutjn mind a n{,gy
"ebhel)' oeo.'':'" fonnizlUk.

~~-_ ... _-------

- --.-- -.. ,
- I 'IIJ.
-- -

-
, _ 0_,

- 2.6. bt
II ~..-bhcI,t*
fill""*"' u-tt,l"
,.... ,~ />i'M" ..
b" A"'"
- Műli{IUJ~ /UJ_w.
A fonnat menIl Bold ts Cenlef ~ haSmáIaÚn kMiI tiI;rf IS NIkMf,
közép.-.lQ8lI"lon szövegel UIZitlwtünk, lia az dölláf Bold lBI gOmbt6nI
kattinllXlk (vaqy lenyomluk • eTIl. + B bilklnt'{llkttl, majd az wt6zliroo • CInIIIf
gombol vknjuk.

MOtII. ~1t8 adjuk az cmbI~bt a "~)'ekl~ a második o<l.k>phan' .-\ To<~1>m:


palctt;l oIy:m I-fI1>lL-elemeket 61 ",ebc::> "ezhi6k~ l:malmaI, antefyekt'! a gr:J"tlrus
Icrvc:z6ben n c:gl'rrel az olclalrd hi<zh;l\unk. A Toolbox paletta ~bp;llbpolb;ln II Visual
W"'b I)eo,'doper bal olcbl.1n t;I.\.1!haI6: h.a nem IJl[uk a progr.1IlUbbkban.:I \ _ menO
Toolbox pontfIt \"lbszwa a k.:pcmy6re \"llr.\zsolh:I.lJUk

• <;Caodud (Abpclcmek) • Login (Bejelentkelc,,)


• n:..t;I (ACbtdemek) • \t"'d*aru (W~ ekrnr:k)
• \~lid:otlOf1
(ElIen6nt5) • tmtL
• l\avigalJOn (Na\"1.gXi6) • Gencr..t (ÁJuUno, '-.ek!
2. 6ra • kASP.NET !I"9.'''''*i IJIC>I' 'j,I 35

Muxlegyik rekesz több elemet tanalmaz. AIa~lJapotOOn a St<lndard rekesz van


kibomou ~lJapotban, é!; olyan elemeket I~thatunk ill. mim a bbel {címke).:I. Tel<tBol<
(swvegmcz6). a But1an (gomb). a ünkBunon (gombos h;V'~tkoús). é!; így tO\~bb. A
(Xlletla a kibomotl Standard ,...k<-'SSzcl a 2.7, iOCin l~th.at6.

--
.-.-
,_o
...,-
---
-
-
.--
,.-
--,--
"-

.-
',-
.-
,-

2.1. ibnt
A Too/box ","ktra <M)V'" drou>/ocl tana/mil%".
tlmclyc/«.1 " l<'1l.n tibr h,i.zh<lu",.

A Toolbox (Xllelta ....<--bes vezhl6k<-'t és SZ:Ibv~nyos, st.1tikus Ji'\1I.l~lemeket Í1i t:uulnlal.


A fffilL-elemekel a palelta InMl rekeszt:-ben találjuk, az összes többi rckcszben w~
,",.,zérl6k vannak. Eddig ,n(og nem tisztjjZluk.I~' mU:><-'1l különböznek a "'<-'be!; \"ezér16k
a st.1tikus HTMl-clemekt6l, de mirc végzünk a ImlL ress~. és rlténlnk az ASP.r>.'ET
oldal fOfl"iskó<i r6szbe. a külöobségek ~ilágosabbak lesmek. M06I \eg)'en d~ :mnyi.
hogy hacsak nem a In'Ml rckeszb6l választunk elemet. wrl>es vczérl6t ~dunk
az oldalllW. és nem I-ITMJ..<!Iemet.

Ha a Toolbox (Xlletta ''2lamelyik elemét az ASP.NIT weboldalhoz $Zefetnénk adni,


egyszerűen kanifltsuflk cl, l!s az egér gombi~t 1('nyornva tartva húzzuk a kív~m helyre.
majd engedjuk fel a gombot. Amim a 2.7.!ibdn látható. a Standard rekesz egyik ek'rne
az Image (Kép) we~ vezérlő. Ezt a vezért6t. fogjuk arra 11aS2nJ.lfli, hogy a t1bL1z.'Ii
második ():)zlopában elhelyel.luk a ""ebhel}'ek emblémii,. Kezdjük nl:al. hogy
rn:gy IrnJge \'ezérl61 a ler\.'ez6be húzunk, egyet-<'g)'eI a n~gy sor második oszlopáb>..
A 2.8. ~br:i.n I~dlatjuk, hog)"dn kell kin~Zflie az ~bl~knak, miutin e1helr~21ük
~ négy Image '·ezérl6l.
36 I Lráu: ' lIrrMIIbd6S IZ ASP.NEr-tII

Megf1gy.::Ihefiiik, hogy:Ll: Im:l8'" webe; vezé1iöl< rno& még vöri)6 X-kt'1lt jelennek meg.
Enl'\ek az az oka. hogy m(:g I'\em adtuk meg a k~k URL-jl:!. Ell n Image vez616
r ..... ge<lrl tulajtlonságin kCTeSZlillleheljilk meg. de miel6n UR!.-t rendclhelnénk a tulaj"
don~8hoz, el6 kell ktlsz;,enűnk ~ megfelel6 ktlpf:íjlokal. Egy intcrnClcs keres6vel
keressük meg a webhl'lyek ffilbk'!,n.~it &; memsük a ktlpf~ílolGII usranabba a map-
~ba, mint ame1riklX-'Il 1("Irt'hozruk II webll<'lrt1.. (A k(,pfájlok mentb;tlhez k:!lIinlSUnk
jobb gombbal II kl'p ..... II böngbUiben, &; v:llasszuk a Save As - Mt'nt&; m:iski:nl 'agy
Kép memí'..... ITÚS n(""en -leht1.6:sol'g<.O

- IB

- ,~

I
I

,~
~~ 1 2.8.6bnI

':" ;;";;;;,'-
~-
' .. ' . . I . . •
• - .~ láIJJá=J m"kkt,
sorrIlroz~' image
u'i'bes l.O'Z&1& adn",.

Ha Ielöh~\űk ~ nt&)' embl<:m~t ~ sz:iml~pOnlcre. !TIÓdO!'iítl~"iuk J7. Image vez;;,I6k


lmageUrllUlajdonságil. A webes vez(;rl6k tulajdollSiigait II Properties (Tul:!idonsjgolc)
~bbkon keresztül tekinthetjük meg és m6d0:sítha!juk, amelyet ala ptlrtelIT!eZés srennt
II iobb alsó S;(rok]y~n találhatunk meg. Ha nt.'!ll I~tjuk a Propeltics ablakot, válasszuk
II Viev.' meml Propenre5 Window pontját

Az lm:lge vez(;rl6k ltoageurl !ulajdons!igin:lk megl",úroZ:is:íhoz k:minl$unk


a vezérl6kre tcrvero néz<.'1ben. igy betöltjilk a fUbjdon'llgaik:!! a Properties ablaki.n.
Abpértelmez(;< szerim az ltoageUrl tulajdons.~8 é n éke egy uro; k:!rakterl1nc, ami
all jelemi. l><>gy még nem adtuk meg aZ énékel, írjunk be <-'gy értékCI, ~"J~' k;ittinl$unk
II három po!llQt :1001.016 gombra, 6- ,,:íla~1;Uk ki 3 megfelel6 f#l.
2. 6ia • k. ASP.NET p"",.,itiZMi IIIDIWjII I:rT

Mivel a képfájlok már a wcbhelyUnk gyölcMön)"tiliban ":mmk, mQSIlCllIintsunk


32. említell gombra. Ekkor mt.·gjelenik a Sde<:! [mage (Ktv kiv:iIawá5:a) pjrlx=édablak.
"rnc[}"eI" 2.9. :lblin üthatunk. ~ ahol kiválaszthatjuk. milyen képet S"lL~tnénk megje-
leniteni aZ Image ",ebes v"zblóben. Mind" négy Image vedrl6 t'$eI&en Iollön-külön
vilasszuk ki" megfdel6 ernblém.it.
_ . ....,. ' x

---............_- ....
....
,

G:JC:;;:;O
2.9.6In
\',,1<1.«%11. iti <IZ fm<l# II"l'bes
"'~ ""'81<"""ftetu16 JOfPeI

Miután mllijadtul: a iMgy kápet, e!6fordullat hogy III vesszük és.zre. hogy ft képek
magasabOOi: v8f/'/ szt\lesebbek a kNántnill. A kéjm llIIÍIeteÍl a Width (SZtllessé91
és Heioht (MagiISÁg) tulajdonúgokoo keresníil módoslthatjuk. Ha II'IldW
azt szeretnénk, hogy agy káp 100 képpont széles legyen, &gySl1lriien állltsul::
a Wi dth tulajdons.6gét 8 100p" énék/o.

Eddig leMI elkL"'S2.ileltilk II I ITML-tartalmal. amely statikus IITML-t _ pékUul " <tll.ble:>
elemel - és Imag" webes v"zérl6kellartalmaz. Észrevehet!llk, Ilogy egyetlen soroyi
I-fThIL-1 sem kellen Ú"nunk: csup.in különbö:ro: menüponlokl'"J kanin1otlUnk, az egbrel
,,-ebes vezérlGlel Ilúmmk a ToolboJI" palettától az okblra, és tubjdc.m.ságokal !iUilottunk
be a l'roper1iC5 ablakban.

Az ASP,NET oldal kipr6W.lásáhm. v:ila5li7.Uk nlOSl II N>ug menO SCan Without Debug-
8Ill8 pontját, vagy nyomiuk le ~ CntL+P5 billentyt1ket. El. arra uusi,~~ a s~rkesZl6t,
bog)' forditsale az oldal fon;iskód részét. és indítson el egy wcbböngész61, maJd töltse
be a ....ebhclyünk kezdő oldal:l!. ami alapl'rtelffit."m ~lerint a Default .asp".
Ha m6d0:sí,ani S2eretnénk a kezdő oldalt, 3z egér jobb gombj~'";I1 kaUintsunk a kiv:ln,
oldal nevére ~ Solution Explorerben. és v1lasszuk a set as Stanup Page (Bd1lí!ás
keld6 oldalként) lehel6ségel.

A Visual Web oevmper két IeIletóstiget bIZtOSÍ! az ASP.NET oldalak böngészóben


történó kiprobálásiÍrlI. Mirdettö a DebUV menüben tal~lható: az egyik rMIV1I Start
OebiIggmg, 8 másiké Start Without Debugging. Mindkettő le/ordítja 8 forráskódot,
és automatikusan elindit egy bönQész6t a kezd6 oldallal, dit 8 Start OebiIggiflQ
8fTlllllett egy hibilleres6t is elmdíl A hibakeres6 hllSlTliYata akkor IIasmos, ha
.!
Lr6u: • IInwUd6I IZ ASP.HET....

meQ 1l9I'81nánk ~I • forrásk6d hlblll'lllnt~. Ha VllZOIU nInl progf"


mol"i llibékat keresünk, IIaoom csal:; meQ szeretnénk tekinteri IZ OkWt. hibake-
luft niliil is m.gteha!jíL A hibabrn6 ~Wa • kés6bbi IIIcklitbtfl m69
"""""'*-
&, lÖOr V6/aUIOm • Soo Wrthout Debuggng 1lhef6s9t, ha IWQ Ilihégam
• hiblkefn6 szoIgMtatisllta./qy gYOrSIbb is, lTIII1 • Vi$lIII web ~
nem kal batőltllfll • hiblUres6l. f'eqze 1ZlII11IIC& S8IM"II baj, IllI11111dig hasznMnl
mIflItnénk.. Ha I 1!ibtk.8lHseltönánó inditib melen döntirok, • Web. con ri"
ba'lIilÓfAjh ,""heni kel. hogy jeIeZZíik. hogy 8 webhely hibllkBrml m6dban van,
dllIT6la V"ISUII web 0tWI0Per ~ 61 ....... hogy tIY6QZl hll'(ettíri:
8 1lI"'ségas m6dosItisl.

A~ ASP,N!:."T wdX>lc:bJI ~ 1xIoge,«IIxn .. 2 \o :11m mUD!", Fig)'clfllk meg. hogy ~nUI


aL oldalunkl':1 lálog;1l6 fcllUS-ln.ll6 Jál. me~'8}czik :lzz:ll. am;1 a s1.crkcmőben lállunk
(\l'YSIWYG - Azt ""'pod, amu IJI.SZ),

- Coogle

-
l.10. "
... OU A5P .'"ET uftJoldal
"'~____-",==-_J "RY b61~ m"!l/dlnt''I!'

A HTMl·unaIom
Egyes ,,·mttT,-aők ken)·clmo.cbbnek érzik. ha....,m a grafikus ~cmőre llmuz-
kodnak. lunrm a HTMl·(orri5lszmeszr.'c kbz,"k CI ~ wdJokblakaL IUr .. HTML
Ixo(rn~ fomis tWzelbcn :\11;!lJoon nem olyan könnyű b g}"OfS. mini :l $lcrkeszu'l
h:ó\$ZIl:ilaIJ, a címkéket. az dhdycWi b a bchöÜ50kat jol:>IxIn k,Mxon tanh:lIjuk
2. 6nro • AJ. ASP.NET pni\jlM,"'*i modeIjII / 39

Egy percre k~paoljullk ,~,~, ~ Dc~,gn


lapról ~ SoiJrc.-13pra, hogy l'nl'kelhessuk,
mennyi ld61l:1karil meg nekúnk a szerk"l'V6. A mcgleli ..:IŐ5en hos.;z(j HTMl·kódol
a 2.2 ptlda mutatja.

;'_~~::~~~~~::;.a8v~.Vb' .Inherit._.~;;;'.;";,-,-.--.->----------------'"
.
"3:
,
<iiXlC1'YPE h'IIIl PUBLIC '-IIWJCllrRD XII"!'IIL 1.0 'I"n.""itlo .... l/lm·
.. • 'ht tp, f I."..,..,.,,] . erg/TRI xhtmll/DTO/xhtmll- t nmsi t ion"l . dtd',.

s: <html XIIllns.' http, II"""". ",3. orgi H99 txhtml' ,.


6: <,,",ad runato· ... tver·,.
7: <title,.Untitled P"g"</ t itl",.
8: <fh"sd>
9: <body,.
10: do .... id.·fonal· nt.... t ··.erv"r·>
ll, <dlv,.
U, <tabia styla.·",ldth, lOOp": he1Ilht;: SOOpx·,.
ll: <tr>
14: <td etyle.'",ldth: IOOpx, text· .. U'JIl' "enter',.
1 S: <at r<:IllI,lHspan atyle _' font· h!l.i ly: Ari .. l ',. Yahoo< lapan>
.. . <I.t~on~></td>
16, <td atYle··"'idth, IOO;>x'>
11, <.... P'r-Il" Io.·Imallel· nlll..n~· .. erver·
.. . I .... g ..url.· IYahoo.qlf· I><ltd>
te, <Itr:>
U, <tr>
.0, <td styI".'"idth, 100;>", .""t-allgn, ~t.r·>
21, <etrongH .. pan styl",·font·famlly, Ari~l·>Goovle</Bpo.n,.
.. . <I.treng>~/td>
22, <tcl atyle.'",ld~h: lOU;>",:>
23, <asp, I_ge 1[)o.· I_g"., ruNlt _ ' .wrvar·
.. . l.IM~..url."-/Gooo;Ile.9If· Wldth"13Jvx' IH/t,h
H: </tr>
25, <tn
26: <td .tyl .. ~·width, 100vx, text· .. li\ln: center'>
27, <stronq><apa.n atyle~· tent - f&!\lly, "rt a l • >MSN< ISJ)6n,.
.. . <fstroIlq></ub
28: <td Btyl"~'w{dth, 10Opx'>
29: ~~v:I.m.o.\I" ID~"lmoge3" ru""t~·8e~v.r·
.. . l"_~.,Url~·_/MSN.\lIf· 1><ltd>
30, <!tr>
31, <tr>
]2, <td Btyl .. ~·wldth, lOOV'" text-"lIg-n, cent n'>
ll: <ftt ron\l:><svan nyI",· font· family, Ar iaI ">Lyccs</span>
_ .</atrong><ltd>
34: <ld atyl"."wldth: IOOV"">
35: <asp<!mag.. 10.'1_9,,4' ru .... teBerv"r-
.. . 1.... ~"lJrl~·_!Ly=s .\Iif· '~~ftd~
36, <Itr>
«I I Lr6IZ ......... IZ ASP.PET....

n, <ltebl,
]8:
H, <Idiv>
4 O, </fora>
H: < lbody>
cl : <Ihtl.h

EI6SWr b. ~tlUlluk,
hogy ~ $lerkent61<'>k0l'".1 IIT\1L·k6dol; ir he autornahkusan:
II <t"ble> és" llOW bpc.ol6d6 elemeket, llJen·c $Ii1USKbtoklU (fdkÖ\eJ. középn-
'!pZlIOO ~'eg ANI I>cIl1\·cl), K("bég...em férhet 11OUá, hogy a ~ew6 jó r~hány
pem:t megtabrit nekilnk ahhoz kl'pe&, minI ru. 5a~1 kez:01eg kellene belmunk ezeket,

Foris ~ is ~nDI HTMl. .lemeket 'tIgY webes wdri/ibt , TooIbo~


p , It*Ut III ....... , Sl'IIIkeszltllUtomltitUlln be/rjI • k6d!tUt-

KÖ\,etken'*.bll núzOk mrg a rqy lmage ...~ veztrl6 kődj;it (17. B ~ ts .'15. sor).
A GoogIc-kfp \'''~"T16;éld. kódp (23. sor) Igy fet
<"~1l' !_~.. tn--' I"",~e2' ~'>at.·, ...,,,r' lAalle\lrl.· IG<>oQl •. Ili f'
_ loIidtb.'lllg,,' '>

A .... d!es \"ezérl6k kód", ru.5Of11i1 a 1fT.'ll·re: kez""" &i Z<i!Ó amkck \'3n""k benne,
a k"W6 <;imk" jellcm;cőket t~rt;llmazh31. és Wr ~ pj!:lilil>:m nem l~thaI6, a wcbes
"t.~ keW6 éJ dr6 címk~1 között is elhelyezl«"!ilnk urulnut. Az !nl-n)"e5 J-ITML-
el(,,~k :<Okas:I.ga elk·o&e az up: 1.... '9.· .-.em Imll.·elem. sót .":I.l6j:;Iban az ASPSET
webes \'ezérl6k (~mdyek fclOl~ liSp' vnilrl6név) egyike §cfll az. Ez peNze nem
jelenI gondol, nlCr1 a Visu~1 Web Develofx:roen l~th316 jelöibi ncm egyeóP.Jk meg :lJZlI,
amil: nulll az ASP!\'ET oldalt ko!-relmezó bOngl'sz<'l mt-gkap, ~ webn .,•. d-ri(Ik ugy:1nis
ilyenkor XI-rrMl-megfeld6 k6dd.i ablrul""k - ~ bOngéSZ6 az lmil8(' w~ \'ezérl6
esetében nem ~l </11Ip: J_g:e> ek'1Oel. hanem az < i"'ll> elcmt.1 kapj:! nq, ~mi
t''''''blyes tn1l-ll-clem,

Hog)' L1ssuk, hogy:In ~ működik mindez.. lérjUnk "IMU a o.fllul t .<lSp>< ol<blhol.
3 böng61z6ben. és nt'l;:ük mell ou, mil)"cn fOl"ri$l is kapolt a böng6.z6, A forr.ís
n Intemt.1 Explorerben a View menO Souroe pont~ra kattint\'ll tclond«"!6 meg; ekkor
mcsn>"fIik a r-:otepad Oe&1·l.enÖrt1b) progl'llm a böngbú!be betöhöu Hn-IL-k6dda1
A bön~.6nric (lmernet Explorer 6.0l elkOldón Default. UpK okbllrn.lL-k6dfl1
3 l j p;<ldában Ulh~liuk.

1, ~lrX'I'Yl'1l ht"l PUBLIC '-I/W1CIIOTD XIrnJt. 1.0 TTanaitional/lEN"


_ , ' Ilttg, . ' _ . wJ • "nl 1~/"ht "llll:ll'DIKhtmll - tranal t ional . ,Ild" >

"
), ~I _ln,."h.ttp,JJ _ _ w3.or\lf1999/xhtaJ' >
" ~'-d><tit ll>
5: Untitled PIIII'
z.. 611 • ~ ASP1€T 1II .....1CIáIi mil '1 141
t

6, <{titl.><n-d~
1, <bcdy>
8, C fOnl ".,.,.=. fo,."l· _tl><>d, .po.,. acUon ,°Det.luH .....px· Id=" {, nol • ~
9, cdlv>
10, < Input t~. ·h!~· nu.'" _YID/STAT!' ld. "_VID/S'I''''TE·
_ .v.lu .. = • '"F.POwtIJODII !KDQONoEzZQQ01 IhHvtlPlhpvv.ql.JT9Mg6ECII' • I~
11. cI"I'o
",
lJ. «!!v~
H, <tul. nyI •• ·",j,·
U. <t~>
16, .. td "tyl.~·",ldth, lOOp." t'"""t· ...1I1J111 center">
17. <UTono;J>".""" atyle_' tont-I_ily, Arhl·>Y.hoo<l.po.n> . <!utTDf>\lHltd>
18, <td .tyle=·.."dth, lDOp,,">
19, <1"11 id, " !:t,.",,"l " er, "Yah lQ.qlf · .• tyle.·\;>Or,I ... ·"'ldlh,ap",· I></td>
20, <Itr>
31, <tn
22, <td .tyl.~· .. id'h, 10Opx, t .. n·alllln, ~nler·>
ll, cetrOl1Q><span .tyl •• 'Ion~' l..-tly, llTi.I">G0091to</.pan>. <1.,rOllQHild>
"(, <td nyl.=·",id'h, 1001'~·"
)5, <1-.;1 14a·ra.II"l· .«·.·QoogIe.lllf·
_ .tyl •• ""'idth,ll'px,border·",idth,Opx,· 1>< td~
~" cltr>
~7, ct<>
~8, <td .tyle~·",ldth, lOOpx, t"xt-aHOln, center',.
29, <stToflll><spo.n aty le . "I ont - f","-ily, Ar 1.1 ",.Mm-lc {_(lan,.. < { n rOflg><ltd>
30, ctd atyle~·",ldth, 10Opx"~
'1, <I~ Id-"i.JM","l· er, ·"MSN.glf·.8tyle."bord... ",Id'h:apx,· 1><ltd,.
3;<, cltr>
'l, ~tr,.
~(, uyle~" .. ldth, lOOpx, t"xt·,olign, ~'... r·~
<td
~ 5, ut fOflIlHepo.n .tyl .. ·t aflt -I_i ly, 1I~lel' .LyC"\8< IS(lan;>. ~!U [0"11>< {t d>
l', ctd .tyl •• • .. idth, lOVpx·,.
J 1, < lIOg ld~ 01_11"4 o . " . ' !,y' e .!li !" . ny I •• 'bonSer-",i<'lth dl".. ;' 'H itd.
l8, <{tr>
J9, <Itebl.>
(0,
41, <Idlv>
'l, </fo.--
(l, <Ibcdy>
U, ~Ih ... b

A 2.2 és 2}. pél<b k6dp majdnem tg>f()l"!m. de "an ~tun)' apró. ;im ann~l jeIen-
t6!cbb killönbso!.g. Ha felil1t6l kezdj{lk, az e-IS6 II IlPage U!35id~. 3mely 3 2,2, pfkb
I .>O<"JI.ban szerepelt, de 32.}. péld:l.lxm láth~t6 c1 killdöl\ HlML-b61 ndr lujnyl.lk
An ls megl1gydhclj(lk. h08Y ~ 2.2. pékb 10. soriba n 1~lou <tom run"t. ".erver">
ködből 0:1. 1<.11,
<10 .... _ . - fonol" • • !>od" ·pOet· action."o.feult. "Pl(' Id=·to ....1 'c>
, 4z L lill • IIImIrbd6Ic ASPJET"
I

<1nP\lt type "hid""'" M"'" • _VtEi<STATE' id,· _ VlEWSTATZ"


_ v~1' • • ·IWEPDWUJODM1MDQON.E.ZGOO1189~'VUDlhpvv&glJT9Na6EC~ •• • I>

\'''gUI megfig)'dheqUk. hogya l.2. pékJ;;i.bgn UlO(\ lmage"~ "~őket ~ l .3 pékb.


k6dFlb:.ln S7.;lIJ,,JnyOi!i <i"",,>IITML-elemek v;ihOlt~k fel. az l .... geUrltub;donságból
pedig" r. jellcmz6k Jenek.

Ezek a v~ll(ri"'* az i\SPI'I:.' okbbk cgy fontoS tulljlJons;igil:l \"IUgítanak rt: a ,,'CI:.ki·
szoIg;t1ón d&lllitOO kód nem fdk1lenlil:lZOnOi!l ~zz:.I. arrUI a k~z6 böngészl5 n-.eg-
bp." k..'reImt't:lZ ASP'\'ET·mocor kezeli, & levfkcn)~hez hozzjl..ü1Ol.1k a 5ZÜk.K~
,;\l!OZl:IWok e"-cgzese 15. &m khill. ahogy h'IINl'O$:On 1J.(JlJ f08juk a (ddoIgozjs folya-
mat:l nl:lg.íW foglalj:!. az okl:dl~ in. kisroIgiJ60klali k6dok \'égrdl:ljW,;;i! LS. A k1SWlg;1J6.
okbh feldolgom, aml'lyn: min<k." ASP.NE'! oldal kérí:sckor sor kenIl . tC$7.' 32 ASI'SIT·
el din:tmikus ,,'t.U!s tedJnoIógil\':I a böngész6nek dkilldöu I-ITML kolönftle fe~tldcl;
szerint, pBdiul qo' 3wtb::i.usb:ln le"ő, 3 f~16 .11tool be\.ill vasr mi.. forr.isb61
~ xblOk abpj:1n. progr.lfru'lI. m6da;ith:ltó

Az ASP.NET weboldal forrásk6d része


mel!",~ltuk al ASI' r>:1:;'T webold:41ak IITML résztt. fúrdllsuk ~ flg}'dnliln·
M06t, hog)'
ket a forrl>kOd~ ..~I,g a IlTMl resz az ASP '\ET oIeb] kO~lak~l. ,lIeI\"" statikus
wulmil írp le. a fordskód aZ! dOmi ~I. mi Iqn~ a dJrulJIllkus l;;lIu]omban

AJ. ASP,:-.JET oIdibk forrbk6d része két helyen I~het,

• 1"1/ó,, ftJfllxm - Az A~I' NI;, oldalak ~lIha!nak kél külön fJjlb61 n


d.ll n ...... aGP" &. n ,l ""ln ...... aps" . vb Jllom;in)'ból. Az dső talUl·
Iluzz;;a a IITML-t &. a wd,e$ '·~eI. mig a mhodik a f~6doL
It (enld)!, dkés;titett milll:i1Okblunk is igy tpOl fel. eg)' orfau l t ~
é$ <:gy o.tault .Up". vb nevú f1jlból.
• llOv/IIlmnab a/áj/nak; eg.. <.scrlpt> bkWkftllxm - A ~rrMl éo; J (O!'Ii~k6d rész
eg}·~tJ"n fijloon ls lehC!, ekkor a fonisk6d egy lií$.zoIgd/OOllfl,lf .. c-ript>
bIoIdd.oa kerul.

Bar mindkéllllÓ<bl:er "lf()8~lh;;l1ó. kÖll)'\i1nk p&.UiI:J<oll kü1őn fájIobI ha.zru.lunk


sok f~leqt(j eZl a mcgokUst rtsu:siti előnyben. mc.n Igy a t-fn.ll ti a fom..~kOd ré:5z
tisreibban dkOlömll, r:1ad.\su! az ASP.:>:!:.' korlbt1l dltoz:.uil)Qn mj, dónyei is \"olwk
a kk kOlön fájl hasz.n~I~!~ruk

Ha Il.Igy ASP:-.JET pro,cl«cn dolgozunk, szin!c bizt"". hog)' a kOlIIn fá~okat alk;ilnuw
m6dslcr nlClktt döntílnk. eZ('11lenük le a '-oUull]Qt emdJen ebben a kön)",-bell ~
Az ASP.NET '.... eboldal.Iorf6sk6d lim! kjl p'OQnrTIOlMi ~ 11\1'(11:;'" íhlljW. meo:
Vu Basic vagy Vu CI' nYaIVen. ~.Ifnben 11 • • , ~ VISUal s.ie nyeMi.

"" ....
Ha b6Yebb ISITIefeteUt RWfI,",,*. VISUII8asJcr6I. tapom4 lel IZ 5-1. érik

A külön f.ijlokal ~lkahnaz6 módszem,;l az ASI',NET oIcbl fomisk6d rts.ztl


h:tromfékoképpen lekintllt.1fÜk nq:

• Iv. egtr jobb g<XT1bfi\':1I ~z ASP~"'U okblr;l kannl1unk ~ SoIUIIOrl Ew:pk>n:rl>en,


és a VICW code (tÜX:I mcgcekilllbe) lehC1&egel ':llaszljuk.
• A Solution Explorerben ~nn~k n ASI' -':I!T okblnak il neve me!leu l~tha\6
pluszjel~ lunm,unk. ~md)-iknek. a fomhk6dj:5.1 .szerkes<:'...... , szeretnénk
EkkOl' meSJCkollik:oz oIcblhoz l:Inoz6 f(ll'dskódUjl neo,'c (oJd.tln~. I. vb)_
A fl~ t:II,.. hNt :I nb-re wpLin katUn, .... ,eknith<.1jiJ.k nq
• De5ogn ..... gy SouIU' nf:zetben:u; egér jobb gombj:;i""I .. z ASP_N!:. okblr;l
k:luirHunk. é5 a \-K.'W Code menüjxmtllt ~1asz1Juk,

'<:-zzük ~ nqlllOlll :I o..t""l t • up" foml5k6d It!Izét! A o..tau l t ...S"" . vb fájlban


~ kÓ\~kc-mc kdll:.llilnunk
Parli.l l ••• ..Default
Inl>erita IlYneoo"W~b,Ul.Pa~e

Ez il h:irom sor nundenképpen szerepel minden ASP_1\U oldal f0rrá5k6d rés7.tbcn:


enn8 keo.·esdJb k6dj;l nt.'ITIlchC1 egy oldalnak, A kód egy o.faul t ne\'\J CUrd{Jf(C!aSS)
hatlroz ""'-'g. amely a Syat_. Web.lJI. P... g-e 0$ZI:11y bóvI'be. Az oszt:!.lyok:lz ASP.NIT
:ili:lI is kih"C1C1, ob;ektumkÓZJlO"lI\l (objekb.JlooncnI:1lt) progr~moz:ís 1egfoocO/i;lbb q,í--
16kÖ\~_ A kövelkc-z6 n8úny reuben inekmt,ok:lZ objeoklumközponru éli az cscmtny-
~t prugnl1l()Ú5l; lu eZl!.'k fogalrnar... l mJr ~n .... g)'\mk. nyugodlan ugorjunk
III Esemén)Wc::cIIJk tU .~NE1'-bt!n dma részre

Utlonto~ ésmen t.t ........ 1J09Y az ASP.NET oldal ,orm;.6<! ,ésa kiazolg6ló-
OIdIIi k6d. Nwqf IZ 1, 6tíban tisztáztuk, az ASP.NET oIdIIIkllllimekor
III ASP:NET-motor IIII~ ~ I 1orfist6do1 " adja \'ÍUZI az ~
kllPOtt HTMl-II k6reImMI biinQéSl6nek.. Ya9'fIS' Ioniskódol' ~
nem k8l>J8 meg, csak IZ 8fedményt.

ObjelctumkÖ2pOlltú programozás - gYOrStlIIPaI6


-U A.W_''"ET .... ebokbl~k f0fri5k6d rb;;re az ohjeIlI"",lr6zpcmlll progmmozds(oIJtek-
~lt progr.llnoxh) né-\en Ismen programoúsi modeJlcn alapul. amely az
"hjcwtll mokm !IpOl Minden ~kIUmkö~ponIÚ prog"~$i nyelvben az culál)'Ok
~ be a 1egfonlQI.:I.bb Slercpet; ezek irPk Ic elvont m6don al obtektuJTKlbt
44 11. riu: • lIrn.tedá IZ ASP.NEH"

Az osztályoknak Illlafrk'/.sf<giIik vannak. amelyek n ~ktum :i.113poUl,f)ák le,


lagfiiggnJllyclk(met6du:;:oik), amelyek az obJektuITlOn ~'~hattlJ:llÓ ",ú,-ele{eke{
hatjrou.lík m<:g, illetve =''''")t'>.\!, amelyek olyan múveJet ..k. JJll<'lyekct Jl. oI>icktum
indit el. Az objckrumok az oszt1lyok pMdiill)vd, vagyis aZ ..!vom fogalom konkret
:1br.1zoI1s.ai.

Ez eJs6re nagyob bonyolultnak hangozhat, de egy a valósigból \(11 pelda segíthCl


m..S"iU,gítani a lén~ct. Gondoljunk egy allt6ra. M,ly .." dolgok irPk le 32 am6l?
,\Wyen mŰ~'dClekel md 3z alltÓ végrehajtani? Mily.. n események tneflnek végbe
n autó ,mlködbe közben'

Egy autónak különféle tulajdons.1gai lehetnek. tipus, modell, évjár:lt. szin. Szá""""
műveleIre képt:S: gumi, tolat, megfordul, lep:ukol. \'czt:1:6 közben mlnd .. nféle esemé-
nyek tört<"nnek, a f<"kre Il'pünk. \'agy bekapcsoliuk az .. blaktörl6t.

Iv. objef:;rumkö.lpontti pr~sban ~ objektumok műveletett It fltgfiiggvények


Ifják le.

A tulajdonsagok, rnűvek1ek (inn<::"t6lncvezzük 6k~1 tagfüggvényeknek) és események


egyiInese hatjrwZl meg eh..",\ formában, mi,.., k~ egy alltó. A7.trt elvontan, men.
nem cgy konktél au\6r6I be>zl'lilnk. hanem azokról a jcUemz6kr61 ~ képes>;égckr6l,
amt'lyek mimwJ aut6n.i1 megvann:lk. A mlajdons.1goknak, műve\elcknck és ~
n}"eknek az az eg)-1luese, amely ~lcJlá~glJ<1O leíTJ<l '7. autók:l1, az objektumközporuú
programozá5 fogalmai szerim egy o.;Zl:Íly.

Az objektumok egy adott osztály konkn.'1 péld~n~':li. Au(ós plikUnkruil m:m,d"", aZ autÓ
fogalnúnak egy kéUelfogh:nó megtesleSül6le, például egy 2OOO-eS évjiraIÚ méregzöld
Hand! Accord, objektum, 3melyre aZI:Ín aJk,dmadl.atiuk a~ ~Ital~nos (clvoru) ~U1Ó tag-
fiigg-.·;;"yeiL Ha a Ilond:IV"JI plildául CI s:zeretnl'nk menni egy :irulúzig, ll. Drive (men"')
ugfüggvényt IusznáJhaljuk, sz!lltség s:zeriru alkalmazva közben a Tum (fordulás) ug_
függvényt. Amikor dénünk 3Z 1iruh:ilzhoz, a Park (parkolás) ugfilggvényre lesz srilksé-
günk, a \'ás.lrlis befeje:nl'\'d pedig ki kell állnunk a parkolóból a Rever:;e (lolali5l
ugfilgg\'énnyel, majd a Drive és ll. Tum segll5égéveJ hazavelelnunk. Az autó objektum
működése közben kmönffle e;eményck történhetnek: az ~rulúz fdé nag)-'on valószínű,
hogy sz!lkslig lesz. a ..korm!ín~'kerek elfordít:llsa" & a J(lkre lépés" eseményekre,

Az ASP.NET weboldal3k ll'trehotisk.. h"szn~h progr:unoclsi nydvek má5ik fonto!i


s:zerkezt.1c az C$('méll)'kczcltf Az esemény, ahogy l:ittuk, olyan művelet, amelyre
egy objektum haszn~lata 9C>I"án kerul sor, u e5Cml'nykezel6 pedig az a k6drész,
amelyet a megfelel6 esemény bekövetkezésekor "~e kell hajun; Az cs<''flll:nyeket
Amilof.." esem6ny betovetkezik. azt ÍIO'(" mOndhIt~ hogy II tsem60y fJlindulr,
V1IIIY Valami kivM"". Il e$e~ II ~ lUttatASn pedig ~is­
ként II lIMrtkOZhahIt..

AZ ~reknek <=ic: akkOf \"dleljlik h:1UIÚI, h;i cxmén)'kezcl6ket ~lIunk homjuk


Az ~nykel....16 oIY'~n k6dblokk. ame/yel :1kkor h;iJlunk \~, ;uyuklX"ehndul2Z al;
csenItny, ame/ytkhez a kezdOt mt.oghatlrozruk Az JUIÓ Starung (indiljs) eseménYt:ock
escm(:nykezel6je pékUuJ <-'SY 01)'0111 k6db6I ~Ullat. ame/y aml utaSÍt", al; indíl6ku1csot,
hoSY gyuJlSa be .. rooIOfI, a J&n.~' esemeny bekö\!Clkenekor pro,g egy 01)'0111
k6dr.::SZI l\.OIjlh:i!uok ~~, amely a (ékdolJlxn SWl'Ítj<l a ft:kpo{;1\<:!.I.

Az ASP,Xl'T wdJOl<blakr,o gondolh:1tullk úgy, I1IIIlI ....seméI1)'\'eztrc:h progr.lInok.l2.


:unel)'eknek:1 forr1skOd ~ ~)'kezd6kb61 loU. Az ASP,!\1rr oldalak feldolgoz:;-
sakor többféle ....'<elllény is bckö\"C1kezhel,

Az ASP-ben és:l. PHP-ben, :1mel)'ek szint"'" dlnam,ku$ we/le$ h:dmol6gwk,:I. webol-


dalak fomhkód rbzc 5OI"OSlIn, rcnlr61lcfelt hajlódik \régre, .'agris ha a fOl'T.i.5kód
moodjuk ÖI.sornyi kódol: !.óllt;llrrutl., e\66Wr:lZ e/s6 sor \'égn:ha)WoÓm kerílJ sor, [naid
a núsod,k(>flI., ~.lt~1l a hann:ldik&:!., 3 negyedikén', 6; \"égiU :IZ ötödik...." I!.zl a prog"''!-
motisi. megközditésl, :Imdybt'Tl a kóWorok:lt eg)TI\:l5 uWn, ~ hajijuk ",.ogn:.
soros l~rchujl4s,,(JN llC\·ezlk. soro!; v4tn:hajtJ5nál .. kód r.. ldolgoZlis:a :lZ első 5Oft6I
h;tl.ad az Ulobó felé. ezm. tudhatjuk. hogy az S. 50fllQIl lev6 kód h;!.mal<lbb h"Jlódik
"égn:, mint:l 10. Ii« k6df;!

Az ... semtnl"·ezén:h progr.lInoz:lsIR.n el nincs fehétlenilllgy AZ ~Y"eztrc:ll


progr:>mok eg)'ellen '!OI'OI; r6zd. uok a k6<hon.>k képeZik. amelyek egy:1c1o«
C$e1lK;nykczcl6n bclOllaJ!ilhat6k Sok.\;zor rK:1l1 tudh:ltjuk, milyen sorreOOben fognak
<"hnWlni az eg)'<"5 ~}'ek, ~zl>ft a homjlik tartOZÓ öen>éIlyketel6k meg!li\':isi
som.'tldjtót sem ISmerhetjük Ezen kí"ül abball 5<"1l1 lehetüllk biztosak. hogy egy adon
eseményre eg)'jltaUn sor kertiJ..e

AZ aulÓ6 pé{<ü.ul rrutrad~'OI. tegyük fel. hogy aut6nknak a kö\'etkeZl5 esemén~'e1


vallll"k.

• Su.rung(lIldiús) • Applying brakes (fékezés)


• Stopping (1dIlJls) • St:.Irung ""uxl$lueld \\I1pen (ablaktöri61X'IGl~sa)
48 1L. . • . 'MI II' wASP.HfT...

e;e1n(:nyekr<' W.onyo5an $()I" kerül; ilyen példIul ~ Starung ts a S.oppmg o:scmffiy_


Mis l!!iCml!nyek "zonban (~Idául a Starting '" indshidd wipc'rs) n{'m fel'L'thmOI kÖ\-'ct-
keznek he, Emellett fehdleliQk, hogya Sl:I.rung <'5Cmbly kÖ\·ctkellk be eló!;lÖl",
a SlopplIlg pcd.tg uwlj::í.ra, de aZl miT nem mondh:llfUk lIle8 .dje5 hiZOll}'Q6Slgg;>1. hog)-
az App/)'lng brake:; esemtnyre a Staning ...1Jld>Judd ""Pe!S cl6n \":Igy "Un kerül $()I",

Amikor egy ASP_l\U webokbh kblitilnk. n:ngt.1eg oIy,In e;;ernrn)'hezll'trdlom;uunk


e;l!ménykezdÖl, amely az oldal élele.sor.in bck&.-etkcz.hct. Amikor p,.·..Hg egy <."S<:nt<:'fIy
bekövetkezik,lefu. a tlOZÚ 1<Inm6 ~seillE"ykezcl6 ( ha meghal:iroztunk ilyt'l). Az "ull..;
hasonl~lhoz \'i557;'II""'<', dko!f>~hel/l, hogy ($lk a Slarung b, a Sropping ~y<,khez
~ ~)~eI, amef)-drnek a kódJ;l akkor tu,odlk ICWe. anukor
a rrrgfddG ~y dmdull, Tegyük fel ptkbul. hogy a Slarung esemény kezel6jtnc.-k
kódja al aJ.ibbi k~ $OIb6I ~11
I\e(Iln Startl"", "'~f\yke~.16
Jel klllM.e a lIY\ljt"~.l'''..,lórul.k, hog)' 'ffIljl,BA be .. .,<Ort
Jel k(l1(16 •• II befe<'.ke"""'16n~k. h09Y adl'>f1 U._nyal,..__ II .... <lrnll~.
D!(1 $tarti"" &.~k ..nI6

Am.kor a Slarting esemény bekÖ\-etkezik. \'fgrellólflÓ(bk a SUnIf\8 e:;("m('nyk~ló,


El6slör az ~yke2d6 kOd~k ell;6:1Or.1 fut le, ma)d a mhod,k_ AZ autó wl)CS
forrlskOdp C'!Cliinkben ket eso:ménykeze16b61 ~II. amelyek közUl ~l "Illik ~ Stanmg,
a m1s,k a Stopplng eseményhez t:lnozik-
Elag'tn ,;tartlf19 -.-,.yk, .&16
Jel k~l~.e • lIYIiithup...'"".6nat. hogy IIYIijt ... be t<>rt
J.I ~Qld6to • • bef.,.kendu&ek, bDgY adjon IIz-..yagQ • n>t"rnllk
~ $la~t\"9 .~nykezeI6

lleqin Stovp\ng ..s-'nykue16


J.I küldhe a lo!kdobnak
~ Uz.-anyag-bef~lI:andooz6 1.611ítA••
llI>d $tOl>c>lng •• -.,yk.z.16

Wr a StJruns ~ykl'~c16 ~ fordsk6dban a ~oppmg esernenykC7.C1ó eI6n I:I.l:Ilhal6.


ez nem jelenti ~ZI, hogy elóbb is hafl6dik I'~re. Mi,·d az esern6l)'ke~ csak ~kkor
futn:l.k le. am,kor a t.ouJJUk ~anozó esemmy bekövetkezik, vfgrctu~asuk ~ndj;:I
az oemények .'lOm:ndje hat:lrozza meg.

Az a lényeg, hog). mmdig tartSUk bzben. hogy al e5tillEnykezel6knck a fomlsk6dt.>an


e1fogblt ~ nina haUssaI a ,'~jWuk.5OlTef1d;ére

A StartJlIQ H Stoppiog nemtnyeQt lentebb ltir6 k6d nem VaI6di Visual Basic kód,
h_m IÍgynevezen Al/t:ód Ipszeudot6d). Al. illkódokat e0'(8t1en prO\lf'8IllOZÚ1 nyelv
MtelfT18lÓje sem ismeri fel, viszont 8 Pl'OQI'lIfTIOÚsi eIVeknat III embari nYe/VIIe.I
k6m m6don törtht6 ...... ~ ablmasak.
47

Eseményk0ZBi6k az ASP.NET-ben
Amikor kódol lrunk egy ASI',NIIT wcbokla! forr:isk6d r61ze szAmár". escménykcuJo!Iket
OO1.unk Iéire, :IITld~'ek meg!t:ltjrw.ou ASP.t\tIT-aeményt'kre -nlaszul futnllk Ic. Jlrt.'Il
ASP,N!:' escnof"y példlul az oldal Load (becölt&l CXj,It,,}"C. :unel)~ minden ASI'1':':T
okbllektresekor sor kerill Uli egy k6drészt nunden aJJalonulul '"égTe SZCfI!'Inb>k
hajutni. amikor ktrelem ~k egy:odou ASP_...n okblrJ" hozzunk létre e5CIl~)'kc­
zd6I::a Load C5C,,~nyhel., és hdyezzii.k bde,. ki\'~nt kódot.

• Ib n ASPNIIT oldal IITMl rés:tét !:i.tiuk Design nhetben. e8YS1.enlen


k~ninlSUnk dupl~n v:d;aoo\';l,. tervező Idncrtre, ú:lk arr.. vigy.1zzunk, hngy
a h:in6be kalunl$Unk, ne pedlg valamelyik weIleS \'eúrl6r<' (példiulüunon
v::ogy lm:lge cimkkel_ Hl egy ....ri)es ,...-,UrI/5re laulI1Iunk duplin, n adotl
"e~ "ilimeIYlk ~yl'l~z honmk ~ (:S(:,,~,,)"kczd61..
• Ib:l forr:.\sk6dd;d dolgozunk. kk lenyíl611Sd:1 l<Il1lunk az;ablak Iele,ro.
A ""I oIdah Iist:iból ,~bS6ZUk II (f'2ge E'etlb) clL'Il1CI (C'bben Cl.UJh:nók ;az oldd
e5efIltnyei), ma,.:! II jobb oIl,bli lisclból II l..Qad leh/."l~ (l~sd a 2. 11 Jbr~t).
• Az t'SCmo:'TlykezeI61l:trehods.ihoz 6; az oldal Load ~>mény~hez L'íBild~hoz
SlGk:!éges kódol. 3a~1 keZllkg is bcirtlllljuk

,,_ ........ _...... .- .' .~"

2.IUIn
..u ok/,,1 lead ~JIinJU=Mjh ~ 1et,)fId Itslából JrlnJkm:wa 1>Ozrn.lju.k ~re

HlgseUenül anól. hogy.I.n honuk Ittre az esemtTllkerel6t. II mú\'elec eh,;~ utjn


II forr:bkM megfeJeI6 ~k \':lIlahogy úgy kell fe:slmlc, mint amIt II 2.4 I*l&ban
Ullulunk
48 t L Nu: • lInwbd6Iaz ASI'.HET-tII

4, Pr<'~',,,,,, sub P.. qe_u..dlllyV.. l __ "i".


A. ~l""t, 8yV.I. AR.
_ ,~It_.&v<!11tAr'$.) II.o.ndlu Me.Lo.od

"
6, 111'14 tub
1, 2nd Cl .....

A·' b 6, ~ kö~ birnuJyen kódol: bo::sni,h.3IUnk; az ASp.!\lIT okbl böngbz6bc:


,..16 betóll6ekor ezek fogNk végTehaJl6dni.

A 2.4. ~ 161f1e16 SOIszánoketnem UabId t.ínu't llon'6sk6db« ezek esik


Mf!: szerepelnek itt. IIC!OV 8 magylrizatblfl könrTyl!bben hivltkOlhlssLri.
• k6dsorom..

Ahog)" a k.....·etkezl'5led:&bm Ulni fogjuk, n ASI' ,lIT \lleI;>okbbk feldolgozis:a ködlen


sokf& ~)"le ker!lUK'I sor, Az oIt1alszml([ e5enlénreken (pékUU13 LOIld ~y)
ki"ül.3 ,'..ebes ..... ~16khox is \:Ol"loWm:>k ocrMn~'ek.. Az ASP,n ... ebes vezérl&
egyike p&UuJ a BUlton (,gomb). Amikor az oldalra 1......ed6 Liwg;lIÓ ~ ~ vezérlc5re
katlinl, ~ gomb Cl ick (IGHltI'odS) esern6l~'e indul el. b ha ellhe7, mcgh,na n;>1;I\.mk
egy es...'m6lykezel&. az a\)b,m le..6 k6d:l. It:uunw.s t\lltb~r:I ..,;greh:l.~6dik Egyd6rl"
uonh:I.n elég. h2 szigoni.an o;Ik al OkbI LOlId eoemmyére &szponlOSllunk

Awebes _ _ _

A2. Ml);!n kod.bban ~r be~l.éhÜnk róla, hogy a wd)<.~ \"ezM6k b; ~ stIlOku, HTML-
laJt:l.lom 1r.<lW« n az eg)'ik k{llön~, hogy a wcbes \"erenők progr~r))b61 il; eltffie1ők.
mig a IITMI,-wt;ilnut nem módosft/\3tjuk Igy Ezen ki\'OI a ",~)('S \'etéri6knek rulap:)I'I-
slig:oik i5 ,·ann:ok. pékLiul3 k<ribbln UIOU IlTl2ge \-eztrl6oek ,vii C'SY IlIWIgeurl neViI
Ilda~. amely:oz adon kcra6molor embleni.lj:lfuk L'RL...,.-:t 'kb meg. t:zekc:t
2 lul:ljdoos;igok:n 32 ASpXl'T OkbJ forr.í5k6d rb1kben oI\".3ShalfUk tos irh:Oljuk is

Az el\' bemulalislihoz csiswljunk <'SY kic;;il a OoofauH ...... px oId:Llon, b; adjunk a bp


letqéh"z VlIl~mil}...>tl dirt:l.nukus:1n el6:lJlitotl 'IZÖ"Cgt.1' A k~<lfOk """ei! es
emNem.I'l unalmaz6láb1ául rdc:tt rogunk eIhcI)-eV'll eg)' relu:Uot. a .,"drome 10 lll}
sile.;1 is 11(JOI' lllllmllfs_dátr<mjs..../dd' (Islen IlOltlII". ....ebl~-emen! Me,.. akhuillS_.kI·
lutn_és_ItIlf,,;IO.) szö>-eggd. ahol az akh.dJlS_d<illlm_I!s_id6n ",k!whs ditum b
időponl". webluszolg116n. (A webluszolg:\16 t'llben al. rR"ll>en a QJJI ~yi
S2!í.mu6g...'PO nk.)
2. !Sr. · fJ,zASP.NET~ 1_"Ij, lu

Ahhoz. hogy eZ! mes"al6síthassuk. ~rjilnk vi.o;sz:l a Default.npK f~jlho~. 6...:Úrjunk


be egy label (szö"egcímke) webe!; vezérl6t a <tabI .. > !1I'ML-d<:m~. A label vezér16t,
amellyel rbzlClescblx'fl a 8. 6r.ioon foglalkozunk majd, amI terveZ!H:. hogy dinamikusan
el~ilIi1ott szövegei. jelenfu.en meg egy ASP.NEr oldalon. Húzzuk a "cilt-rl6t az cg{'1TC1
a Toolbox palett!ír61 aZ oldal", Design '"~gy SOurcc ntZ<.1ben, v:t!l}' ha J kézi módszert
jobban kctlvelJilk. írjuk be az al~bbi k6d<x forr:h néoU.1ben a <tabi!!> eIt.m elé,
<asp,Label IIh"l.Isbell" .unat, "aerv... ' 1'e><t, 'Label '>e/aap, Label>

lia aZ old:llhoz adtuk a Label "ezerlŐ!, m6do:iíl5uk ann~k T!!xt (szöveg) €:s ID
(azonOS,tó) rulajdonsigatt. Emlékezhetilnk m. hogy ezt a Properties ablakly.m
'~ezrn:tjú k cl, de ha fom.-; néZt.1ben "3g)'unk, lehet, hogy gyorsahb közvetlenül
a H1?IL kódban m6dosíuni a ;e11emz6ént;keket. MindJ.;{-t módszer elfog.~dh:l16.

Töröljilk ~ T!!xt IUlajdonság ént;k~, az ID pedig legy<.'n cu .... rentT1_ (aklU<ilis id6).
A Properties ablakot a módosltások ... lvégd:M: után 3 2.12. <ib", mUl3tiJt .

........
-~.
- ,-
-,.

-'.
-- -
:;1

;,,-
I::---
-....
- ..'I' 'c'_

~• -- -
- 2.12. ....
Ji ='<~fm .. ll) h Ti!XI
mIhJtkmwlV.i/ módosflOlmk

A ,~Itozuth végrehajtása ucin a lllbej n:zér16 fOJT.Í~J):Ik íln' kell kinéznie:


up,l.Isbel lD.·cun .. ntTia... • runat,"serv"."></a$p,Label>

,ou ASP.N"ET oldal fOJT.Ísk6d resz{>ben rnosl beprogr:"nozzuk:l CUI.'"r"nt'l'iJDe nt"vG


Ubel vezt;rl6 T"xt tulajdons3~t, hogy 3~ a\uuilis dátumol b id6I jelenít.><: meg,
Ehhez l&jűnk vissZa a fOJT.Í5k6dhoz, él a kor:íbOOn lélrehQZOlt pa.,,,_Load esemény_
kczel6bc írjuk be" következő k6d5ort (lt:l lTIl'gnézzi1k a 2.4. pt;1d11, láthatjuk, hogy
ennek aZ 5. sorba kell kerillnie),
lJn"ntTi1I>e .Te"t " W.. lcOIIW! tO II!Y site, it h n"", • , o..t"Th'''.N"",
I
50 L r6R • IInwtecI6IIlASP.NET-CIII

FoodfOk nJCg. hogy II ",'dX:I; "ezer\6re a J"f08I"lImkódb::m :az I D rub)don.""ij l.'f1/:ke


~ Imatkozunk. Mwel ennek alUbj(lo:.oNJgn.:ok kor.í.bbaf! lIcurromr'l'a. éneket
adtuk. II progr.!mban II :urrent··t.. tLll.Jdon ....., fOllllMlan hh-:ltkoz/~nmk
lIidl~U'l!_

Ha belril* B current Ti .... nlYelI Iorri$k6dba. és kite~ Illo -vv pontot.


t VISUII web Oeonlopef ITII'iIjJIenfti az ehhez • webe$ VdrIÖh6Z .~ t..uldon·
56g0k és lIgfilQgvények ~st'I't. fllflllo; • k6dklll/ÍSZÍló szolgMtati!UIIk }fI(,lhS,nse
t n8Y11. és re!l\l8teg idill Iakarltllatllllk meg vele.
A magengeden IlMjdonúgok H lagtii~k listéjából c~ az eb6 rWIWlY
belli leÜtHáVeI k~ • kfvinl tlemel. Amikof • lefJVi6 lil;tábIn kl,e16l6dil
• ~ kJ04nt ~ 't'I\IV~. "II)'Sl9fÚ8n "'fOI11IUI:.1I1 TAlI ilii-
lIOtY(lt. és • VISIJII web 0tWi0PIr be/rjI MIyoeniri. I t6dot..
AmemyibIn. ",rr... t~ lao, H' pont beHSe udn nem,.... meo llIno,t6
Wl!a, al .rt "'11,
hogy • VISUII.....,., Drwelopw nem .... ilya! neva webn
veáriót al ASP.NfT OIdIII HTMl rHz6ben. Ha az lenne, helyzet. ~ hogy
,ltbeI vel6rt6 ID tUIIjdOIIS6g6I 'III6bIn unentTim.. 6rtí!re Milonut...

S~nlunk r:ii egy P<"I'CeI., t'o§ ~:a:ük a Default ....px oldalt II bönsc~l(5bm
meg most
(I;bd ~ l B. "brit), Az okblt~'1,*n n~lenlk II .'X'elcome to my ~Ite. II ~ IlO<\'
II/mul/Is dUm", h iM szöveg, ha pedig últ:llölljü k 3Z oldali, ~ d.ltum o!-s U IdG fri"-"il
f2 lól szeml~lk'lj az ASP,N"" oldil.!k din.1nlllrus ICmll~'S2C1l'1: egy olyan ultb 11 k67.;-
lettünk. amelynek Illlulnu nem .\il:oIukus. hőlrlCI11llZ aktuáli.s wlunuól 6; id6t61I11/Ol

~ . ,.,.-- ...
l . _. • • . • • • • - "

••
._........._--'"-
'" .~. , r - --

2.13."
lU A5PS~T oldal

a:: u"'wlu d<muPH)/ és


"161 """at....

Ahogy ~ I*lcUban ~Ihauuk, ~ ",ebe! WUrt6k lu13jdoru.lgail meglJ;lUrw.lullllk 1tWIt>f


K'tlljf<a HTML-;elölésbenJ. Illetve jmWmmbl;1o'(kódon keresztül) I~ lb tg}' \'ezerló
egy lub~pl ől P~ abbkb::lfl ''lIg)'. IIDIL részbt.-n ~dJuk meg.:I IUlai<Jon-
'l4p köz....:umüJ jtlitpJk be: a fenli ptkUb::In al. 10 tula~g<X 1I4il1»:1uk mq igy.
:az azt ~ pedig 31! I_geUrl IUIa~got. A progr:Imb61 \Of1m6 tflÓd()-
$II.1St a Label ~'eZ!r\I'i Text lubjdonstpnak betUílls;;t'-:ll :;;remldlil"ffilk
2. !ln • Al. ASP.NEl """,., f'
me "
151

Összefoglalás
Ebben a I«kéllO:fl jókora anyago! lek"lll'Uünk ~l \ ';zsg;ilódhunk~1 az ASI' .... er ,,'eb-
oId:11~k HTML mu\'el kezdtük ~Zlük, hogyan adhalunk IITMWbIj7.alOk~1 és
nW scuiJrus t:lr1~Jmal 3Z okblhoz ter\ezl'! m,zetben, illetve hogy:m ht1zhalunk li
wd>e5 "eztrl6kt'l u ~I ~ IS l:illuk, IJOg)'",n ''''I!OZUlllaCruk meg a Hn'l okbl
k,néutét a terv~ a Fon",u menü Iehe!&tge1.\'el, és mtgUt>uhuk. hog)' a grölfikus
(WY'i,\t'YG) tenew mellett II \ >§WI Web De>-eIoper aze ;~ megenged>. hogy ~ IIDlL-
kódol sajil keZl11.:-g írjuk be a Soorc:e lafXIII

Al ASP.t.:ET "'ebok\aJ mNL ~ t:lnulod.nymba utin r.ltntfink II forclsk6d


rtszn:_ Eg}' gyoN;IJp::"(",,~1 kCl(hllk, hog)' n-.ewsmc-rkedjUnk az objekl\unkÓlporllfi és
az escmén)"'t'zerdt programolhsal, majd megnéztilk, hogy.In lth.-In>nk oIpn kódol;,
ami minden alkalommal \'t'grehattódik. amikor cl6ször blOg:UUnk Ill("g egy ASP,t.:ET
weboldah

Az elmúlt 6r:1k pékU, meglehCl&en t'gYllzcnlck voltak; a ''Illáugban nem ...:,k I~·
nuk:u ,-enn6\]{ A "I. 6cllxln rlÚr egy pnkuku.sabb ASP:\'ET " ..rl:>ok!att kontilnk.
booyolult:ll>t, lfI"Ml és fomsk6d részekkel. el6ször azonb;an rtszIelesel>llen ~
felfedezzOk a \'i:\Uld Web Oe>'doper mak~

Kérdezz-felelek
K: Mi&t (I 'tmal/Jasfclld, mfnlltiszolst"óoldtll/ f>rOsr ....1I0u'W ",und I'pfttl"ll[d
miII/hm liSP ,\'liT u'f.'boltl(lll.?
v: A könyvben nén. ~:'llasztonuk a \-;suaJ Basicet. men II keW6 prograltlOl6k en-
~k II n)'-el....lt'k II h:wtNbt.ll könnyebl)erl rudfík dsajJliuni, mini a \'1OiUa1 C-~.
A \\SW11b51C u~i k~ .ilInak ~ hétkÖZl\apt ;o.ngoI1l)'eh1>el. mig
a \iMI~1 O- rejl.élyesriJb jeIdet ~Ikahml E1.en !ID'üI a \-isual Basjc nem lesz
különl"""'S"-" a kis- él. !lag},l>t1iIk kÖ1;Ö!t- a \-~\SUal O- igen -, így kisebb az Cl'oélye,
hogy gé~ híb:11 ~étünk, '''SY 1Ilii~, rfU57.1r:i16 hibálxI ~Iadunk belc_ A kis- és
nagybetűket nem mcgk\llönbö2l.eu5 progr:arrwnási nyd,-d<<'I .ilul:il:an kilnn}'ebb
megtanul",
K: MIIIo,.ciUn-rii SlaflAms ImlL~ haszIIáI", In-oes n'zCrlók heI)'('tI.?
/la SUI/11m! sz6t~ $ZC1'C1/1t"'1I mcsJc/.m(lt.,II, ~ncn1"11 fry""- be (/ s:ztJ/t-gel,
tVl8,l' luuxl/tllj",,1I u/bel t-eúrl6i, és lIiIIljuk be UIlIUIII Te.>1I"lajtlo,,~.g{jj~
v: H3 tudJuk. hOg}' 3 Ur1310m 5l3ukus Je=, dlsunlbb IIDtl~emeket, és
nem ..."dle "eZérl6k~ h:lw-illni T~~ h:l3 urutlom din:mukus,
mml ~ Label \'eztrl6ben megJdenitdl SlÖ\'eg példilloon. ,,'eI.>eS "eztrl6re
l~szUk~nk
52 [ I. NiA • ~ IlASP.HEhl

Eg)~ fejkQ:I:6k rnir..:luoruilt::llrrunden l'Inalomhoz ...'dJes vo:zérl6ke1 "llu.hn'lz-


lUk, ~" ~Jllkw. tanaImakooz is. \:'lóPbIon mi i.s en leUl.lk:lZ et'>Ó pdWnk-
OOn, "mIkor Image "e~rlőke1 hasl.ll~ltunk ..ullku5 <iI''II~ IIT\IL..-:lemek helyetl
HJ nem "agyunk jlrat06J.k 'I HTML-ben. "al6szlnll1eg koonycbl>nek ullljuk
""'ebes veztrl6kkd ""Ió n.unkll, mert így nem kell k~lnonk, h(~' milyen
IrTML-clcme1 h:a5zn:l.I,lmk (blor" kggyakoribb IIThIL~k meguLOlh.uók
~ Too/box paletu IrTMl bPflnl A sutdcwln10ll kód ""lotml\'eI in~bb:o>n
dolgozható fel. minilu webes veZérl6kkd jclcnítcnénk !l1<.1f: Slatlk,,~ wn.lm:lI.
de e:z ar"pró körOlmény ne bcfol~·j5Olj3 "dOmbilnke1 Jllwlmanuk
'Ill 'I megokUsI. Jmetyik ~munk .. kmyelmc::schL, U:a k.....ihhulln'tl-leI
dolgoztunk. I-I'J).tl-t:lc:mekkd adfUk meg a :II.ollkwi dc:mckn. mig lu d~'m
h~nér'rel nem rendelkezünk, 'I wel.>e< \'ez&l6k le~e.c:bb ,-:tl.."zthn.ak
tűnnek

Ismétkl kérdések
1. Mmek" J'Ö\'idi't6ie" WYSIWlG'
2, ln heI)'o:sen egyll'U$ba 4gy:llQlt ImtL~k(.1 u'tunk?
<lItlll><body~
<lIbMy Pint W~b P4\le<lllh
Th"•• ar. _ t.., of .ry f.vodt .. <hthlnq'"
<ob
d1>Jh,,~</lh
< h:>'\sP,II~c/U~
c l bll... ~"tba llc/\ ;:>
• ohc/b
<Ib 'v>-<Iht,.,·

3. '\hre ,,,ló,, IIPall" u~iWs? MC'1!FIomik:a ~


4. lIIi J nc....·e annak 32 dem&lyketdőne:k, 'Imetye1 'Ikkor kdl hasvcilnunk. lu
an 5ZCI\.'tn&>k, hogy egy kód minden alkalQmmal ,·égrdw~oojon. amikor
betöhQnk egy ASI',/'I;TI "'CboItbll?
5. l-Iog)':Jn adItilIUnk eg)'''''~ ,'C~ egy ASP SET .... ebokblhoz?

Válaszok
l. What YOll sec 151l1ut Yoo Get (Azt kapod. "rrut ];ítsl).
2. Igen 'lflC5 benne oI)':Jn elem. ;,und)'nel!." ketc16 cimk.éJC egy m:b,k l'"ICmI
kezd6 dmkéjt: uto1.n kóvetke7.ik. de a tifÓ dmkl:jc nem a nLisik elem Úfó
.::imlcéjc el6u.i1l
3. A ""'<;1" Ut:ISiIh k.c:gCszil6 tnform.iciókkal lá!!" od az ASP'TI-moIOI1. példiul
azt ~n,Jlp el, hogy mil)~ kismlg1Ióokbb n)'Ch-'eJ1 írLlk az okbl forti,k6dp1.,
illetve: hogy hol uUlh31Ó" forr.hk6dol: !~r1"lm:1Z6 fijl AZ ula~ítás ,,"'" ic'lenik
mcg" kérelme1.6 böngészőben.
•. PageJ.oad. Ennek al. ~énykezel6nck a haszn~Ia!~! a rorrtisk6dban
a 2A ~Ida szcmltltene.
S. Kétfl-lckfppen. Az eJs6 rnt,.'gOld~ n. hogy az egérrel a tervcz6be húzzuk
~ n~8Idt"11i webes vezftl61 a Toolbox paleujr6l, 3 misodlk pC'<lIg az. hogy
~ "ezerJó kódj.lt saillt ke1il1eg írjuk be Souree (f<.)lT.\5) ,*zed>cn.

Gyakoriatok
Az alábbi fe1adatok célia, hogy I<>bI>an megismerjük II ViswJ Web Dc\'elopcr n.crkesZ16
mt:lköd6;ét.

I. Az ASP.NETu'l?b<J/da! HTML otszé7/ck létrehozása fl l'islllll Web Dc/t.-Iopcr $i'8ft.


!égtfdcimt:l részben elkészítet! ASP.NET weboldal egy olpn <tabl .. > tITML·
demct tarwlmlZOl!. amelyet a L::tyOUt lJIeflil [fL'\Cft Table pontjának '>Cgítségl."·el
helyeztünk e t az oldalon. Miutin t"zt • weboldalhoz lI(kuk, egyszen1cn tx--~11ít­
hattuk ~ táblázat küiÖfÚele tulajdons;'igllit
Gyakorli5képpen nyissuk meg II Default. a'"", f:ipt tervez<) nezeIben, és
módosilSuk a <ubl,,> elem bdllitáS3it. Ih IcJ.Uint:issa1 kije1ö1lük II HTML-
tábl:iz;,!ot, annak tu13~8"i tneglClennek a Properties ablakl>:lIl. (A ki;elöl<'st
úgy I.S e1vegez.he!jük. hogy II J'ropenies 3bl:!k ICflyíl61istáillból a <rABLE> elemel
v:ilas;ajukJ Állítsuk most a border (keret vagy szegtly) tuLa~got 3-ra.
a C"llPadding (ceUakitöltés) tu13tdot~gnak pedig adjuk n S értékel. PróWljuk
meg m6d0sítani" BgColor (hiu&-s.7.in) tula~got is. Figyeliük mt'g, hogy
amikor ezt II tulajdonságot v:1Jasnjuk II Properties ah/3kb61. egy wnpaleuür61
vlilog:Jth:llunk. Nyugodtan pr6b1lg:l55Uk a I-ITML·t:lbUzat m:is rulajdonságaifl:l k
bdllltás.1t ÍIi. bs némlk meg. hogy a \'~ltoZ!:m'isok mil)'t'n hatással vann:lk
a tlbljz;,t megjelenés<!re II !ervez6ben.
2. Adjunk egy feliralOl a DO! fau l t . "S"" weboldal tett'j('hez ezzel ~ sZÖ\'eggel;
. Here Are some Populllr 5e3rch Engines· (Ime néh~ny népszerű kerewmO!or:),
A ,z&.'eg legyen középre igazított. bs aZ aktuális d:1tumot él; időt meSJClenít6
reli,."t feleli jelen;"n meg. félkOvér Arial belUkkel.
II feladat elvégzés<"hez el6s,zór ~1!jUnk a kurzorral kö,;\·ctlcnm a Label ",ebe;
vczM6 cll' II ten·ez6/;>en. maid nyomjuk Ie néh~n}''I2or az E.,"Illt billcntyUl, hogy
nö\'elii"tk II tfTközt. Ez utln írjuk be a Ikre Are 5O",e /'opu/ar SNm:h Dtg/Jlcs
szövege!. és ha beínuk. feJöljílk ki aZ egérrel Ez uliin v~lasszuk ki az Arial betíi-
Iipu51 a bal fe~ sarok közeltben l:Ilitható lenyiló Ji.sI1ib6l, legy\lk a 5zÖ\-'egC!
félkö\"érTé a Format meníl Bold lehCl6sl'gére k;i!lintva. majd végül i8"zítsuk
középre a S2Ö\·t'g~'I a Format,Justify. Center mcnOponnal.
Az l. gy~kor1atl107. hasonl6,," nundenkit arrJ bin:lUmk, hogy kíshlelczzcn
a Vi5Ual \X'eb De\'eloper f~zási lehe!~geivel. Nl'v:ük meg J*kUul. hogyan
fest 3 szÖ\-'cg m:il; bet\itipu'i~l él; form.'izáM:lI. FigyeJiílk meg, hogy fdsorol:\s-
jeles é; számozott l\Stábt Ls adlutunk az oldalhoz, és igy tovább.
3. ÓRA

A Visual Web Developer használata


II I«/ee /(molm4#161:

• Új webhelyek b ""cboldll~k K1rehozhól


• \,éIeu5 v.'ebhelydc megnyil:h:l
• A w:rke5116 !CSlresub~s:I ~ \"~al Web f)c.'eloper Options m<.'nQj{:nek
5C8rtség~'d
• A t-nML-t:l.lulom ('Ircnde~&e tcr.cz6 ni'zctben
• A fejlesztőkÖITIyelel ablakainak mozg;u;lsa o!s 1tmérele~
• ScgiI5tgk~ a lelq'>lIet1 $Úg6t6I

Al. d67.6 ór.iban n ASPNE'T progran)()Zási mOOclljí=\'cl L...,rieUl.ink meg, és megunul-


tuk. IIOgy.ll\ qxllrK-k fel ó1l!. A."P "I:."T weool<bbk t'SY IlTMl és cgy rorr.\sk6d rtnbI'lI
lb v~emll!kszünk. azllólnul!uk, hogy u. ASP./'.'ET oIdll l-rI'ML része statJku~ IITML-
e!emekb61 <!OS,,~ \~l&l6\( klldpb6J ~J1. mig ól forr.bkM külön f1Jlb<ln l:1UlIl:lt6, ts
különféle ~ykezd6kk(,! felvbtezetl 05<tilyk<'f1l ,',dó..,t!Uk 1TIl."!I

A7.. elmuk k~ Qrilxln bo.'P'll:ml;lsl nyerhenilnk ól \ I!;U3I '.ici> Devetoper m~ .


A könyvben \q,g eJ;{ a f<:jIes2!l&öm)=elt'I fOSjuk 1l:lWÚ1ru az ASP.~,a:T okbbk
f~té!;ére. A:J.I. 6r:lliIon tdcpitcuuk ól \&lal \l'cb De>ek.pen, CS n.n-.dellnek,ntenOk
5& I J. !Ml • lSrraUd6S II ASP.NEr""

:I,;.zolgjllat:ls:l,t. a 2, örában Jl<.>dig ~ S7.erk~Z!6 felhaSL/Úl6i f<:!Gletí-!x>n melill!Onk el


mélyd>ben, és an t~rg)-... Ituk, hogyan hozharunk létre egy új ASP.l\1!T ",ebhelyet, k
ho!,O'lln haSZIÚlhatjuk a gmfikus (WYSrwYG, .l oll! kapod, amit 1~1S.l·) (I.'I'\'C'lÓ (Design)
M-Zetd, a ln'ML-t mutatö forris (Sourre) nézetet, ilk"lVe a fOl'Tisk6d>zerke:sztÓl

Mivel a Visual Web Developen61 n<:m fogunk szabadulni a kön)'\' .'lOrán, felté1l<:nül
I'rdemcs id6t sz;'inni rá. hogy reszlete5en is meg,sm<:r1<edl0nk vele. A Visu:!1 Web
l),o\,e!oper kifinomult, széles kOr'll ~zoIg:íl(3tásokkall!s has1.nO:S kl'~kkel rendel-
kez6 programozói fejlte'5Z16kl:>rnyezt:l, Mint mmden szakma esct&en, a progromozjs-
IXIn is fonta:;, hogy jól isrner}ük a rendelk<:z6ünkre :Illó eszközöket.

,
Uj webhely létrehozása
Amikor elindítjuk 3. VISUal Web Developen. ~ Ital~ban I'agy új webhc1y(1 akan",k
létrehozni, v:tgy egy mcglev6 w<:bhelyet akaronk !ll<:gnyitní. A webhdyck kolönfl'le
fQI'I"i$f~jlokb6l állnak .statikus és dinamiku5 weboldabkból, képfiPokból, súlusJapokból,
bcállítófijlokböl, l!s így to,.-lb!>. A f1jlokon kívül II wcl>ll<:tyck alkÖll)'Úr.dmt is l:'I!ulm:,z-
hatrulk, amelyek mlndegyík<'ben uj:lbb fájlok és lov1bbi alköny.1lrok k.4>ctnek. leh.1t
a 'I','ebhely olyan. mInt egy mllppa a u.ámit6gépen, fjjlok és almapp:ík g)'Il""jlt-m(,nre,

Ha új webhdyet Slereméruc létrehozni a Visual Web IX'\'eloperben. bllinlSllnk a FHe


tll<:nü N'cw Web Site (Új webhely) pont~lr:l, .... gy egyS7.<:rUen II New Web Site gombra
aZ eszköruron, Mindké! mlll'clct hatásir:t II '>:ew Web Site párt:>e5d-dablak felenik meg,
amelyet a 31. :íbrán láthatunk

-~...... >"

__
.. ..
1-"'-- .--- -----

- -- r--;;.'" - _- ,
'-"--- ~ ---- -'

3,1,~
fl] nobJtdy 1o.1rchozdsa (I Ner., Web S#~ p6rl1ett"'k,bh>lK>~ ~,a/
3, 6ra·AViIuIIWllbD"I·I~h t: '.157

AIélrt'hOoundó ...-d:>I>cI}'et kiilörúék solMonok ab~n k~JÜk cl. Van sabkln


al ASr~TI ....ebhel)Tkhez (ASP t\TI '«'eb SIU'), az ASI'SI:"T ...lI:bszoIgáll~tl.o;okhoz
(ASP"!:, Web Service), 11 kad6k .SZem,fI)~ ... ebhdye.hez (I'erl!onal Web S,le SCaner
KJt), Illetve al: ~ ....ebhdyekhez (Empiy \\~cb S,lC), fOggcdcnül all61, hogy melyik
$lIbIonl \-;lI:oSllOouu k, lOOcjön a webhdy; a s:;abklOOk közötl ~ killönl~ al jelt'nu. hogy
milyen abpmcJmczcu fjjlokal fogbl~k bel~ ~ ,,(~-bheJybe, lI:l. el6l6 6rnoon például
Ijlh;lMuk, hOogy az ASp~...1:." web Site sablon alapjln 1(:u-d1QWll. webhelyek egy
.\i>pJlat. noevíf mappiival, ilJen-e Idrom fil~LaI-Oehult.a ..px, o.. faulLasplC.vb és
_b. -" .. fi; - jörtnek ~_ AZ Emp!)' '«'ri) Sue ",",blont d.Ia!;:r;n"a oI}.... webhelyet
hImInk !&ft, amelyben "j.,q egyetkn abpmelmezctt f;i~ vagy mapp:! 5eIII

A ..... bheIy$abIoId: III I eM! Sll'g6ljjt, hogy t.IgyorsIts6k. WebIbIrnIZ6S06:


~Wt.. A PWSOnaI web Sil. SIII'I. Kit SIbIan PMdiUI o/ya1 okIaIalat 6s
~Il ápit, amiy......t I $l8~ ",.boId"'Jton $lIIkUri: 1MnI.
(Err6IISIbIoIlóllhttp" ' . . , .. i 'r' ,ft alasp.netl.r,'hivei
default ,aaplClpull rI ibnrylanu Idn.nw1htll.llpw1l ....P címen
UphItLri: b6vebb lIlformációlf
f'nIbáliuk ki I My Templates Imben lZtrejli6 S.arch online Templa~ Iehet6s6gtt
js, ameIyeIaz InIemelefI további - I Microsoft" misok AltaJ ktls.zítell - webllelv'
sablonokat kerlshetilnk.

IUr ...·ebhel~"lf;;IbIonok széles kilÚlatábOl \'ilasttlllltunk. a kÖf1pilnkben szercpl(l


nbmenn)'j p&b az ASP,"'TI Wri) SlIe sablonr.l éPOl_

Wcl.>IJdyiink lehet a :'Mjlt II ~mitógépOnkön v~gy egy !:Ivot. gq,en. A ~a-mel}i wmj·
I~ ~JI:I.Ulxln nem 0ZemeInek webluswlgll6kcnt, lelcit ~ gép, amel}-en doIgnwnk.
,,~lónillcrJes nem ad otthonI webhdyclmek, A PCI d~ sajjt etin haszn:lllll.
wcbböngés2~.levelc~. sWrlIkol.ásrd. és igy l",'<ibb A nyilv1noss:lg uinúra
eltrllet(l webhelyeknek ~lIaláoon 1I'thgtl:u/(, cégtw ~dnak helycc, amelyeknek Jlland6:ul
Ozemcl6 ~mít6gépei folpm;uos lcipc$Olatot l:lrtan.lk fenn n Imemeucl. Ezeknek
:I. g4leknek az ~z egyetlen febdlluk. IlOg)-' wehhd)-ekec üzemc1c~k ....cbkiszolg;11ó
SrOI"tVeT fut 11l~lJk, és Imyegtbc:n ~zzal,ölhk u idejuket. ~ II bqÖ,"(l ktrelmekre
v~nt;lk. Amikor befut egy ...'cbokblr:l uinyuló k~. reldolgozz:ók az okblt, ('$:1.1. eI6Jl-
liIOII pdöI(lnyehi kódot ~tadPk II kérclmelÓ~_

A r~ azonllCm az épilés és ~ t.:5Zlel\'S .KlOin gyakl1lll helywk el .... ebhel)·etkec


a ""I'" n1nlieóg<:polkoo_ A webhel)' igy nem éfhec6 el az Intcrnetcll keresztül, de ez
igy is van;6l, lllCft ~ ...·eblldy ekkor ~ nem alkalmas nyikmos közzClélelre,
511l , . • 1In.tediI. ASP.NEr....
Amikor:Ol webhely löktlet~ működik. késttn JII arr:l. hogy elhel)'1.'nék ~ lh"Uli
webg:outinJt ahol.mr mmdenki. ak, ~kezik in[emetb~lbl. e!éffieti fgy is
dönthenlnk pcnu:, hogy mJr:Ol fejbné'l elq.':l6I kezdve egy [olvoll gépen helyeZZük el
.. "'ebhel)'l:I, ehhez cs;Ik t'8Y flÓkl1l ~"~n szükségünk a webg.azdil,,"

IIenQIIIg '{,Ib a~ ("Mb IIostrtg) c'v il • ~. kÜIÖnbÖl6 ~


lOU" - és ~ RlliL Iyen céget ~ int8llllln ~ lII6IIaIlD.
de az olyan wtbhelyek segitségét " igénybe vtheljiik, mIflt a Hostlnde~.com 'O'8Ilf
• TOflHosts.com. lInIIYet nyMntartist vazetneit • WebQaZdt c'oekf6l.
HB úgy döntiri.. hogy ASP.NET "".~lÖ.a1 'WI WebgaZdWI Jowuk thtyemi, t1'ItnO
dri.~ ~ meg. ~61. hoQy ....roIgM6i lá,,,,,,,,..·••
ASP.NO Z.Q.l

lb a webhdyet mégts a S;lJáI gépilnkt'ln ÜU'fllCllt:tn6lk. en kMélekq,pl:n tc:h\!ljOk meg

• A/ajlnmd.szcrer.Ilerts2l1il-!'.kkor 3 mereo.lemezen It:m.·ho~nk egy kl'wl~...tir:lI.


amely II w~bhdy ~riónyrf,inlil!nl szoIg~.I A webl>clyl'leZ tanruó \':ll.mlennyi
f;\~ éIIll1iIpp;! ebbe ~ könyvt.1rl,.. k..'I'01
• A Microsoft lIS u'/.'twiszolgál6,ki/1 IIcresztm - 11.:1 " slfimil~nkre telepit ..'1tOk
az !nt('ffll'l. lnformooon Ser\'1C05 (liS) kiswlgilót. ,.zon keresrttil is nlfficödlethe-
!Ünk egy "ebhelyl!1_ \lelll"tn~ azonban. hogy az liS <.:sIk a \'rmdoY.s XP
prof"e5Iiional é!lX'indow, 2003 ~1'.. er rendszerekre [eIC'plthel6. a Windows XP
Home kl:odásira nem

H,,:Ol wel>helyu hd}i>en weretnénk Ozemclll:lm.:Ol Loc-.oIlion len}iIO l\SÚbóI ~JI;ass~k


3 file Sy>lem lelll:1~. =jd k<1umtsunk BrowSoe gombr:l. amely 3 3.2. abriin lJtI\316
Ch<JO$e i.oc".oIl !on (Hely kld"'~) pirbe!;zédablakOljCleníli n'lel!

3.2. Mn
l·dllUtt". Itt
" u'ft:th.or'"l11. IteIl-11!

A ~bbk bal okblt oszlopa 37,01<:11 ~ kűlOnbözó hri)·ekCl. 5OI'OIja fel. ~ho-~
a ,,·ebhelyCl. mcnthctJ(lk
Ha I ~ nem telepltetti1. I Microsoft IS WebkrSlOIg6I6t. felmtri.fltt
berIr1íiN I k«dn, hogy IZ tI6Z6 IeckiWlen hogyln VO/tJ.ri:; képasell; IIle1Itektnteni
IIQV ASP.NET oldalt egy bönw'sz6ben. Nos, ezt. V"1SU1I Web Oeveloper tettlllhet6vé,
men ehhez • programllol rneMk.lllten kapunk &gY 1ec5llpaszltott webklszolglW6l
1ITNI!ynvk _ASP.NfT ~ web Setver. Ezt killljazattan webIW,eII; helyben
liWIn6 l8Slt8I6S4te tll"Vllt6k, .mt az adott gjptn kfvülr6l1itUm mindeli cutllkrds!
kls6rtetat vimartasft.
AJ. ASP.NET ""'1I01l0"fU web sarver eI6oye:, hogy. V"IIUIII web IM...... esomag
raz.. vf ll. MS·t nem tímOgatD WIfldows XP Iiome l.iidsMt Mtal611'
liInII10matnIIr 61 kOPrÓbMIttnat ASP.NET 1IIUIrnazáoUt.

lb a webhelyet ~'g)' 11,,011 g(1)en s~retn6tk elhel}'<'lni. d/a.%zuk a ml1' \'~gy az I'TP
Id\el6stgel. éoi adjuk ",.:g " I nll'·. illet"... ~ll><ÍlIIol1. AZ 1'11·· hely~k eseté-bcn """8 ken
;><\nunk u fTI·-ItisulIg1\6t"ól 5ZOIgllubs kapuja!. köny...t~r1I. illetve '10' f..,lha':lnJló-
nO..'WI. b ;elszlx, ameCU"wilien a névtelen hozzá(&e nem e-ogedayez.eu. A InTI' bdlbÚ$
"''''<1''19 ~ a webht:1yd< k.'ueI·xdsalo:or keI.I meg:ulnunk a fe\haszn;\lOne\ilnket és
a )t'Isza\unk:il Azt. hogy IfIll'- \"lIgy FI1'~ \"liO SZiJ~. a ...-ri>gazdo ctgt&
tudhal!Uk meg. és t61ük kell megkérrleznl1nk a csatbk~ w.l~ ~""MIo()hl1.5

A forráskód progralllOlÚj nyolvének kiválosztása


1\ I.:Ingwge ( Srelv) lenriló lr.UbÓI ki\~l3szto1t bdUitls hal~ro=l Irq:lZ ASp.NET
... eboIt.Iab,nk fOl"Thkód rtSU-bO:n II:l.'W1álI progr:unOWI n)"eI\·et. Ket n)"elv könil
\-~bszt.ll:llunk az egyik a \'l5I.Ial BasIC. a m1l;ik a \ISI.Q] C--_ AtJOg)':lZ dóm l«kclx-n
emlitt:nuk, a kön)'" peld:liban ~ \'~I sasicet fog,uk I~I",

Ha mér programolIuoI:; Jav. vagy CJt++ nvelven, • Visual CN nyelvtlnil


ISiTlllr6sebb lehet I sz6munkll, mint a Visual Basod, A Visual BasICet 6ItaI~an

.""""""'"
alOk választják. lIkik nW haslNttík ezt I nyt!vel iI.tVt azok.. ..ik m69 )inI"""*

Ha Iiibbet ~ lIO:i I ViSUIII C#.roI, ur.$$ij:. MI. MICrOSOft ViSUIII C#


Oewe/opel c.rt« IWb~ /h ttp" , _ ,n. ""Ivc .,,up "
VII/'( olvassuk" Ktm Hoffmln Microsoft ViSUII CI' 2005 CímG kéirryWI:
(ISBN: (672327767).

[k ideiC'. tlO8'T némi gy~korlalOl SlerezzOnk a VisIlal Web [kvefoper-f«le w.:bhelyk~-


5Zit6.b~n. ezbt hozzunk ~re egy Iii .....ebhelyct az ASPNI:.. Web Site sablon ~llI,*n
IleJ)"k/!nI \"~Iasszuk a File ~$Iem Iehet6s/!get. tetszé nerini jelö/jUnk kl egy kl.loy"t1rt1t
a wd>hely wndn. a I.:Inguage be1Uiw pedoglegren VOOöoI &sic. Ahogy az d6t6
60 II.mz· l5mt!bd6s III ASP.NET-taI
Iec:kében l:1nuk. e],.zel egy oIpn webhdy jön Iwc. amelyhez egy APP...Dat .. nevU
mappa. egy Default ... spx nevd ASP_NET oldal (és az annak megfele16
Oehul t . a .. px. vb f;ijl), illetve egy web. cont ig n...,,6 bdltft6fájl Ianozik. Ez,;,kL'I
~ fijlobl sorolja fda jobl.> fels6 sarokban található Solution Explorer. (Ha nem l.1tjuk
" Solution Explorcn. kallin!l;unk" Vlev.' menO SolulÍon Explorer ponljára.)

Létez6 webhelyek megnyitása


MOS{. hogy l<'trehoZ!unk ~gy webhelyd. I~ssuk. hogyan nYIthatjuk meg aZl k~.
El6szö< is z.1rjuk bt> a webhel)'el. vagy úgy. llO!:I)" kil/"pOnk a Visual ~'d> O...... elopo..·rh6l.
vagy úgy, hog)" a File menil Close Project (PrQjela beúri.sa) poIlljjt v:\!asv.juk.

Miut;\n bez.1nuk a webhclyet. nyi55uk meg újr:> a File. open Web Sile (Webhely
megnyit:lsa) ml.'mlponllal. Ez megnyitt:! al'. Open Web Site p;\rbeszédablakOl. amely
csaknem ponlQ5:1n megegre]jk a j.2. :lbrdn 1~IOIl Choose l.oauiOl1 ablakkal.

Miw13 ",:ebhl.'lyct helyben. 3 stimít6gépO.nk f.íjlreT'Kb-zer&n hoztuk l(,{fe. a webl>l.'l)'et


úgy kl.'1I megnyimunk, l~ a baloldali oszlopban a F~e System ikOl'1 ,'l\lasnJuk. majd
megkeressUk azt a mapJXiI. aliO\"Ci a webhelyet helyeztük.. Ha me8""~n. bnllll5Unk
al'. Open gombra.

Ha a programban mlr megn)'itollunk "'gy webhdyet . n új webhdy megny.tá$:! bez.1rja


nt. és betőltl az újonnan kiv;!lasztoo webhely I<Inalnt1t a Solution Elcplorerbe. Ezután
a swkbos módon doIgoz/l<ltunk a wcbhcl~1:Tl; wcbold~lakat hoZh:llunk l/"lre és szl.'r·
kesZlhetlÜ.k azok lfINL. illetve forráskód részk.

Ha nemrég dolgoztunk a wllbhelyen, gyorsabban is megnyitha1juk BVisual web


Oeveloperben. a Fila tTMInii 1IQY8ntS tart81maz Bg'{ Rll'Cetlt Projects (A legutóbbi
pt'ojekm.l fIeYIi pontol. IIITI&IY relsorolja a IaguIÓbb tnII~itoll Pfojekteket.
Ha ebben a listában I kfváo:1l Pfojekt nevére kattintunk. IUOtvlal betölthlltjük azt.

Munka weboldalakkal és más tartalmakkal


A webhelrek valójloon csup:ln egymissal kapcsolatban ~n6 fájlok és ~lkönyvt1r:1k
t~rol6i. A ....ehhelyek ;!ltalában ~ követkeUS tipu$l'i fjjlokb6l ~UJ\:lk;

• $tatikrd "clxJJdalak- A In·ML oIdalallstatJlrus weboldalak: n ASJ>.:'IE1- oldalak·


bl ellell.lClben C5Wlk HTML-lunalma:mak, ....cl,.", vez.érl6ket és fomisk6dol; nL'!n
Ahogr a név is sug:ollja, n ilyen f~jlok t~"alma Slatilru5, '':Igyi5 nem \'liltoZ!at·
h:lt6 meg a felhasználó ,,11<11 bevill "'SY ~ kis~oliPl6ról származó adatok. '':ISY
kOlönféle feltételek alapj"n_
3. ÓlI • A ViSUII Web Dr....,.. ham"""" 161
• ASP.NJJTu'C/:JQJdlllak_ Az. ASP.Nl:.T oIcLlbk a ....ebhely dhumikus oldalai.
Ká f~jlb61 ~Unak, :l.~ egyik ne..... a~ Oldi! lN"ve. up", fortTÚt követi (ebben !;Iti!-
halÓ a ln"Ml rész.), a m.1síké pedig az Old.olNev... lJBpx. vb aiakOI (ez ~Z ~lJo­
núny !;Irulrna.7.la a foll"ásk6d részt).
• lú'PfiíjloJi- A legtöbb ....ebhelyen lal~lunk képeket. embl(,m.1k:1l é!. m~s gr.. flkus
anyagok:ll. A kt'-pfájlokat rendnennt a webheJy g~"Ókérl.:ön)'\1:ir:lhan \"~gy
egy Images (Kq.ek) nevU" alkön}"tirban ÚJ"Olják.
• Bffillí/6fijjloJi- Az ASP.NET webhelyekhez egy web. config nevű bt>~llit6f~jl ;s
lanozik, amely a kiszolg:llón:1k nyújt bei.llíwi infQTnt.1Ciókal.
• Stílllslapfájlol4 - A .5ll1usl:lpok oIY'1Il fájlok. ~mel~"Ck " IlleSJClenílés1 w.abályoWik.
El6fordulhal péld1ul. hogy azt szeretnénk. 11<0 a v..-ebhelyunkön minek.., szöveges
lanalorn Arial bet.iitipw.sal jelenne 1TK'8, a <hb címk&en belill! !;Inalrna.k pedig
dőlt benkel Ezeket aZ eszt~kai utasítáwkat adhalJUk meg Slíluslapok !;egítsé--
gé-\"el. A Slíluslapokról a http : . I ......... w)8chooh .CO!!" "'8' elmen tudhatunk
meg többet.
• P(m",csfájlol4- A kiswlg1l6oklah forr:'isk6don kíllŰl a ","ebokblak l)grji:~oId{/1i
fJllnmr:..skódol is tllulmazhatn:lk, '"lIgyÍ$ olyan kódot, amelyet. a végfellJ:m"ml6
böngtsz6;c fuua!. Ezt spkr:m önálló pamnao;f.iilOO csomagolják a weNti5zolg:llón.
amel;-"el a böngt'sző ig~y sn'lim kl'..- el a kiszolgMÓl61.

A fcnli felsorol5s a <I.'Cbkiswlg:í16kon álmlánOS:1Il meglal.1lhatólegfOfltosabb I'<\jltípu-


50kal urulm:uza, dc koclntsem kiment61i$l.a Egy rockzenekar wehhelye pél~ul MP3
f~jlokal Í$ közzétehet. am<'"lyeket a !:ltogatók letöhhetnck. al. ASP.NET webhelyeket
pedig lelS1.&. :w:rinl !>6v(lht.1juk killönféle fájlokk.:lI, am.... lyek 100"bbI szolg:lltallisok,u
nYÚjl3n3k. E"",k kÖ1;Ül a f:ijltípusok közül többel is megismerkedunk a könyv somn.

Tartalom holláadása a webhelyhez


Amikor az ASP.I'oTI Web Slle sabkm alapján hozunk létre új webhelret. eg)" (va!6Poon
h't fJijlb61- Default .asp" é!. Df!fault. aspx. vb ~ ~UÓ) Default .... 'H'" nevt1 ASI'.'ffiT
oldalt, ,""Iamint egy web.config fiilt kapunk. de a webhelyet egy.szt:nJen b61.1thetjük
to\'lbbi f~jlokkal és mappákk::d" SoIutÍQn Elt:plorerben. Ehhez kattintSunk az egé..-;obb
gombjával a webhely neven::: ig)" a 3.3. ~bcln I:ltha16 helyi menÜ jelenik meg.

Ha egy úi m.1.ppát szeretnénk a webhelyilnkhöz adni, dJat<Sl.uk a mentl New Folder


(Új mappa) pontj:it. ha pedig egy fijll. az Add l"ew ltcm (Új elem houJiadás:,ü
Iehct6séget.. Ez utóbbi m<'"nüpon\ \"Jila$Zlft$:l ~én az Add New [tem JY.irbes1.édablak
)t'lenik mes CSA. :100), "mely fel5on::>lj:l. 3. \'álasztható f~j!lípusokal. Megfigyelheljo.k,
hogy in 3. korábban említett leggyakoribb fájltípusok és mis .::illom:\.nyfajt;lk egyar.im
megtalilh.:Il6k.
-- ---
111---
_.-
. --
·.d~ -- 3.3. MIllI
{'Ifojl <"ItI".-ppt> /Jor:n:io<lásoIb
"'",,,mo'" ott ~'r jobb JlOnIbJu''''
Q WebheIJ' "~n.,.., Q SoI"noll l.i.rp/orerl>cn

-...._--
--.-
--. ,: .É----
~~-

.--
~- ..
-- E=-:--
. . . . _<-0

(':':"

-- -- l.4. MIllI

- ---
Az Add Neu'I,em
._._-::;;=~===-
.- ----
---'--"
pdrlNat'<u.bIilJtb<,"
1ritdJ.tc:,/wlljuIt. ",ol>,""
Itpom/.fdJb U>!n.'f~
" .. OI'bIIdJ""'" ",I",

... .-.....
Ha ASP.NET oldalt szeretnénk. ~ adni, a web form tlpusl

Al. Add "ev. [tem ~rbesz<'d:lbl3k aljin kQ1Onf~le Ichrl6séJ:!eket t~lllunk A:l.. hog}
poolOSan milycnekL1, ~ \'~bl;Zlott (~j1tIpu5t61 fUgg A \\7..4> Form típU$Ú f~jIok e:S('t{;ben
<ez u ASP.:-'1rr okblak dnntípusaJ ~ brilliW irienik meg
• ,vllmcl:>.ev)- Ez:ol Bjl Jeend6 Ile\'ét adp meg.
• /.a1l8"agc(Nyt'[v) -lu hal~ro;:haLjuk meg 21. oldal kis:zol~IOoIwli fomisk6d
ré5renek Ilyel"tt
• Ilac" codí' ill ~m/<' ftk (A kód kUJÖn fá~1lOI hcJf~z<:~) - Ezt II bclJhtil!ol
bl.'kapaolV'~ II forr~~kód rés~ klilön f:iIJIlOI kertll (Ojd<!llNeve • .up>. bl. mig 11.:1
kikapa;oljuk, ki:w>lll"l60IU:.11 <".::dpt> bIokkokl):l
• Sele.:/ mas/(.T f1aR<' (Mc .... emldal ki,-áI.:uZI.1... ) _ A mcslerokltll "gy oI)'~n.
n egb;!; ,,"ebhelyre kllel')<.-d6 hadsli 5:lhIoo. ~,"c1ret az ASP,NIT oId.il~kr~
~Ikahn;lz\" egyl>é)/d kOI.s6t ~dlulunk ~ ",'c:bhcl)TlCk. Ib lllCSIeroId:lbk.,1(
~ ~In;, bp<--"OOIJlIk be ezt J ~~el. hog)' meo;terokbJI
rendelhe5.stink n ujonNn k.~hoan ASPS~:1' okblhoz.

A !lmler+h'+\.o! nawon kínVftnesen llheljij; ~ a ... ebhely ~


enndeZ6SéI. A mesler+ialak alóny911'Ó1 mo III ASP.NET wtbhetyebn való hat.m6.
latl&ról riszletesebben besHüt a 21. 18J8l11\ben.

'WI\!IU:I!t" len)1161i5U u.tnölna7.1 n l!ftékel kJpja. nunl ~mu ~ webhdy Ictrcltozh;lkor


n~unk, IdDln ASp,'ET (!kbl forrJskód ~ nyeh'e ug)':IIUZ bz. rrurn
al ~ webhel)'(> ~ al egyes wehokbbkQl1 kOkl!ll>f>'dl P'fO!tI'3rnoUs1 nl'eI\'t"ket il.
tw.zNllwunk. de el nmlló"ölSOk. ~ eg)-eUen. t'jJ)'.qes nye/\T1l nrgitni
a "'-«1heIY
nunden ASP~ET okbÜI.

IUr III ASP,NIT oI<.bbk egJffOl'TIdn jól múkódndl . akJr.:gy k"zuIgálóoldah <I" , lpt,
blokk .... p>< ol<blin, akolr kilJOn f;íj!ban (OJ~lN"v" . ... \>1<. vb) hc1yeuuk el ~ (I)fri~·
kód rt~ZI, ~ könyv pékLiih-an r~gaslkodunk II kiilön (JI10khoz. <'cz&t ~núkor ÚI ASP "ET
oldali adunk a w~'bhelyfinkhöz, ne: fclejlsilk el boej<.'lOInl ~ I'I~ code in -.eparAlc fllc
jl:1ül6oé.tn4etel. End mUld n, )ld"lN".~.UJ)I<. rrund;u a lN,," t» . f;Í~t
~hozzuk

A YISUII web De-. alt'l* llMI!I'VYlI az Add New It"" PirbeSZédabIak I'tace code
IIIsepar8le lile bdllltWt. de se,nos csak "w Idon PfOIIkIerl belü. VagYtI ha
uj ASP.NET .... I~ lIOmnk "tri. I progl'lm viuza6llitJa az alapértelmemt, ..
~ikapcsolje. JtllOI6négyletet &én amltor uj ASP.NET oldalt kliSlÍtÜfi, mindig
vesS1ft:. lI9V piHantist erre I be~IUtásra. hogy meoGYaz6djlri. róla, hogy • jIIÖI6-
nIi;yzIl blUpcsoh iIIIIpotban VII'\.

Cipkorohuk n ASPSET okbWc hoz7áoKIJ.s.Il eg) ..'d>lleljhez! Tet!}iik fcl. ltl>f.:)'


II !>,f , .• t. ~spx mcllen egy:',. l : .,yTu... .Up" ne>i! ~ffliIŐ ASPSET okbll b
~-nk. Ezt az okbJt" kÓ\etkez6 ~ '·;~greh.. jW.a" ...1 adl~tjuk .......ehhd}'I~L

l. A ~ubon Explorerben k;utlntsunk aZ t'géT)ObIl gombj:h':l13 webhel)' ne'.. ~rc:,


2, A megj<:1en6 helyi men(lh61 dl~SS2uk JZ Add Nt...... hem lehetőséget
3, AZ Add "1.'\\ Item p:lrbe!Q:b.bblakb;on CH ~bt-..) jelül)\Jk ki 3 ~-..O{) h"m bjlupusl
4. Adjuk a Displ_yTi" .. , ",px r'lC.'\·el (};ame) az oIwhuk. a llonguage bt-aUu:Ut
ha.tnJUk Vosw.llkI.sicen. ('$ k3pc501juk be ~ ~ wde on sepM;lte file jelölő<

"""=~
5, K:mulIsunk az Add,gombra az UI A.<;PSIT oldal ktrehoz..,.:íhoz.
64 1Lráz· lSrrlIrUdM II ASP.NEl-taI

Ml:; tlpusú fOl'l'1ÜOkat ug)".mezeket ~ lépewket kövelve adhatunk a webhelyhl."z. CSOlk


ekkor a _I, lq>ésben m~s lehet&égeket fogunk l:itni. amdyt"k megfelelnek a voibmou
f;ljhípusnak,

lMez6 tartalom ooná ad6se


A webhelyckllCz nem csak új !aJI:Ilm:lI acUl:llunk:. Visual \l;'eb Oeveloperl>en. hanem
m:lr léteUi t,malomnul is eg)'S7.erűen b6vithel;iik azokaL EIólordulhat például. hogy
a merevlemewnkön mM 00 csücsül egy k4>f!i~ vagy egy más,k projektb61 egy ASP,NIT
okl;lI. amelyet U adou webhelyhez szeretnénk adni, llyef1 hdyu.'iben kattinl.SUnk al e#r
jobb gornbj<kal a webhely 1>I'\'(;re a Solution ExpIoreri)en, és ,"ál;u;szuk n Add Existing
11effi (Ll:tez6 elem hozzáadáso ) )ehet&éget:.

En a menOpontOl: "iilasztva J szokásos fljlta1l6z6 p~rbeSZéd:!bl3k jelenik meg. ahol


megkereshetjilk an a m:lppit a 111Cfe\'lemezen, amelyben a hou.:íadni lódnt tartalom
található, lla meguláhuk. jelöljük ló, és kanintsunk n Add gombra_ Euel a kij<'Jöh
elemet a webllely kOnyvtlr"ába m..boIJuk. így az a webhely reszévé ,-,mk

TartaJom áthelyozéso, átnavazés. és töriés.


A SolulJon Explorerben nem cs:tk új mapp;1k ts Ujlak hoai3dhir:l van lehct&ég.
hanem álls hdYe7.heti1nk. illetve törölhetilnk tartllmakat. Ib mozg:ltn; szeretnl'nk
egy elemet a "'ebhe!yonk rrutpp1i kÖlÖU, egyszeTÚen hÚl.ZUk a fájlt \"a~' mappal
az eredeti helyé-r61 a kí\f:lnl helyre.

'tl--
--
:JÍ _ _

3.5. jin
I 'ilkuul,1r ld .. mcg/<-4-16 k~
.. heI)i ",emlból!
Fljl vag)" m;lpp.:! oí.lfM!'\'ezCséhez. lUeI''C t~hez el&.1.or k~tllnlSUnk az egér jobb
lIombj.h':!.l n elt"mre:l. SolUlioll ~pIort"rbefl, majd ~ me&/Clt"n6 hel}; menOb61
(Usd ~ 3,5, ~br:.ifl) dl:mzuk:l. megfelel6 menOpontot (Ren:lme - Atl1C\'c:té:s \'agy
Delele - Törlés),

A Visual Web Developer testreszabása


M.b t"kintél)'t"5 poogulfIOÚ.Si t"QköWk~ huon\ó:In;oL h......J Web J)e.,,--klper is teJ)t"S
m(-nékben tc:stresz:,bhaló, telúl ~ fejlt"5Dők úgy ~lIilh.. tj.ik be, hogy a Ichet61L-glut~
koo)-Jhl»fI dolgozhas....anak \'Cle. A V!.<Ual Web Oc,..,doper nem csak apról"ko< be-~11l-
1:1.'>1 lesz lehet6v~, aD is koonyt"'fl megoldhat juk, hogy eg)nli be:\lIiúsaink~t fájlb:l
rnenbllk, m;ljd eZ! a f~ilt bc!öltve;oL tcstt=bol.1 környez('1L1. "Iff má5ik $tiimit6gépcn
n:f'rodukáljuk. BdJJít:is:llnk:u tdllt fl,-iheljük '1w a.w~U 'SÚ.mitógtpr61 qo' nCJIesz·
gqw-c. .sót. ha,. beállításokat tJroIó f1~t egy \\chhclycn. egy I:~H megho.jtÓtl ' ..gy
egy ... ebcs JXlIiUn~)ltban hel)'Czzuk el. :I. fejleszt6kömyeu:1rt bo'lr",lú<cn stilmit~
könnyel \isl.uaJJílh:ltjuk

Ebbt"'fI a .észbell u l ntzzOk nq. hogy:on subhatJUk te.lre J \-ISWI"I),eb De\-dopeft


Az egyedl bdllitlsok n:l8)- Il!$Zt'I az 0PtI0r1S (Heálli!lsok) ~rbeszt:dablakOOn adh:ujuk
mcg, amely...1. a Tools (EsJo.kö:wJc) menQn kere:sn.ü1 trlll.1u'lk eL Sro nerinliObb ~7.iz
bdl1ii:lst t".l11unk in, ezl'n "'-'fl. t1rgyalh:lljuk mindet: ehel)....'!1 a fOflto:53bbaklll ÖSSlpon-
to.;,tunk. illetve megnézzOk nl is, hogy mik&!t m6d0!;;tha1luk a \llsual Web Dc\-'elopcr
abWr.l~bI:iit & azok ~lcsI beilliús;;ait., ilJer.'C:I. ten'eU! nEzetben a HTML
t:!.f1;I.!om d~ segitO bclIIit.bok:IL

A ,'1$U.aI \kb De\'e!operOpoons pi~bbka ~l::Ipill;tpr:tlban csak a Iegk.... )~


beilllÚSOk:lt muulJól. Ib mtndet I:l\fll szeretnénk, kapcsoljuk lx a Sh09. Ali SeIllflgS
_,.".,ct

A könyv képemy611.épein mindig a Vl$uaI Web Omtloper alapénelrTlW!tt be'DitWt


~thltjuk, lb fejIe$lI6k6myemoout $/IJát l(IéOYtmkhIl igazftit*- • monttorrion
11\e1111II1I6 "'01; kis ~ elté!hetnek IZ ~ líthatólttól.

Kömy8l8ti ~k

A "'".,al \10""
J)e.,eloper II.'5lJ't"SUblI3t6 be1!1it15ainak töbO/;ége at Options ptr_
ho:.zedablakOfl keteS7.liU érhl10 cl, amel)'C1 a Tools menO Options parancsával
ielenithetOnk meg, A 3,6. fbrin az Options :ablakot 1.~lha1juk ~bban a formi,:ib:ln,
~hogy ck'ls:Wr megJelentk,
61 1LNu • lItr...UdM II ASP.NET-tII

Al optioru lIbIak kalőnbözö hierarchikus k~\Cg6Iükr:t owJlk, ~mcl yeket a bal okbh
OUIOP muClt. Illi cl>b6Ill lisdil.lól kJ\'ilisnunk eg)' elemet, 3 ~kJ megfeleló be-~Jhl.lsok
nlegjc:lennek II jobbokbIon, Ahogy a 3.6.:lbrlI mUCIIIll. az llbbk megnylÚ$lkor
llbp&tclmezellen kJ~löl1 k~leg6rill az EnHtonrTM"n1 (KOmyelet)

A p4rbc:vkdabbklxon illi sok klll"'86ri~ {,s bcllJiús érhet6 elllhhoz, hogy mim.lcl
kunerftően úrg)·aJ]uk. eZ&! o.ak ~ lesfOl\1Oli;lbbak3t vesszük lOOmI

-.------- _._,_
.---_...
- ---
--
-..-- ---
'--- -----
...-.----- -
.

.._
_-
.-- - - . ... ..

.--
-.-
3.1. in
JI l'Imallr'eb Det~ "ZOpftOHS ptJ~bIa.,.. ItI!rns:I:IIlI szabhalj,,/rl(:>lrt!

Az Ennroomern aoportbCIn kft bdJhlhsal ~ közdebbr6l iS ~edni


Az dső az AUIORero\'er (Automatikus helprilJ,uJ), Amikor egy "..ebI~ dulgozunk,
~ Visual Web rx""clopo-"1' bizoo)'O!\ ~özönk(:ot automatikusan nú''iObtOl kt"$"LU
a nlÓdo5itOll f:illokról (n id6közt mi Jdluu;uk ffit.1I' az abpénelmc1ks öl perc), b ezek ...>!
II hil10nSági m,1soblokatll progr;tm ~dol1 mnlli rt.:op!8 ~ (llZ al~p6telmezctl
l d l b het napl. Az Autolteco\'er az ellen n)'Újl \'~1T)el, hogy több órán~l nrunkJ.1
\~k cl eg)' \'~l1Ilbn mmkJmlradl5 nwn. EWordulh.u, 00g)' eg)' munk.2bnunk
elhalad az aszt:olunk mellett, \8etJ,enm megbothk II hilózati kjbell>m, és kiriint~
II C$>llakolÓt II fJlbóJ I I~ az AUloRCCQ\'cr szolg::1l1:u1s1 bebpc:w!tuk (abpállapotb:1Il
~ Vlln bPC:W!I1I ), II legrosszabb, Jmi történhet, hogy az utolsó öl percben légzett
m\lnkJ.nkJ.l \"CSlitjÜk el (fclthe po:"tRe. hogy lllll];ll*f\elmezcu gy:r.koriságoo II3g)1uk
3 hrillitl511. A m6dosilOtt f;l.j!ok bll:tonsagi mhobCli:l. IHy ~ ,tI ,Vi.ual St' io
\Baekup fU . . \<proj.ktnlv> 1llóIpp:1br.1 kCl'lllnek.

AJ. Environment C5OPOI1 m1sik /'&ze, ~mel}'CI R'qI"izssollunk ,:I. fortIS and COIOD
lUen1k él; szlnek, Lbtl:l. p, ~bdt) Az lU ulállu.t6 bcl.lliWok:l.dpk meg:l. viswt \t'd)
oe.~ twználl betiltipwt. betOméf'Clc:t & SZÖ'o-egWN. Ezeket:l. fqlem6köm)"Co-
let killönfo!ie ~"" - a szerke$2lM,:I. nYOlllt:ltoU kJmeneue, II hibakCRo'l6 :l.I>I:Ikokr:i
Mb. - V'O,,:nko7.ó:ln kOlön.·külÖfl,negh:nJ.rozhatjUk. K'it ezen belal is fTlI"8'Idluljuk
plildauJ. hogy fllOrldlUk II Tellt EdllonXUlll ",inu 57.ö\-'C8 fek...1c 10 pontOS Courier t"ew
Ieg}'en, míg II kJ;etölt.szöveg ugyaflOCl feh& 10 porH05 Courier t"t:W. kék 1J!j1t&re1
, ...
-_......
---- ..--
_.._- .__.,--
---
-- .- • •
••
-
._-
.--
-
-_---
.
..-
--
,-
..
- --
=
~

.--
3.1. Mo
AdJldl ...... Ils.u.>I 'rot> ~ utIo"'ll""'bo'>l ~,J<kI """"/IP"<I. ............ $%I,""'"

Sok reile$~t6l1.7h1 lllÓd06ilf'l II h,..1(1- és szinbcllldsokat. hogy könnyebben dlg3wdjon


~ f0rr.i5k6dokban. Nálam ptldlul a Q',ámuk lit;. félköo:tr Jű pomO!! Courier '\cw
k-~raklerek. mig a IoraktcrlJnook türkizk.::k 10 pontos Couricr ~ ben1kb61 ~Jln:ok.

A HTML·t8!V0z6 """t beáIItáSa


~ options ~rbeszOO:.bIak ulobó bdlIiU,<,QoponI'/;. am<'lJyd ~~..-kal-­
nunk." I rti\ll [')a;j~ UIDll....ff\'ez6). lIor\Isuk Iri ezt II \(;1lt:gÓ.ÜI., l:$ v;j,bs.sZl!k
a Gener.l1 (Áltabnos) aIcsoponO(, A;obb okblon LoUlunk kell egr SUn p"g.."S In~"Ü
I~Jlit:hl, ~md)'néI k~ leh"t~ - Soura. \'jew (I'orrls nl=t) CS Design Vicw (Tef'\'ező
.wzct) - közül ,-;llasnh:llunk Eml('ke1.zQnk vis,~za. hogy ~!llikor eg)' ASI'St:,· oldal
f()l"dskód ri:5ZÍ'I ~j(lk. vllaudutunk. hogy fomIs néU1bm köz\-elknuJ:a HUlL-
t:UWm:I.! m6d(~lljllk, \'lIgy !erI'.,zö nt:zetbm UO egt'rreI húnmlc I ITML..dcmclu:t <::s ..."dJe;
,"C"Ztri6!<l.1 az okblra. új ",~l ~kor. ~Ien'e eg)' mor megIé\-6 megnyiLI-
s:.kor alapállapodlGln fomis ~tclbt' keri:l[Onk.lI:a jobban keID..:hük a t<"rVelŐ ~et.
U abp&!elnICzro vi5elk~ lu \'"ÁltOZla!lutjUk meg.

A lIT\ll ~ kateg6ri:I n>:lS(x1ik fig)-drrtlte m&6eleJnt, ~ CSS pos.lion.ong (CSS-


elhelyem, \;u;d ~ .~.8. ábrJu. Ennek:14 elemnek ~ kubbclUlWSóli a P06...011ln8 opuons
(E1hel~-ezési bclUilhok) CIIUpI)fIhan !:Il:íJhatók J b :14 eb6 jeIöIőnég)"Zetet (Qunge Ihe
posuiorung 10 ,h..., follovving for mmrols aMod llSing the Tootbox, !XlSIC. or ur~g aod
ump, vagyIS AZ. dhel}-ez6 m6do"itá.... a köwtkel6re a Veztri6k paletúr6l howadou,
beilk5ztett. \"~gy n egmd n oIdalr.o OOlrtt \"ezCrl6k~) bqelöllÜk. meg;.dhaljuk.
hogy a progr1Im hog)"an I~...-u.e eI:az elulII:,ket a t......"eZI!II>en. A jriöl(il1Ó:1I)"Zet .wphel)'"
zetben luk.a~t llL:.po1ú. ~mi aJ;!. Jdenu. hog)' a t ......-eUl' né.tethen:az oldalhoz. adon
webes ,'eu,r\liktlöz 6 ErrML-dc:mekhez nem IwpciOl6druk clh•.:lyezé5i utólSiIJiIOk
AZ. el6zó fel':Zt'lben .mr 6"im('ltllk ezt a kerd6lt, ,.ntikor tOegmtlít('ltuk. !\Og}' II I ITML
68 [ L r6S:I: • Isrnerbdn III ASP .HET-tel

figyelmen kívül hagyja, ha egymás uún több szóközt teszűnk, illetve amikor t'8Y pl'lda
kapcsin azt tJrgy;.huk, hogy mik"m pozictoo:ilhatunk vezérl6ket a <t .. ble~ dmk&.
V"~lamim késóbb bemutatandó dj:;írisok 5egilSégéveJ.

AZ ..gyik Uyefl elhelyezés; m6ds2er al'. abszolút dlwlyczls. ameJynN a progIdm a terve-
z6re hú1.On HTML-elemek "$
"'ebes vezérl6k bal fels6 sarldn:lk koord,n1t1,t rögzíti.
A böngész6 megkapja e~ket a koordill~t~l<al. Ó'S az elemeket eII!.e';nt igazílj,",
ll:! oc-jelöljük a Change lhe posl\loning (Q the following for comrol. addcd u~ing the
Tool box, pa>le. or drag and drop jelöJ6n<'gyz~'!.et, b al. abila tal~Jhat6 Jenylló listíbo.'íl
az AIJSolutely positioned 1eIM!l6s&get YáLaSZlJuk, a ICrvcw ablakoon pontosan oda
tehetjük a ImlL-elerneket b a webel; '-eztrl6ke\. ~hov~ sze""n(-nk

.- --
..._--
._- -_ .._-. _-_.
--~
........
--
-
--- 3 ,8 . ~
AbsmI';ll'Ih<'i)'f!Z~
/1Of1~,IH}(m SVlbdlyo::hlUJllk
" I nlfL-<!/e",d 1'I"",dezését

Az eJjlr.\s eredmény(1 ~ 3.9, ~brn mutatj:.. In. rniut1n a \'i~ual Web l.le\·eJopertx.'1l
al=olúl elhdyezbl ~lIítottunk be, egy Button (Gomb) ~ezérl6t húztunk a tel'\-'ez6-
abbk közepe táj1m. pc>flIOS<ilbl.xm 119 kl'ppoml'3 az oldal tet,*,61 é-; 100 képpont'"
ann"k 001 szél&6l. ahogya \",,;ual Web Dcvdoper :illapot.wclnak bal alsó sark~ban
1~lh:ttjuk.

Az abszolút elhelyezé-; rug)'szen1 megoldhnak tűnik. ts rendkívül egyszen1vé tC$Zi


elemek meg:odott hel)'re lörtéoo ~aÚ$;1t. de fontos. hogy tismoon legyünk a ko..:k:i-
?.atokkal is. El6sz6r is, amikor absrolút elhelyeZé;! alkalmazunk, egy adotl kl'pemr6ld-
bontio;t tl'teJetilnk fel ~ ~tog':lI6k lllooitoriró1 Tegyilk fel p;;1d:'iul, hogy ~ ",~>bIK'I}'ünkt'!.
eg)' olY,1Il rnoml.OfOn tervezzük. amelynek a felbontása 102,1 képpont (s<:~I""""g) X
i68 kl'ppont (magass.1g1, b alt szereménk. hogy ~ gomb az oldal jobbszéll're kerilljön.
ezéTt balról 900 kl'ppoflln, fclülr61 pedig 100 kq,pootr:l húzzuk a vt'Zl'rI6t. "'mikor
Ulogatö I'rkezik a wd,helyre. a böngt's:l6je" ooJ margót6l9(X), 3 felső szélt61 pedig
100 képpontra helyel:Í CI ~ gQlllbot_ Ha 3Z<.>noon a kUog;uó nlOnilor:t csak OOO x 600-as
felbom:isra k~, a kl'pem}'6,abb okbUra mm gomb kic:9.í$zik a kl'pb6l, ~
a l~tog.lt6n3k jobbr:l keU görgcmie az oldalt, hogy 1~tha5sa,
,

.-- 3.9. "WIl


III "ID' gombol .. b>zoIt<S
e/he/l=é=/ 119/Wppomm
I<VII,,,1t az o/dall"'<'jfIól és
/00 képpontm " bal o/d"I,,1(>/

AZ ~h!z.oIut dhdy~zésű demek masik ruitclnYd, Itogy rl('hezen mérelel.h~16k


A 15. I«kében példáull~hni fogunk egy ,,'e\)es vczí:rio"it, amely egy aruub:\zi.s aebuj!
jel<"níti meg. Mi\'elt......·ezéskor nem tudh:njuk, mennyi adalOl. kell majd n>egjelenfteni
'lJUwJ ez :u kIm·eI foIY"m~tOl):ln d.ltolÓ és tlÖ\'ekv6 adatb:'izisban t<'lrolt ad.nok
mennyiségétISI fUss), bajlxl km1lhelünk, h:t az old1lt:l egy ad.1lt:1C5Ol és az 3J~ egy
gombol b leszünk Lehel, hogy csekély wrnú adl1 eSften a gomb tökéletes helyre k~-rlII.
dl: ahogy újallb és újabb adatol<. keriilnek llJ: adalbizOO<a, az -..da~ mén:te l"IÖVebnk.
hogy helyet csin!iljon az aooloknak. és II r.lcs végOl dbkal):l majd a 8011100.

\hndawrulul nem jelenthetjiik ki k;negorikusan, hogy n absrolilt elhelyezés kerillend6,


rn(:'ft egy jól káben t.1MU környezetben - például egy beLsó hálózaton (intr:lJlClcn), ~hol
blnosak lehetunk benne, hogy mind<'n felhasWI6 mOllI(Qr;I képe'; II 5ZÜksfges
fdbomisrn - az ab"wlú! elhelyezl'sú elemek nagyon haszrt<x;ak lehccnek A Iblycg
csup:'ln 3Z. hogy pusZl1n azért. men eg)'SZef\fubnek t('lrult, mint megt:lnulni a HTML-ben
megva~toU elhelyezés bonrolultabb módsterét. ne albhnauunk "k.wl(n dhe!yez~
Az id6. amit azzal nyerilnk, hogy nem veRődo.nk a IITMt..-elhelyez(::; 5Z:lb;ilyalVal,
nyomban el\'l'2, anúnt az abszoIúl clhdy6;b6lad6d6 probl6rokat kell megoldanunk.

A HTMl·tartaiom abSlUkit eIleIy8lás né/kii~ a1rendeLéslÍl'ól


a http,II"""".w3sehools. _/htllll/htloIJayout.lIsp
elmen t!!láthatunk további tudnivalókat.

Ha rátaláltunk IllY beauitásra, ami megfelel, szénjook rá pár ~at, hogy


fájlba mentsü!:; a módosltást Ehhez csak a TooIs meoo I~ and Export Settings
IBetilItési IÍS fllIIltési beállítások) pontját kel válawoounk, amely elindíIJ8 azt
a vlrilsl6t, ~ meghlllilroxhatjuk, meIY beállMsokBt s.zeretnénk menteni,
ilkrtve hogy hov6 és milyen lájlnéven,
70 II. Já;z • lSmerUCIM wASP.NET-wI
A testrfSlllbott beáII~ásokat a ment&síik ulMlltg'fszenlen elöhMlati'J':. egy másik
számI1öoégen, csak be keH tölteoüok az elÓlőleg mentett fájlt. fl a szolgáltatás
kapóra jön, ha ell'fSll!rr8 dolgOZU!li:; egy asztali és egy hordozrnll6 gépen, !IáIólat·
b8II vagy kapcsolat nélWI. vagy alvállalt.ozók'nt néhány havonta más·más helyen.
de azt szeretrnInk, ha beállftA$alnk m,nOeníitt egysigeSBt lennenek..

Afejleszt6kömyezet ablakainak megtekintése.


mozgatása és átméretezése
A ViS\,al Wdl Devcloper fejele:snókÖfnyez.edlell s;clmo:s ablakot t~lálllnk, amelyek
klilűnlJöz6 informkiókkallátf):lk el minket. Az eddig kgrészIelesebben úrgyalt ablak
a Solulion Explorer. ~l11Clyben II megtl}itoU wehhely mapp:í'l é5 fájl;"il láthatjuk.
Az el6zö f"iezerben azonban ,nir kd ntisik ablakkal i, találkoztunk: a PIQJ)t'f\ie:s
(TuLajdc:>ns'igo\l) ablakkal. amely a kijclöll ~mlL-eIem. illClvc webes ''erer\6
tulajdonslgait mUI:II)<1, vabmlnt a Too/box CVcz616k1 paletúval, amely az ASPNI:.,
oIdalakr:l h(jzhat6 vczi'1i6knek és HTML-ck:rndmck ad hdyet.

Ez csupán három a \isoa) 'Xe!J Developerbcn derhet6 $l:lmtalan ablak közOt Ha lálni
szcrt'lnénk n összesnek ~ 11<.'\'ét. nyii>5uk le a View menüt.

A \'istla) Web l)eyeloperl:>en rrunden ablakn:.k al<tpbtdn1C?ett elhelyeT.é>e. nlén:te és


VISelkedése '';ln Az elilcl}'ezé!i nem ~k az ablak helyét határozza meg. hanem azt is.
hogy aZ ablak lebeg6 '-J~' rögzítell-c. A Solulion Explorer p"'ld:Iul abp1ll3potban
II jobb fcl56 sarokhoz ragad. mig a TooIlX>x a 001 oldalhoz. Azok~t az abl:.kok3t. amelr<~k
3 ~erkcszt6 egyik ,,,gy n\.hik oIdal1hoz l:lpadl'l:l.k, rognlN( abl"kokllok h,vJuk, c1.ek
nem t:I!Gt.mak el semmit. A /eb('g6 ablakokclI.cI szemben egyik oldal hoz sem ,.~gadf):lk,
lunem a többi ablak, iII'->tve a szerkesztl'iben I1that6 tartalom felcn lebegnek. é5
elta!Gt.rhatnak m~ elemeke!..

AZ abl:ikok abpértelmezett m"«'Ie m6d0:sitru.t6: ehhez vigyilk az egeret aZ ablak


sn-gélye fOIé, k húzzuk a szegély! a kívánt méretlÍre_ Végül, az 3bbkok viselkedése
kMéle lehet: lehetnek Olindiglidl:i16k (pimwd, vagyis JeInizÖln. iJk1"e elnln6k
(unpinned. automatikusan clrqteu), 1\ fdu.Izöt! ahbkok I kl'peml'oo mar:ldn~k akkor
IS. ha az egér nem feleuűk ~JI, mig az aUlOnulikusan elrej!eII ablakok ('$;Ik akkor
1~~f\.óIk. anlikor n egb' föléjük kerul, eg~:dJkém elttlnnck. Egy ablak viselkedését
ugy v1ltoztathatjuk OlCg. ha a jobb fcl-!i05 sarkli.ball u!.ilható rnjzszUg ikonra !Gt.UIntunk,
Én 1i.luljban a Solution Explorer. a Properties és a Toolbox ablakok~t hagyom n>indig
I:íthaló állapotb:an, mívet ez.. kre gyakt:ln van szübég. és minden más ablakot e!uJn6re
:illilOk. hogy feleslegesen ne foglalják a képcm}'ótef'Ületet_
3, .ln • A ViaUII Web De\J1ioptI .... II 11 71

AZ al>i;,kokat a feltOzben fs az elrl"jtken kiviil be ~ z;'irhatjuk, Ha egy ~bbkOl végleg el


szen.'tnénk tünt(.1ni a képc.'!Tl~'ÓfÓI, -=k annyit kelJ tennilnk, hogy ~ jobb felső sarkában
(a I':I.fZsZög meUett) IlILilh:tt6 X gomro kattintunk.

He egy ablakot nem találook a képemyoo 8 ~éI1 helyen, lehet. hogy máshovA
hÚZ1uk. vagy véletlenül beWtulr., Al. utóbbi esetben c,* annyit kelltemünk,
hogy :I view menüben a meg!8le16 abIatn8vr. kattintld.

Ha egr ablakot máshova szeretnénk helrezni, Q;;Ik kattintsunk a telejére, fs az egér-


gombot lenromva tart''a húzzuk az ablakot 3 kivánt helyre.

Segftség karnyújtásnyira
AZ ASP,Nl:T rugy tudisú, megbizható weIJfejleszt6J technológia_ amely a _",rI'
Fnmework (,r-TI kemrendsU"t) nevt1 pl3Úonn", épül. Ez a pl:!úonn osm.lyok .'>Zázaiból
jJJ, ezek biztOliitpk az ASP.I'ET--fOOIor közpomi swlgilutAsail. Thlltt sziikségtd<."fl is
mondanI. hogy étcldJc tel hel, mire alaposan megismerjük ~ kerl.'uenüv.eTt 6. annak
k~geit.

<;zcre~re a Visu:!I Weh n...",cloperhoz különféle "egédan)"'~g<:>k 6. sug6k IS í3mak.


:lZ a \'Jltozat pedIg, amelyel a könyv pél<Hihoz a számitOg<'pre telepiteltOnk, tart:ll-
rrI:Il'.Z:óI 3Z MSO:-l lil"",'}' for Visual Studio Ex~ könyvtár3t is, Az MSON I.ibr31')'
~ M'crosofl haulmas gylljteménye, amelynek lud.:íSl~rlban cikkeket, músz:,ki Idd-
Mlkal. i11e1ve a leggyakr~bban fehelt kérdésekre adott \'ábszok:u lalálunk A köo}'\1:ír
megtekint~ hez e8Ys~enlen katunt$Unk a Help (Súgó) menO $e:tn;h (Kere;o;és),
Content!; (Tartalotnjcgyzékl vagy Index (Targ}'nlutat6) pompr3_ M'ndhil'Ofll clinditja
3 .\lKrosoft \-isual Studio 2005 Exprcso. Editions OocumemaliOn pl'Ogr~IlJO(, amclyb61
lrimdulva \'''lIigböngészh<.'tjük a súg6t.

A \,sual Wcb Dcvcloper m:lsik haSZ/tU'> s7.01g:1halás:t a dinamikus sUgó, amelynek


elf.rfst\hez a Hclp menO Oyn:omic Help pont~t kell v:ílasztanunk, Ez az azonos nc"ll
;ablakot jeleníti meg (amelyet Ilgyanúgy áthelyezllctilnk, ~tmén:teZhefÜnk és fdlüzl!c-
t1ink, mim b:lrmely mis ablakOl) , Ahogy II nC,'C is sugallja, a dirumikus súgó környe-
zct(:l7.ékcny menüt jeleníl meg, an\elynek laICI lma aitól f'ilgg, hol 111unk a kurzorral
a programforr.1sk6dban '':Ig)' a l ITMl-k6doon, Péld,ul h~ tl'f\'cz6 néz<.'tben vagyunk,
és c8)' Buuon "ezérl6re kattintunk az oldalon, a din amikus súgó ablaka automatikusan
a kÖ\,ctkcz6 súg6tém:okörök dmelt mut:lli~

• Buuoo Web Se""er Control (h'erview (Button webkiszolgáJ6i vezérlő - "ttckim6)


• I low to: Add BUlloo Web Cootl'015 10 a Web I'0IlT'IS Page (Útmu1:ltó: gomb
vezérl6 hozz:íad!isa we\)e" Orl~poId:olhol)
• How 10: Add lmagcBuuon Web Controls to a Web Fonrui "'dge (ÚunUL:llÓ: képes
gomb vczl:rl6 hou.áacUsa wcbcs űrlapokt;o!hoz)
n II r6a: • ~. ASP.HET'"

A fentiek "",Ilett rl'ndelke~ilnkre:111 a Community (Kőzössl'g) nIenil 1:1, amel)-bt.....


olpn menilpontokat ta1:1lunk. mmt az A.<k II ~ion and Che<.:k QuCSlion StatUS
(Ktrdéifcltcvb b a \"~1251Jll:apot ellen6r"z6;e). A n>enil a".-:;l smlg;1.l. hogy cs:u13koz'
hassunk a MICJ05QfI tnlnnetes fónmcihoz. amelyet egy webböngtsz.6\"d kö;t\·etlenoll~
dérhetilnk a http', 'tOn...1 Cl"o.oft.. ~I odn dmen.

A .\IJCTQ5O/"t fórumán kMil ~ Commulllty menil mU f0!ri5hel)'ekhez ~ eszközökhö~ ~


hozz:lft'rbt nyújt, "mely"k .\oegitenek. hogy v~laSZl kapjunk kt'rd(~inkrl'. ilkl,"e hogy
sablonokat. példak6dokat és \'cúrl6ket tölthessOnk le.

Bir • ~ ~ cIokurr.Ttkió rengetev irtIorm6ciól tINImaZ, és toribbi


ISm8I1Itelet szerezne"" • visual web Oeooelope cormuvty és Help lIl8Iliin
leresml is, IZ Internetet. m6g emil is tObbl! \IWII3bri.. &demII ~ ~
• GOOgIe MicroaofI·~ $llIkQ5Odott keres6jít. htlp, I , _ .gc "Ille. (0:#41
.1cl"o.oft. ht .. l clmlo. Ez az egv«oi kents60ldal csak olylll tal6latokat ad VISWI,
amelyek a Microsoft lechnoI6gi6MI " term6klivel kapaolatosat, amelyek révén
IlLtIIheIjúk I breMsl," könnyebben ~ amit ~

Összefoglalás
~"clntuk. hogy ré<zlctesebben meglsmerkedJilnk ~ Visual Wdl DevcJo.
Ezt az ör:It "".-:;I
pem-1l'onlOS. hogy Ö55Zebar.itkozzunk ezzel a S~...'fi(CS216>·d. m,,"el a k6n)""ben (ls
\-:.ló57lmlks k6<'Jbb is) "égIg ell fogjUk 11:lSZII:11ni T~eseo a kés6bbi kckek
~n I!lIesz Ollblmunk;ur;l. hog)' oiszollllk \-\§WI ""eb I:Icvcloper-l!Imcrctemket.
de úgt· gOndO/Um. megt.'Ji ~u id6t SWtm az esUm ~'rl' iTM.'g az eIqen.

1:ll6uör mellnéZlOk. hogyan hozhatunk létre es nynhalunk meg webhctyeket a V.sual


Web I)eo.·clopt'fben. MegtudlUk , hogya \\"ebhdyck khetnek hclybc::n, a ~j.il stimil6-
gépilnkOn, illetve (j,·oI, cg)' .... ebg.:l.w.a ci'gnél eltlet)·e;t\"e. A Visual Web De>'eIoper
mind ~ hd)"l . rmnd" (jvoli ".. ebhclyekkd \1116 munlú.t egyszen.l\'t lC!oZl. b még ...'SY
könn)"llsUl)"lI, beépiten .....ebkisw1gi161 Is tarullr"iUZ. amri)" ld~~ ~"..,.~
XP Home ~ h:uwt6 fejlcszt6knck. hogy helyben klJlf"ÓWlhaSS;\k ASP ....'U
....elJhelyciket. l'ersze miU!~n létrehoztuk 3 webhel)"ct , tOY.ibbi fájlokal b mapp:lkal
57.emnértk hou.iadni - en körll1y;ti IlJeg a 'iolulion Explorer.

A IeckiH>en:l.ll islTiol'"!fo·,zsgilluk. hogpn wab/l;ltJuk le:;I.~ a feíleszt6kÖfn)'etttel


az OptIOnS ~rbes~éd:obl3k seg.t.s<:"gé\·cI. illetve hogy mikált heI)....~hetjtlk nwho\"~
és méretezhetjlik ji II killilnrt:Jc abbkolc:II. A fqewo=!. ,~I II \"i5u:i.1 Web De\~1oper
lx-é-plten $Il~k gyt:>r$ ~ttd<inteséVeI tirtuk .u In rn.egismcrt dmamikus
SÚgÓ! ki.lI6n~ az ASP. NET·u:1 még csak !l1()!;{ Ismo:."fked6 fCJIC!l7.l6k lal:ilhalj1k
h:uZf"l()6ll~k
Az eddigi lecklik során sok tt'm::ikörl körbejfuunk. Megismenük az ASP.1'.'ET múkl'xlé-
5ének aLapj:lit él; a'\'E'T kerctrcodszert; ez utóbbit telep;tenük il; a \~l.SUJl Web De\'.,..
!openel él; az SQL Ser\'ef 200S Expre.o;:< Edilionnel együtt; ízekre ...:o:dtük az ASP,"'ET
programozási modt'Ujet, elkkzitem1k első weboldalunkat. amelyhez IrrML-k6dot. webes
vettrl6ket és kiszoIg!il6oldaH programforr:l5k6doc is munk; é:s relf~'(\eztük a Visual Web
DeveIopen. Most már készen állunk (:gy össo:eteuebb ASP,NIT weboldal r"'épit(is(ire,
amire II kóvClkez6 6r:lban kCfÍriink son. tehál hamafQlan alkabmlllk n}ilik. hogya gya_
korl:itban is kipróWljuk és a helyílkre tegyük az ds6 három 6r:\oon nql'5Illen. kulcs-
fOlllos.s:igü "'emeket.

Kérdezz-felelek
1(: 1lSJ' u-,d>s="" ~"", SZf!TV!lném e/lle1yeznl az ASP.NET 1I'Cbltel)'ernel. 1I0mlall
lIuilIarom, lIog)' (Iz adoll ct!gné{ mtJk6tbtt Jog u;: ASP.NI:.T alkft/mazárom.>
y: A le~"SZCn'lllben (ig} gy6z6dhenlnk meg aTTÓl. hogy egy adott webgazda
regnlil elhelyezhető-<.' a "-ebhel}"ünk, 11:1 megktrdcu(ik cSke!. Ne felejr..Ok el
megmondaní nekik, hogy ASPNET 2_0webhe1yet szerelIlénk készíteni a Visual
\\,'(.'b De-veloper .segitségével. Ahhoz. hogyawebhely kt'pes Ieg)'en mll'k:ödni
"et'g kiszolg!i16in , II Microsoft liS webkiszolgll6 progr~milnak. illetve II ."'ET
keretrendszer 2.Q..s v:llto7.at!in.k kell fulnia a gépeken. Ha e7.ek a feltételek
telJeSÜlnek, a webhelY'onk bizt06:ln mll'k:<'ld6klipes 10"2,
K: UtfY!ltoZWtIt 'XI' It'f!b/tclyc/ a Itcl)1 ftijlremJszl'rt--.",en (IZ X mappá/xlII, és
szcretuém álhd)~'zn/ /IZ }' mappába uhClSl'tJcs'
v". Természetesen. Egyszenlen ziirjuk \.Ie a Visual Web [)e<,·elopert. majd helyezzilk
~I:& webhely IIDIpp:ipt a jelenlegi helyér61 <Xla. ahová .w.errtnénk Miután
a fá~ok3t ~thelye1;tÜk, nyillsuk meg újra a Vbual Web De-velopcrt. maid \"11~k
a Fil" menO Opc.'fl Web Site pontpl, ken.-ssi\k meg az lijmapp:it, és kattintsunk
az Open gombrn Ennyi 3Z egés.z.
K: lIQmtlllchet I"jormúdól SZ/'t1!Vtj az ASP.t'ET-n5! "Z IllIcmctrm?
v". Az ASP,NET-tel kapcsolatban szaoodon hozziftrh•.''l6 forr.hok s.zo!':lcs \'~laSZl~1GI
:III rendelkezésre az Imemt.'ten. E!6ször természetesen az ASI'.N'ET hil'al:llos
webhelyél érdemes felkeresniInk a www.lIsp.net dmen. Ez a webhely Ilmye-
gében minden ASP.NET-te] foglalkozó interneles forr.hhoz n~-ujt hiv:nkoÚKIkal.
és egy nyül.'\g6 fól\lm is mll'k:ödik r~jta (http://{orwD8.aop . nllt/). amelyre
relll:ls~lók sz.izezrei mJlr l millión:!] is több O~netet kOldl<~k.
A rugyobb ASP.N'Er-forr1shelyek többsége mru-6'ek fu mll'k:ödik, és mI'g
az ASP./l.1:"T e\6(u id6kre nyúlik vis:>za, 3lTUkor csak aZ ASP I€:tt:zett, A s7.crIJ5 is
OZ(-mcltel egy no!':pszenl webhelyet (4Gu)"~Fm<nRolla.com). ahol üZen6fabt, FAQ--
okat és több ezer. az ASP-\'eI, illetn: az ASP.NET-Id kapcsolato&cikket ulllhalUnk.
A nagyobb és hasznos informikiókal fl)-ujt6 ASJ>,NFf-hclrek közé tartozik
"zenklvüla 15seconds.com. aZ ASPAUianre.com 1':1 32 ASPIO\.com, \'alanunt II
M~ ASP."'ET Developer Cen\eT a http://madn.micro80ft,COtJJasp. net
tim<n.
14 11. rWz' ~ vASf'.NET-bII

Ismét16 kérdések
1. Ká helyi és ká tlvoli ~r láe7Jk. ame1rekkell6rehozhamnk '~d~' mt:gnyit·
ruotl.lnk egy webhelye1. melrik ez a n~ rn6d.s.zei!
2. .Az ilS az Internet Infol1l\ation Service TÖvidit6e. amely a Microsoft webkiszol-
g:iló szoftver.-," Igaz "agy hami$.'
3. .Az ASP.t\'ET Development Wel, Server é!; az ilS ugy:maz." Ig3Z ,.... gy hamis?
4. Amikor egy új webes űnapot (ASP-'\U oleb!!) adunk egy webhelyhez, !.1thamnk
egy jelöl6négyzelec. ~melr a l'lace code in SClxu'Jte file (Fombk6d kOl ön f;ljlbo
helyezbe) névre Il.aUgat Milren kúlön~gek '-Jnn:lk k.., ASP,Nk, oId,,1 kőz()u.
ha az egyiket a negyzetet bejelölve, " m:bikat pedig kikapcsolva hozzuk Il:trc?
5. MIk az előnrei é~ hltrinra!" webes ve~n6k {$ a IITMI.--elemek ~b,;zoh:'t
ell le Ire.re.é nek'

Válaszok
l , A ká helyi rn6dszer a heir! fájlrendszer. illet.,,, n ilS (a .\1iCl'O!lQ/'I webkisro!g:i16
progr.amjal egy helyi p&Uny:inak Il.aszn:ilata. (Ne feledjük, hogy az utóbbi
leh~eI cs:rk akkor Nhetünk, ha sclrnítOg;;pünkn.-Ielepileuíik az IlS-t,
Az liS nem telepfthető a Windows XP )lome kiad;lsá .... és még ha az oper:kiós
rendszenJnk támogatja is n 1lS-t. lehel. ~ nillCS teleplt"e,) A ká (j"oIi
módszer a HTfP, illetve 3z FT!' haS2Jlil.a\;l, lia a webhel)'Űnket egy webgazd.!
regn;;1 helyezzük d, ~ljük mcg \'eIOk, hogy melyik m6dszen szeretnénk
luszn:ilnL illet"e llOg)' milyen beállításokr.a va n szúkség.
2, Igaz.
3. Il:lmis. Az liS a )'hcrosoft professzion!llis Sl.lntű webltiswlg:ilö swft\'ere,
Az ASP. NEl' De\elopmem Web Server egy könnyí'lsúlyil wl.>bkiszolgiil6, an,,-,ly~1
mcgkapunk a V;,;ual Web De\'eIOf><"rrel, hogy;lzok is, akiknél nincs tel"pit""
az "S, k;;pe,;ek jegyc>1ek fejlesztl.'11i. lefordít~ni és tesztel"i "-z ASPSn alkalm:l -
1.:ÍSOIGlt. Az lIS-t ""Jós wcbhelYl'k működtelésére tervezt~k, mig a~ ASPNET
De\'eJopmem Web Sen'en kiclr61ag helyi. alaCWf1y terhelésú lesztelfsre
4. II~ ",nil jelöljlIk be 3 Place codt> in sep.3,..Jle filc felöl6nl>gyzelet, lll. ASPSET
oldal csak egyetlen fljlb61 fog :illni (Old.. 1Neve.aap"l. és a forr:1.k6d rE.,L\
eg)' kiswlg::ilóoldali <script> blokkban keU elhdyeznünk. Célszeruöb. ha
bejelöljíik a jelöl6négrzetet. ITk'Jy esetben ká Hjl jön létre, az 0ld<llNeve.3spx
és az OlditlNeve, "sp" , vb, Az eI.'WSbc " HTML k a wdx-s yezén6lc kertIInek.
a m:isodikb;t pedIg a f0rrá5köd rész
5. Al. amzoIút dhelyezfsoJ elemek elOOye, hogy könnyen elrendezhct& al. oldalon,
eg)'SZenlen arrébb húzha1luk őket az egérrel tCT\'ezó r>ézetben. H!itr.\nyuk, 11Og)'
az abswlúl eUlelyezl!sr>é1 feltl1e1ezésekkel ~lünk" "égfelha!>ználö kq,emyőjének
felbont;is:ir61. MIvel mi. a fejleszt6k, sapt képemy/Snk felboll1:'isa szerint rendez-
" .· 115
mk ri ::IZ demeket, :lZ okbll CSlk azok 1~t1uljólk nxgfelel6en, akik a mil"1lk(-.'c!
:ilZOOOi!i fribonWti képemy6,.eI Jjtogatnak CI az oIJalunkr2, núg az aJ:lC'IOIl)':lbb
vagy 1'TIóIg.1sabb felbonthi h"s7.n~16k Ion: kélX'lkap!Ulnak.
Ez<'fl kiv!l! az absmhll e!hel),eu;sú elemek, 3md)'('k a hoz:cliuk karc""'1 :Id.,-
lokh,n ;lPzod"", ktpe'\('k dinami~n ~un(:relc1.6dni, hajlaffiU'klk am, hngy
löbb hcly~ fogblp ..... k el a ktpemy6n, mml anure cretletileg wmitouunk.
igy e..etJeg ellllkam.lnak mls e'emekec,

l . Gpkoroljuk mfg egy kic:llt a Visual wt:b De\'dop."f h:w:n:.í.$aUt, b IlOl1.Unk 1l1re
egy új w(.·bhelyel. A Default .asp" okbJ mdlt n'gyOnk fel néMny IOV;I"' ,.
ASI'NET oId.:Ilt. b. tölLSOk fd :.ozoott3nalornnul a tL·,ve~ vagy a fomis ~1.L1ben.
ahogy:lZ elmúh Mb:," \..:IlÜk,Jolt.wooonunk ~ szcri<ew6vcl. 'os ol' ~SK6dJunk
amia«. hogy ,,,LImit esetleg nem jól cs,"!iJunk - kCiCTIe!e7.zUnk balr~nl
Mlutin elkeszíletl1lnk naunr okbh. prób.lljuk ki mtndt:g)iket kezdóokblk(:m
(KeWóokbIt ug)' jelólhettink kl. hogy az eg\."f jobb gombj'Í>,tI n oldd 0l'V~
k:otllntunk a SolutiOn El<pIorerben. ~ a Set:l'!l SUn Page - Se:Ulitls kezd6ol-
""'kenl -1ehct6ségct \'álaszt/uk,) Nyi5suk meg egyenként a kcw"old:llk(ont
bdlhton oIcl3lakal a bön.g6z6ben a Debug menu SWI \rilhout Debugglng
p;lr~IlQ."Í\':d
l Ia nlCrtszcbbek V"~gyul1k. adlunk néhan)' k(!llf~jh a Ino:re..lcmezQnkr6l
a w~clyhez. Ol:ljd az el6m fejezetben JjIOU módon, Image w~ \'cz6iők
"'iil.Ségi"'.'cl ",lenitsilk mo:g azobl az ASPJ'/ET oIJalakon Ezúttal is inkJbb
a kistrktezésre fcklc..-:Jk II lungsül)"l. b ne tör&lqunk azzal. hogy hel)'~
lulljuk~ ''"&re a rr1l1'.eleteket Kén~-elmes 1m1p6ban habdJunk. é5 éI .. clZilk
a pitékol: a t:lr'luLisn;ok ez a l~l ..ezet~ m6dp
4. ÓRA

ASP.NET weboldalak tervezése,


létrehozása és tesztelése

• egy pl'nzilgyi ~mol~p fm:gte,verew,


• A rclhasm!ilói fdillet kiabkíús:l
• A sz(jkséges webe$ ~'~0'rl6k hozziadiSl al ASPNJ::T okbLhm
• lU. ASPSE'T okbl fOfTiskód resztnek megírba
• lU. ASpSE'f ...-ebokbl k,pr6b:itas:.

.u elmúli hjlQlTl ór:lt»n meglchet& ;iltalánossigban - Vis1D1l1 elég h05ua$ln - beSZtI-


tu nk 32 A.~I':-JET webold.dakr61, ~~ ASP.1'o'lIT progr:utlQ1.asl modelljéről, illetve ~ Vlsu~1
'Ccb DI:veloperről, MegL'IIluhuk, hogy:m lllíthatjuk be a ~mfl6gépünket ASI',V'IT
.,kblJk ki$zoIgilhirJ. és ~lt"kintetIOk a wt"bkiszolg.11ó ~.......-péI, ,.. [ammt Jl ASI' "-'ET
..I<.bl~k HTML k fonisk6d ~ Ez ulli.n elkés2:ftetlűnk ntldny igen egy~enl
A$PSn oldalt, és Linuk. hO~O';ln JumúJh:uruk erre a t'!lrJ a VISUaL \'IO'eb [)eo,'\->Iopo:n
7I l l..-z· ~ III ASI'.NEl....

Il:tlrn ~ Icd<:d>ro ~ l:UluJUUt átoJllcI,uk ~ s>"koruuba. (os megni'l2tik ]"-'8)' tén~'~


mtkblt i:!. z.aihk egy ö:s.szeI.ettebb, Il35ZIl()J ASI':'\'ET ...'ebokb] rnegI .......,~L..." fdl1',!6e ~
kl~. Kortkr.'un egy OIPn okbh fogunk elkÍ'5Zltcnl, ~md~' penl'illt)l '!1..;1l1lo!ó-
gcpkf:nt ha~noittr.l,6.

Tervezés
A könyv sor:1n jónéMny ASP,N"ET wcbolo:blt hozunk ]élre, a HTML b d fUITJ,k6d "';,..v.d
clO'lilt IUrmilyen szolhcn IS h'$tili1nk -Iegrcn n egy as2;I:I.li Wir><Jo,..·.... ~lbl,,\;I1J.s "~gy
qn.' duu"úkw; webokbl-. ~ 1Tl\1nk:ofol)-~mal mindig több léJX!;6b6I áll ElósWr \s el keU
donteniInk. hogy nul~..,.., edI 'IZOIgi1 nujd II progr.tm. ,1Ilamint hogy mIlyen k(~.
kd (os szoIg1ll~,i«>kb1 sa.....'lnénk fd,-éncznJ E2 uún ... kell Ulnilnk ~ k'llylegeocn
mcs kdl imunk II kódot. ' ...·gi.1I PC.'dIg ki kcU lUI próbálnunk és ki kell I'I'-iununk rtunden
h",;it

A munk;i""k el1 ~ tcirom suus~.tI - a ,.....-etet. a fqlesztéll és a te<Ztdbt - nllnden


ASI'!'OI:."T ...ebo!cbl eset;!ben el kell \<''8''''l.r1l. dl' II fql=6k SlIf>05 gramn nem Jk\om:I.k
el"g id6I a len..,z6re, és rOgIOn II k6úoljs.~1 keubk. A ~Jctj N>rt>('ZI$~~
a kÓ\-·ctkel6k m... " léúontosságll

• II len kijelöli a S1.ofI,,·r elk6LIl~nek n~netrt:nd;& 1-13 van 1IlC'netr-en..l!lnk.


~ közben l.ilh3t]uk. meddig jutottunk, és mi az, amil ~II el kcll
\'tgezn!lnk_
• A ICI'\- ponloe.an Icirja, mUy..", k~gekkd ken nujd r.endelk"wlc
II s:mf!,-emek.

Jobb, ha nútis szoIclsunkkil tessrtlk a 1er11t'2!&t. t'ztrt :uzal kt'Wjuk_ hoS)' I1lC."gnenük,
nulycn .5ZOIg;ólUúsolc;al kell b«-pilcn!lnk ~ IeockH,en elk~lendő IISI' "ET ...·dJokb·
!unkba. illetn! hogy m,lyen felllól-o;zn1!ót ft'lük.1c:t kell non k.abkiununk

Ha nem SZDri; eIéQ id61 a terve.,. nem Ieszíri. képe$ek I fónökiinknek


sem v6IaszOOi az olyan kMcliseks •• ",..11 .Mervtyi ideig fog 12 lartaniT vagy
a . HoIliIrI i fejlHllésr. A ~övelelm6nyek ~stliJinak öuzdlWtása - ami "'alában
s.zinl6n a tervmsi szaasz .gyik feladata - .melen abban is segit, hogy kés6btl
III lBgY9!l fé/rvértés. n 1 f6tdünt vagy az ügyftl ne UrHS8!1 O/YM szcIgiltai&-
$ObI a pr~. anVtveneket nem szMdékozttri:. beleép/teni.

A ler\'o:zt:si 5<::Ik35Zban 31 egyik rOOlOO rc:bdA az a~ ~endő uoIgiluw·


501c 1I!t.;Il-illllk ~nítisa Edd'8 a.ak ~nnylt mondtunk, hogy ~- pmrugp wmoló-
StP<-'t fogunk készíteni, de amuk konkril: k<.,~( rntg ""'" ~luk fd III lZ odeie'
4. 6n • ASP.NEl wat.W.Ialalt ttrvIIl6u. 16tr.noáN 61 '"ZI 11.1 11'9

Sl1imol6gépilnk egy hitdkallruL1tor Ielz. amely egy nx kam:uol1isú jell1iJoghit<."1 havi


törle<zU'II'l."-szletdl számitp ki. Ehhez h~rom Uem .. oo adaIra le5z szük'légünk'

• az igl!nyclt hilcl&szcgre,
• n ~es kamatl~br:l. és
• 3 hilel futamid.!jére - ez i<'llerru:6en 15 vagy 30 é\'

A pémilgyi számológépnek kq:.csnek kell konni .. a fcnti h!irom adaI fogad.i~ra. ,,,Iamim
kdl jelenítenie ~l en:dményt. összt'fogbl\':I: 3 Sl!imol6gl.:'P akkor képes kiszámitani
tnI.'g
egy nx k:.lrn:U01,jSli jelzilogllltd havi lÖrleszU"irés:1Jl1':1. ha megadjuk neki ~ hitel
~. 3 fuumidót. illetve:l kam.~tl~bat.

A felhasználói felület mogtorvozése


MJUt~n meglutJ.roztuk, IIOSY milyen szoIg:íltat!isokat k..1I nyújtania az alkal!l1:lz:'ísnak,
a követke;u'j: Itpés. hogy dkészíl$ilk a felhaszn:llói felületet. men ez az. am;n kerew.ül
a fclhanMl6 kapcsol3toolep a programmal. A k~rdések . amelyeket fel kl:lI tennünk,
Jmikor megtervezzilk 3 felületet. a kö\'etkez6k: Hogyan fogia 3 felhasZIÚlló 1Je\'inni
32 adatokat! Ilogpn ,...Ienítjük 1TI(.'g az eredm&nyt?

A nagyobb alkalmaU..,k felhaszn álói felmettl ell!g sokáig t:mh:u ml-gtl..... eznl, ~ a rel-
adat meglehl-t6sen bonyolult lehet, de a mi kis Sl.imol6gépilnknek egyszen1a felillete,
.;,s csupin egycllcn ,,·(.'bold:olb61 ~II. Felhasmálóinknak lény ..ga;>cn két dolgot
keU tudniuk elvégezru: megadni 3 három korllbban emlitett adatot és megtekinteni
a számít1-. en:dménytl. A l>cmcn6 aduoknak Textl30x (sZÖ"egme1,6) vez;;,rl6k ~dna k
maid helyet. A számológép kimcnet"'nek a h,lel ha\i lőrlesxt6ftszlettl kell mutalnla.

A 4.1. :'ibrlln megtekinthetlük. hogylIn rest ~ pénzílgyi számológl'pet mGködtet6


ASP.:--'!:' weboldal. amikor egy felhasználó d&zőr Utoga'P meg. Megn~lYdhetJük
adatokat fogadó h~rom .~zö'·egmezöt. 6; l~thatjuk an is. hogy u oId:llalj:in
.iZ
egy Compu'c MomhJy cost ( H:"'i \örleszt6ré.sz!"t kisliimí!:isa) feliratú gomb szerepel.
amclrre a 5z{lkséges adnok meg~d1sa ut:in kel! kat1inlllni.

-
--
---
-- -•
4.1. 'ln
Ajdluu::náMl61 Mro.., tuku
b<~i'c/'" kbj'lk
80 II mz · lIrnerttd6S azASP.NET-tII

A 4.2. ~brán a 5~mol6g(:pet már az ulán láth:ujuk. hogy a felhaliln:H6 be\'1I1e


az adatokat és a Com""te Monthly cos! gcxnrna kau.intou. Mcgfigy.-lh~jilk. h(>gr
a kimenet tblylcg a llltel havi törlcszt6részk-tét mutat):!

o-·.-'.~,·;"-

---
_
- -_ o
- !2.. •
4.2. iIIn
"uámoMst'P nlegrnjj/(l/j(I
.... __ .. _.1'.....'''''''' a j<-Irálosllildlln •
00,1 /(Jrl~k-I~I

A Y.iimit.h eredményének megjeleoitbthez egy i;lbel (ClmkcJ '-czmön' Ie:>z .sli.lk$é-


günk az ASi'':':!:, olOOlon. Ebben jelenik majd meg" kimenet. ezért" címkét pontooan
oda kell helyemilnk. ahol meg sze",-ml'nk jelenitem aZ eredml·n}1. Allog)' a 4.2. Um.róI
bts7Jk, a .z.!imolÓS<-'pünk 3 bev,!('1j mezők abu mut:llja a ki$z.!irnítou tooeszt6rl-szletc'

Webalkalmazllsaink lelltasználói lelületét lIYor~ f~ázoIJatjut a Visual Web


DeVeIOPer grafikus terv8lÓ r.ézetében, de ha JObban kedveljUk 8 régi, jól bevat
módszefeket - V811Y éppen áTlltl1Sliinet van _, papln 's ceruzit is foghatunk,
hogy megtefVelZÜk a !eliMtat,

A felhasználói felület kialakftása


MOS(. hogy befcíczn1k a tervczbc. (:s e1döntöu.ilk. hogy mire kell m~id képesnek lennie
I*nzilgyi szlmol~pOnknek és milyen felillel.et kell nYÚltania a fclha5zn~l6knak ,
iu az ideje, hog)' tC."ylegesen elkezdjilk clk~tení ASP.NEl' weboltl:1lunk:l.t.

Az első fcl~d:lt, hogy létrel107.luk a felhaszrull6i felii letet (u.-.er interface, röviden UI),
''agyis az ASP.NET oldali ITMl rész(,,\. Az UI fel(:pítésl:hez három Te~lJ.o;<; vell-rl6t
helrelilnk d az oldalon, ''ala mim egy gombot (Buuon \eZ<'rl6t), Jmdy gondoskodik
a sziik*ges S;cirIÚtások e1vC,gZ<'sl;r6I. amíkcx ~ fdh~szn:116 r:ikauint.

A számftásokllt V1ÍgrehajtÓ forráskódot a felhasmálói felület kialakrtása


után Irjuk m8~

Kezdiök nzal. hogy elindít1uk a VisuJl Web /)e\'elopen. <':5 létrehozunk egy új
ASP ""ET webhe!yCl a stiimít6g~p fájlrend:.z ...... ben, ahogy az el6z6 6r.lb,m l~ttuk.
Mjr tudjuk, hogy eg)' Default. a!ipx n~.,,'Ú ASI'.NEl' oldalból ~1l6 wcbltdy ;ön Il-tr~o.
G}'dkorfásképpcn töröl juk ezt n 010011, ('$ adjunk ~ wlobhd)'hez egy újal finan
e ialC" Ic .1nor. Ul>" nhen /lOe r....edjük, hogy al ASI'. ~ET okhLak 1("trcI101J&ikor
II Web Form elc:mlipu$l. kell dl;>manunk_ Ezenki,'(ll a nrelv legyen \',sual lIilic. 6
I<!löll(lk be a Placc: code in <;('p~r~le ml' jelöl6n"gy~et,

Ahárom rextBox vezér16 _""ása


Eh6 J('fll'sketu Ta160x 1~'egme!6) "emiókb61 t'I~fUk a h;Írom bC'.-llt'l, me7.Ó!,
A Teln!JoJ< ,,-ebe:-; ,-ezrrllit I'l'Iég nem ti.gplruk. dc nincs IloO\I1e >enim; kiJk'loö!.,
A 2 fqe«tben UtűU Inlólgl' b Labd 'czcrl6khöz hal":)l\lÓIlrl keU hoUá2dni u old:dho;t;
I~gn "~gy 500= nezl."lhen eg)~~"1'Úen hÍlzzuk a Toolbox pnlen:í.ról az okblra
\1<UI.ln ~ \czér16 aZ oIdáln k('f\1h. II I'rope:tJl'S (Tulat<!oru;;lgok) ablakl);ln be;lllilh~IIUk
a IUla]t\on.<;ig~ i( (de fon-:1s nl'ZeWen közvedcnOlls beirhalluk őke!. ha Jobh~n I~"l..,.ik),

fgy dOIQOt lomo. ~tenilrt. Arnitor feIIISmj6j bemellltet fogadó


webes Vemt6Ut - Tex1Box. RIdiOBUttOn, 0r0pI)0wrUs1, Buuon stb. - lIdI.nt
l/l( OIdaIiOl, ambIlIl OICIiI ~ rtwl'oen UI eIlItYeZni"ri. ami nem mú.
mintI2. 1etelem.n~m <i 0"'0 -...t • ·.rve.,,·,.-n.lilt8IV8l6
Mletben húnri. velI6ri6ttIlIl oldalra. WTlllltI nem UI ~ "*'- I ~
IUtomatibJsan I m.gIe1e16 helyre ~ lon'6s I1Úetben azonban ~ hl,
hogy I <fono t"Unat • ~erver· ~ (js a riK6 < 't "o> tlmb ~özé kerülJ8fI8Io;.
Art, hogy ez miM I6tfontosdgú, 8 9, flljellltber1 t6rgyaljuk rftzletaSllf'l.

f.!Jcl6tt "'gy TeXlBax ,'cHriI5t az oIdáln helyeznénk. ~ ~k meg a rl'lir-~I.ot \tl\d


az d!;6 bevuch mc-zo!ibe II jelzllogho«.~ ~ kell imi. ~ FL, ""_',.olC.. I_: Jt<"lr upx
okbl tenwi'l rM'zrteh= ~k be a Pr nciP<'1 AoIIOU"It, "}1IÓ~) SlÖ\'l'go:l

A felirat ~s:I uUn clhel)"czhct]Ok a ,-ezérl6t f!Idojro.- g}"&&I]ünk mcg rob,


hogy ~ Toolbox p:lle'ltI Web Conlrol~ Lapp! \~IaszIOItuk. m;ojd a p;ilcttáról húuunk
egy TCXIBoJ< \'ezérl6t a Pr im:i~l Alt>:>UIlt;, fehrJt nlllg(o, A k~pt'm)'6nknek ekkor
~ -[ :\, 11rln kell h:c;onlitln~

U ..
Eum" ptm«m <!Byfo/inu h
~I'
nóo:..,mn6 rnIt1/hn16
az <>Iilnlo"
Emlaelhetiink, hogy IZ ASP.NET wttboIdaIlIi: HTM.. ........ 1Irwl61 és
$owcelForrás) nmtbtn is elészithetjúk. Ak~, " ... " I
""''''ll5néllotr6ll6thlt1ri: képemy6Upebt, .".... e ' " " eleplsMet,
cit Il'fII'íIOdiaI vMusd lll: I Mzelet, enWti... " .. ~
)denIeg a Tt'X\Box ,=o:.'1MS (az:0n0Mt6) rubJCl<>n.•. 1P __ .t<lbl mm!
M,v.,1 a progr..mkÓ<hln~) hi";llkoznunk k"U e"m. a: ,.~~~ - meglclI;!·
I"07Jlassuk. milyen nplÓ hildÖbSleg...'I ín be ~ fdh..:<DUIo. '" ~ nonO'oItÓl.
~~I~ \"lUgus;..n UlaJ:u: I!hbcn a 'oI.ÜH:gmez6hen UI.i ).t. .... -\Je ...bjolonsag
Ieg}...n lnondfuk _ :oan.\aoUnl (kök::'lönÖ:sszcgl.

A webes VeZíIrt6k 10 ~ • követtellSb, 1 . ' = \" meg:


Urmtstri:_~.howvl~" .. ,
I _ _ _ ..okban
~6 propertiet .tIIIIi:~, majd ,n ~ . . . ..,. meg lI8I'll
" tjuk III ID uoIljdondgot (el az. amil módoslt.ld: UlI" FVf.,..
'Ilt9o Ilogy
I tuIIjdons.6oIiS16b1n IZ 10 tulajdondg "'- ...

Mo6c ;adjuk az okblhw. a la.nutbbat megluu~, n,_" . _I: be.Rt J.úJunk el


ugyanúgy. mont az dőz6 TextBox ,~zerl6 e.etd:oen ...• ~~..vtx adjul:. meg J SZÖ'o.eg-
meZŐ fe~nu.1 (ez legyen Annu.a1 Interee' "1 e •• ' ...gy. É_ ka dib), oruoid
az egtm.:1 fO!!)Unk meg egy Textlk>l( elemel. él cJ\.\.Uk az ~ ldIr-~t mögé. végOl
pedig m6doo;ilSUk a sz/y,CsmeLÖ 31:01lO5ít6j;\1 Ute·'" ~

Ez ut.J.n ko..·elkezht'l a ~dlk '''g)i!; az utolX, Il<:\·tdi~. and)n, a felhaszna-


lónak a Intel ful<UlUdqét kell beirnill lnuk be a Konga ~. 1\ lurd fuClRuJqe)
szŐ"·egt.'I,"""id h':'zzunk RW)&f egy TenBox '·C":!:crió Ennek az de r.d< az azono6i16j::1
legyal MOrt\lllgeLellgth.

&dtmes lehet monden beY1te~ mez6 mög6 beim IZ ~ .l~ I mez6


~ ártand6.1gy • I~t ~1jUt. howv II1II ..... fIlI!IIIbt.
lU. ............1 Int"r.n ltate l!Wl6 utín P'IdiU t..hInri; egy lÁZ !fI"tle~
hogy lleiIesmM6luc1j1t. hogy itt. ui! "kbIn irten ~ UI Sl8I"BpIIrat•
• Martga;, Length mez6 utá1 padio. j'M'S ("'I szót. Emtet. ~t
.4.4. étrin lálkltt;uk.

A 4.4. :ihdll megtekintllClJlIk. IlOg)'an k":Sl. t~'1'\'Cl(j oél.eiben az oldal ~ Il:lrom TeX1ÜOX
'·ezerl6 hOU:hdiS:I utin

A u. iIbra I ~ . . . .oo III ~n betútlpt.sll tnItItja. cit.


HTML rész stb,! mbadon alakJthatjUk. és • proptroes lIIlW.On keresztij
nyuoodtan m6d0SfthltjUk maguknat I TaxtBox v8lérl6k~ I batútlpusát. sziné!,
~lyét és ma IliIemz6it 1$.
4.6rI • ASP.NET W9Ildd ' , t8rvaáH, 16tnIholáA 6s1nz1 III i I 83

• , • .tur:. •.

-•
...-- .. ••
II /en~"ZÓ 'W;:CI. mim""
__ "11. _.
_.=' "'{/Id" lulrom Tm:/&tt
'.CI",'riój' "" o"ud/K»: ad",/t

A havi tör1eszt6részletet kiszámft6 gomb hozzáadása


M1u~n II beírta az aWlokat" hároOl ,ző\·cgmcz6be. az aauok alapj.1n el
fe!haszn~16
kdl '· ... geznunk a szimíhiso:. Ahogy azonb~n az l. fejeZt.'1ben említt.'1tük. ekkor az ugyfél
l;itogat6 webböngész6je) és a ki51;o/g:l16 (u ASP.1\"ET oId:J1t feldolgOl-Ó swft"cr)
)zött ~!Olene\ilcg fiZIkailag és logikailag is rneg.szakad II kapoola1.

.tunikor II I:llogat6 megnyitj:! a Financi a lCa lcul ator . aapx ·"."cbo/dalt a böngL-v.ö-
..:txn. aZ! II IfTh1L-unaJffi3t kapj:! ITK.""g, amely felépíti az :lhalunk .....ebcs vC2&\6kb61 és
_ ikus IIThlL-b61 ÖMzclllilOlt fe!tw;zn;ilói felüle\e\. Mtut~n az ASp'<ET oldal HTML
la'KJja eljlUon a fcJhaszn.116 böngész6jéhcz. az ligyfél és II w(.'bkisrol~16 kÖz{lU egéizen
addig ruOCS bjXSOlat, amig az fi8}féleZ! kifejezet/CI' nem kezdemén}·ezi. elért II $Zlimi-
Qt aa k akkor rneOet "égbe, ha II felhasználó ,1]t;I1 bevin ~datokat viss>:akuldjük II Fi
. ,. lalC" lculato r .aapx ASI'.I'.a,T oldalnak.. Az AW.1\TI oldal akkor , .... ge ...het; el
... fitámit.a& (.,; kUJdh..'Ii vissza az eredm(,n~1, amikor megkapj:l az aaltokat .

egy HTML-llrlapon (<f<> no» keres1.\ul küldi el a be\·,n adatokat II .....ebkl57.ol-


.U (8){"'1
p.lónak EZ! a folyaffi3tOl eg)" elkiild6 gomb imJitj:l cl; II (elhaszrull6n~k erre kell
k.oUtnt:J.nia. Al ASP./'.'"ET weboldalhol ez6t egy Button webes vez:6:l61 kell adnunk.

A falhasznilói &datoknak a megfelelO WebOIdaI!OZ való visszalunat/dról a bön{/ész6,


iRem az ASP.NET oldal és vereoői által előállilon HTML kód automatikusan gondos-
kodik. Enoe/::; ill alacsonyszintű eljmnak 8 mélyebb ismerete nem követelmény, de
nem árt, ha IeQalább nagy vonalakbilll tisztábilll vagytft. vele. Egyel6re azonbilll
tudjuk be var6zslatnak, és r.e loglalkomu1il: e ktrdessel; 8 felhilSlllilói adatok
ö&SllIgyújtéséntlk tis laIdol'lJlllsának mikéntjére ~ visszattifüllk 8 9. fejezetben.

Híw::unk 1{'I~t c8)" Bunon vez:6:l6t a Toolbox p:ole\t1r61 a webolcblr:l az utolsó bevitel;
QlC~ ulin. Anukor egy íl}·... n gombot adunk egy old::tlhol. a gomb feliMa kezdedlCn
,~ton. Módo!;1~uk a fel;r:ltOl: kattinl.$Unk 3 goOlbra. &; II Propcrtie:lablakban ""lt07.-
84 1Lr6sz • lSmIrUCIM II ASP.NEJ-t.!

lassuk a Text lula;donságOl COIDPute lIonthly C08t-"', Ug)";lniU nt: tClC!15ük CI


megvahozurni a gomb ID lul3;dons:'\gjt scm - amely ~ PropeniC!i ~bl3kban IlD! -kém
jelenik meg - az abpértelmelCtl Suttonl-róI performC.o.le-r.\ (v(ogrch~IISzjmílh).

A képemy6nkön ekkor ''lII~mi olyas'm! kell bmunk. nllnl aLS :.Ib,...in.

4.5. h
Ar ()/da} I'/I;V 8111/(m <'I!ZérlÓ
hou,ltuitlSll ma"

A kimenet megjelenftése egy cfmke vezér16ben


A felh:l5wáJói (ciiilet utolsó eleme, amel)e\ mé-g aZ oJdalhoz kell adnunk. Cg)' L:ibel
,,'ebes \"Cztrl6. amel}'L't a stimíLís eteclm(,nyenck megjelenítésére h:lsacihmk ""vel
" kiment'! (il hilelll:1\'i tör1eo<Z16reszJele) ebben az elemben jelenik meg, a cimkét
011 kell elhdycwünk. ahol U eredmén)1 aZ oId:dQf,I:imi szeretnénk. Ha azt szeretnénk.
hogy a kimenet az ASP \lET oldal alján jelen)Cf1 meg. egyszeruen húzzuk II !.Ibel
\"ezn161 a m~r rnegl<",,6 1::111,,10111 v~l.re II tL'lVez6ben, Ha Inkább II lap telejétI "karjuk
l;im, n eredményt. a címkét ej!5ük n eddigi tartalom dé,

A label \'e~6 houáacL~ mán aZl l::ith:ltjuk. hogy II címke a ""be t SZÖ\'eg~'1 jclenill
meg. A vczérl6" Tex'" IUlajdons:l~n:lk az éf"ll.két mUIJ!j:l, anIClyet:l I'ropcnics "bbld»n
::iUilhalunk be, A ler\'ez6t a címke hOl.1.lad1s:. ul:in" ,16. álmn látluljuk,

.,. . __ ....... --._,... --~


'-.,.--- ,
.,,''';4:1/ . .0.
, ..d." _ ' n .. -,:.:
•.

•••
--'
--_o" -. --,
'U.
- __
...-
~~.- .- .. .1.,.
r ' 4.6.~
,tz ASP ,WT u..oo/dnl.
mj,lIm, }=ilI<I",,,k
<:!lY lAbel L~
Mivel nem SOlen.>tn{'I1k. ha a címke hlnnilycn t:ut.almal il; megjdcnítene. mlel6n a felhasz-
ruiló beímá a s<:üksl'ges ad:uok:tl és el"~geznénk a ~rut. töröljük a "ezl'fl6 Text
tubjdonságjn.~k btéh'l. Ehhez el6sz5r k:numsunk a label \'ez6i6re. hogya luLaf(lon-
s:lgai( bc:IöllSOk a Propenie$ ahlaktlbl:iba. =jd ,tt ken:ssük Itll'g a TeKt tubjdons:,got.
12 után kattintSUnk II tula~gmezO:le. b; nrorniuk addig a B...cK5f'ACE bilt:f1tyúl. amig
az &szes benne 11'''1'1 brnklen nCllltöröltÜk.

Miutin töröltük a dmkc Text tulajdonságának ~nék(1, a tcnezl'l a '·c1.érlllben annak


10 tulajclonság;\,t mmalia, szöglel~ clr6jelekkel körbefug-.':!. A dmke azollOSilója
jelenleg loIobell, vagps a lef\:ezGben a I Labelll felirnlot kelll;\,munk a dmk&en
MÓ<:k>IiilSuk az aZOflos;lÓ( Labell-r6l re.ults-ra (en::dnl(,ny), igya ler...... zl'lbcn
a (results] felirat jelenik mcg. A ...ezerlfl aZOl\06it6j~nak módosit;1s;, ul:ín 31. oldal
valahogy úgy fes! majd , rrum ahogy a 4.7_ ~brán limaIjuk.

• •

4.7. tibnt
A La/Jel ,..".,,/6 azonlJil/oj<'IJ
Jesu/u".,'Q m6twilOlt"J.

A felhasználói felület teljessé tétele


E1kt.-m.iltiink a fe!l~I6r felület l(1fonloss:lgíi rész .. ivel Ha tovibbi elemekkel S:ZCrel-
nbtk kiegészíteni a fdül.'H.1. példiul egy félkövér, középre igaZÍtott dnlSOft ~7.Cr(:tnénk
eihd)'czni a lap K1ejé-n. vagy rövid h:ui'.llalati utasítJ!ol sz.,n:tnénk mc]J"kelni ~ felhasz·
nálónak. nyugodlan megtchetjilk.

lU, ASPNET wdxlldalln'Mi r6zének clké$.ziti.-sc Uün jöhel a fomlsk6d ,b;Z


mcgfnlsa - ól kÓ"".1kez6kben .. uel fogblkozunk.

Az. ASP.NET oldal forrásk6djának megfrása


MQI;\. hog)' befejeztiik n ASPSI:'T 01001 HTML rb:>:ét. csak a forr.'io.kód =rndl hátrJ_
Ez a kód fogj:!. beol"asru a fdhaszrú16 ilu! be\',tI a,blok~t és elvi:gczni a szilks.:;ges
számitásokal, hogy fllegkapjuk a 1e!1!iloghilel ha,-i lörlesnó,kz!et{1.
961l ráz • lInWUd6S IlASP.NET-1II
A 2. fejezelbcn megJsmcnük az ASI'_:>'U oldalak !.oall eseményét és az aMak mcgfclcl6
page_Load esemén~·kezel6t. Ez az esemen)·kczel(';. amelye! aZ ASP.N"" okbJ forclskócl
részéhen kell elhel)'CwOnk, minden. alkalomm;ll leful, amikor a weboldalt belöltik
Mi ncm chbe az eseménykezel6be fogjuk tenn; a lörles<:u'Sre~Ie\e\ ki$ZámílÓ kódot.
men 3 sz:1míctst addig!X'm sa'"rdnffik t'lvé-gezni. amíg a felhaszn:l16 meg nem adta
a hnelö:sszeget. a k:unat.tibat és a fut:lmidő!. ille!\'c a Compute Monthly cost 8<Xnbra
n.:m )(au;nloo.

A Hullan ",elles \'e~rl6knek van egy eliek (k.:mint.ás) esern&lye. amely akkor md"l el,
amikor a gombrn )(atlint.anak. e~ egy olyan ~nykezelŐl kclllttn:l>oznunk, an>ely
II Compute Monlhly Cast gomb Cl ick e;eményéhez k~&lik. Igy mimk..,., alk:tlommal.
amikor a felhasználó erre a gombr.l iGlUinl. :.IZ általunk meg:odou escmt-nykezcl6 fill le.
Ha aZ .-seménykezeJŐI létrelK>Z!llk. C5U~n anny' mal""d h.1ll"l1. hogy nll'!prjuk aZ!
a kódot . amely ,·égn.hajtja II szilk.~ ,z,1mitá:;oiGlll-nnek 3Z e;en*nykezelőnek
II hel:;ejében.

A Visual Web J)eo..·eloperhen rendkilfill t'gyS.len1I<'l.rehozni egy gomb Cl iek escmén~·ét.


A leggyorsabb, ha le.."ezŐ né7.e1.ben egyszenlen dupl~n kamnlllnk a Buuan "ezérióre
Ez aUIOffi."ltikusan létrel>ozza a ~zükJ;éges e5effiénykezel6t. ts az oIdol f0rTá5kód részére
lIgrik. ahol II következ15 kódo( kelJ 1~1nunk:
panial Ch .. FinonciolCalculotor
Inheriu Sy't_.web.IH.Page
Prot .. etl!:'d Sub ~rfonllCalC_Cl!<:~lIlyVal B"nd"r AB ObJ""Ct. ByV"l e AB
_ Sy8t_.Ev.n~Arg-.) l!a.ndl". perfonacalc.Cllck
End Sub

bld Clau

Megfigyel!K'tjilk. hogy a fent; e;;ernffiyk~'"ZC16 neve ""rfo~alc_Click, AZ ~ményke­


zcl6lc nt:vénck ~!w.l!inos fOl"l1Úja a \rlSUal Web Dcveloperbcn l1Of'Ib<I",onoBitÓ_Cll.ck.
ahol a gombazonosíIÓ a UUUQ<l ,..,ren,'l ID lulajdt:>ns;;lg;1.n:l.k énéke. (EmI.'kezziink vissu.
hogy miután a gombot az okblho<: adtuk. a ,=éri<> ID tub.;donság:lt Buttonl -r6I
perfo<1llCa le-ra fllÓÓo<'Jtoouk.)

Ugyal1l'Z! al esctnenykezcl& :I forr.lskód részben is Jt'trehozhaljuk !lt felUl kd lenyll6


li:;tál t:llilunk- ~ bal oh:biiból '-:lla~k ki a Hutlon "ezénÓ!. (perfonoCalc). a;obb
oldoliból pedig a Cliek esemén,1. A CIkk elem ki,oíbs:zl1sa után automaüku');ln
!(>{rcjön a perfonnCalc gomb CIick C5Cn~nyének kezelője. ugy:lnazzal a kóddal.
mim amit akkor l:ittunk, amikor- dupl.1n k:ll!;mOltunk a goml:Jr.i 3 tcn-ezl') nézetben.

Bármilyen kódo!. i~ írjunk 3Z eseménykczcl~, az minek.,., alkalommal végrcll:ljtódik.


amikor a felhaszn116 a perfonoCele gombra katunt Mivel a havi törlCS1;t6részletet
akkor szeretn~llk kiszámítt:ltni. amikor a fclhasm:l.ló erre a geml"" bilini. a s7.á m;tist
el,"~ kódot a perfonoCalc_Cllck e:;eménykezeJ6be ifjuk.
_ ___________--.!."."
'!!.:·~AS""P.~N~ET~·..."eb"dI",~IIIIk~, l6tnI/IOáSI á I8iZI l' j 87

A szövegmez6k értékeinek ~olvasás.


A jelz.~logIlI!el havi tÖl'lcszt6réslJelének ki1;z:im!tá..\áooz el&ror képesnek kelllennilnk
arr:!, hogy IDeg1lJapítsuk, milyen énékeket irt a feIJ1:lSzn116 ahirom TenBC!x \'ez.:".-
lőbe. Miel..,u mesn"znék ~Z értékek kiol"~l .. Ivégző kódot, Il!pjünk ,-i»za cgy
percre, és ;SI1>é1e1jük ~t a webe5 ve~.érl6k müköo:l6f:t, ;unelp'l. ~ 2 fejeu,tben m!ir
rövKk-n t'nntcuilnk.

Emléke:thetolnk rá, hogy amikor aZ AS P.I\'l::l·rnolor feldolgoz egy ASI',NET wel:>okbh,


a ".~ \'ewrl6kCl m;'isk<"pp kezeh. mint a 5whcány06 IITMlrelemekCl. A »l"tikus
IITML-Wrtalom az ASP.NET-moIort61 közvC1knül, minden fordiL'is "Nkül a "ebkiszol-
go116hoz ketOl. II \\d:.es vezérl6kt.'t nooban a nlOlor szab,,,n)'O:i HT~I L·kódd:i ala kitj:l..
A Sl:íflfal~k mögőlt \":d6jab:ln az tön""ik, hogy létrejön cs)' a wcbes veztrl61 ábrozo16
objektum, abból U o:u:l~lyb61, a melyik me/,..felel az adott v~'zái6nek A TextBox '"Crer-
l6khöz példiul a TextBalt 05Zt:ily egy"'-'gy p&1IJ"J'i l !;anonk. míg ;l Label "",zl.,.l6\<
pBdlwyosilástl a !;tbc) 05zt;ilyb6! lönt:nik

Emlékezhetünk rá, hoqy az oszl6/y agy a!voot sablon, mig az objK,tum az osztál'(
egy konkrét példánya. Amii,or hltrehouunk egy objektumot, azt mondjuk: példinyo.
sítjuk, vagyis egy péld&!yf hozunllétlB.

MinOcn vczérl60sztilynak különféle tulai<Jons!igai va nnak , allX'lyek 1eÍf);lk ;l vezérlő


~ll3poúl. A TextBox OIQtilynak például rJn egy ColUJllfls ( H~lx.>k) tulai<Jons;1ga.
amely n t adp meg, hány haúbból ~1l3 szövegmez6: ennek k a l.llbel osztályna k
pedig egramm 1(1ellk Text tuL:.jdorWga , amelyben II ",,'zénó nővegt:lrtalncll adh.1ljuk
m<g.

A webes ~k tulaj~, tagfiiggvényeinek és eseményeinek


teljas listáját leirással b péklékkal együtt mBgtaláljuk a Visual Web 0eveI0p1lr
súg6jában. Ha bekllpcsoltuk Bdinamilus súgót, &lég arra Bvererl6fe kattint8lJ.1nk,
amelyrő/ többet Sl8/atnénk megludni, /is a dinamikus SUgÓ ablak6ban megjelennek
8 vezérl6hii1 kapcsol6dó műszaki leírások, cillik /is más anysgof:; hivatl::odsai.

A webes vezérl6k legf6bb előnye, hogy a lulajdons;\gaik eléThCl6k az ASP,NIT


",eboIdalak fomhkód r6zéb6L il.llvel a TcnHox vezérlő Text lul:ljdorWga ptkUul
;I beviteli mez6 szö.,'egéll:lrtalnuzza, ha erre;l lulajdons!igr~ hiv-dtkozunk II Compule

Momhly cost gomb Click ewmény{:nek kezel6j{:l>en, megll:'I<iro7.h;ujuk, llOg)' milyen


értéket ín a rel!\.iIsm<i16 1I~ egyes mez6kbe.

A Mortgage Amounl szövegmez6 t"rtt"kl'\ pl'ldául alal!lbbi k6dsorr~1 olvashatjuk ki,


lo.onAmount, TIOxt
• I L 1Wz ' ~ III ASP.HET.....

Amikor- u A$P.!\U-nIOlOl' Idrehm qo' ot".,ktulTlOl egy ,'ez.:'J'I6hOz. ~ '''2':'..-16 lD ruLai-


dons:iga ~lap)Jn ad no:k, 1lC'-eI. Mwel a Mnngage AmQUm be',lch me16 ~lOf'I<.bitóp
lOll.nAmOunl, az ";CI a \'e~(K M>r.l.wl6 oI>I<'ktum ~ a 10000nAmount n",",,1 k:lPIJ,
az objeklum Text \ul~j<k>ns.lg!il leh..11 ~ l~nAraount .Tex t- furndb::m MICljílk el

Ne ~,!wI az obJektoolllAidon~ ~ kódolb. n"v nem


telfHen viIiQos. AVISUli8asJc ~ III 5-7. fatezBtetben mzlttesebben
fogi 'on'" ma,d.

A teljes fonisk6d
A!)P.~TI weboldalunk lelje:; forr:ískódj~1 a -ll példa \art:llm;l2.1;l, A \'15oU~1 Web
Qe\'elojlCf ~r cikésZil<.:t! ,. SLimunkn! nm" kódot - az (lI;Zlály 11,:\\:",-1""'-"', fik-ne
az c:sernén)k.:zel6! -. de a 4 és 35, 50f kl'>zou, rew. magunknak kell bcirnunk
a perfo .... :ol, gomb' _ "esemm)' kezel6jd>e

Ne IeledjUk.Ilogy I 4.1 . pé'd'OlIIl6tllM6 sorszimozást /I11III NIIOad bWnUN..


Ezek ,1OfSlámOk csak aztrt kIii ...._ I kódban. hogy megt~, hMt-
kolMt az tQV8S k6dsOfokra, amikDf elemwük I programot.
Ezen kMillrn i. am"'uuhetímk, hogy az IntetiSense $89ft I \UIotdOnHgnavek
befrúábM, b figy~menel !WI valamilyen proCIéma VIII I k6ddel. Például amikor
, _I'IAIO .ln'· bIYltBli!Tlell! T.,,,t ~ twllkozlri;, l l, , ........ unt. Text
k:mIM k..w ~ CM lmIII bftjI.*.. pontI,) kanl<.1lIrt. ~",anAI :.unt ~
1I1f9I1ei. egy III1yI6lista , Text80x weba VtZWI6 .Mttwt6 ~ és
tagIiWo~MI. EI6g bem.ri.. kMnt 1IAap;M ...... vtq( ~ """., • .!só
~ betíitét éslll1yorrD I TAl bIII1tYÚt. és, ~ .. torn.tikusII1 kiIIgéSlíb az
elem nMt. AmemYibII1 • ktnYIÓ lisll /I11III JIIanik meg. tUCIlatII*. hOVY Va6IWM
Hor!loltld. ~ eIirtUt B .... nAn, ~u " newt. vagy eIf.~etti:t I mtgl~
TextBox ~ lD tulajdonUg6t l04M!b<>unt·ra áIIta-li.

,.:, Partlal 'ic..",dalcalcu!u, .


, Sy.t• . Web.'JI .Pa!le

4, prol..,t,'" SUb perfo....calc-'ll,·~ lIyVal.-ender AI!. 1.:1: lIyV.l. lia


_ gy_t_._tAr'llsl Kandi", It
""rf{l....c:al~. ~II,
!, 'Alland6k .."!>at'rou,,...

,••. ",n"t
m~t
11l'lDEST_CALCS_P~~_Yi:AR A~
fAYMENTS_PER_V~
lnt"'ll"r
As lnt ....... t 12
II

,.•• 'V41toz6k lo!trehoú ... ~ t .. lhauMl6 4Ital W9~do., 'rt'k"k


_ t'ToUdra
111 .... l»ubl. ~1."I'at;
Dl.. r "Ol IlOubl.. nt e,"'" , II
!. ..... louhle IIIOct'llag"LCI9th. 'fm«:
ll:
14 : Di~ ratePerPeriOd A8 DoUble
15: ratePerP<!rlOd .. r I Im'ElIEST_CALCS_H1LYUR
,",
17, Di", payPerioda ... ~ Inteoger
18, p"yPedods .. t • FAYMEN'TS_PtP._YV.P
19,
20: Dim "nnualRat .. As !l<Jubl"
H: annualRata = Math.E:<pIINTERF.S"l'_CAI.CS_ PER-YBAR • M~th.!..oqll •
_ r"tel'erP~riOd))

Dl .. intl'erPar-nt ..... Do<.Lbl"


intP<!rpayment • IMath.E><pIMath.LoglannualRate + 11 f
_ payPe<i<Xb.) - 1) • ","yPeriods
25:
26: 'A hitel törleut6rhzlet.!:nek klu4altAu
27: Dl .. intl'erlolOnth M DoUble ~ intl'erp"y.ent I PAYMDlTSYIl:ILYEAlI
28:
29, Di,. costPHlIonth As Doubl .. ,
30 : co.tPerllontb = P • intl'erMonth I n M"th.Pow(lntPerl!Qnth •
_ l. -payPeri0d.91
]l:
12:
33: ' ... ~ er~ny ~jel.njt.!:aa " resulta cl~.!:ben
H: n.~u1t~.'l'eKt • 'Your ...tt\l~\l" ""yrwn' per "..",th h S' ,
_ co~tl'erM(}nth

35, End sub


16, End Claa"

A 4.1 peldálYJn 5zcrcpl6 kód nlélyebb elemz(osc a ft.'jez!.'1 \~gt.' felé tl.ljlh~16; egyel6re
egyszen1en írjuk be 3 kódot 1Í8)·. ahogy Vom. még tu ncm is énjü k liszta n 3nn.;,k
minden rt5detét.. A 10--12 . .5OTOknak nonoon érdemes külön figyelmet slt.'ntelnün k,
ebben a három sorban olvassuk ki a Mrom TexlBox vezérlő 61ék~l> és ill rendeljük
vállol6khoz euh'! az é-rtékeh't.

Ha a 4.1. péjda kódjliból egyéttalán nem értü1/r;; semmit, aUDi- sem kel agoódnunk.
Ennek az 6rénak az a célja, hogy bemutassuk, hogyan ~ IélJe BlIY hilSlllOS
ASP.NET weboldalt; az oldal 1000áskód részé'lel a fejeletbe!l később részletesen log-
IalkolUllk, ft az 5·7. tejezetbeo mélyebben meglSmefjiik a Visual Basic nytIlvtilOát is.

A havi IMeszt6részlet kiszám~áslka hasmá/t millematikili egyenletBt megtalálhatllk


a http://www . faq". or<:l/ faQ"/eci-math· feqt <>mpoulldlllte.eet.
az egyenletek mé~bb tárgyalás.a pedig a http,llpeople.hofBtn•. edu,
faculty I Sta f en....Waner fReal WOrld! SllmIIIlI.rylO . html címen.
I
\10 L NR • • •• UdM. ASP.HET-liiI

A pénzügyi számológép kipróbálása


MOSl, hogy elkl'YOIHlnk a~ ASP:[\,'ET wchokbl tn'ML b fom'iskM rtn!",el, in:lZ idere,
1>OgY kipr6b1ltuk " péntilgyi mmol6gépOnkct TőllSOk be az old~lt a bllngtw5hc
a Debug menO Stan Wlthout Dcbugging par:mcd\':óll (VlIgy a CTa.L+f'j b1l1enl)'ll' lenyo-
nús;ivat), ~IIU Id"orditta :lZ ASP,:'Io'ET oldal f~ód re,zi-t, dindílF' a ".~ b
betöki a financi a lCal, "l" to.- . ...."" oldal •.

A SIIft DebUggIng parancs 1II1Of!i1Jl1Z ASP:NET oldal fooúk6d rúz6L 1Iwldit,a


BYJSUI! web O.VtIOPer hibakerls6jM j.w.IQger), js betólb IZ oldalt llKin!I'sz6be.
A SIIft Without DeblJ!t'illllll eZHI mmben MIé/tüIlorditja le Bkódot il lóIti be
llKin!I'sz6ba, hDVV elindilarNl, lIlbaker,1IÓ1.
A hibak8f811Ó otyan $lQtMr, 3O'I8IY képe. elfogni afut6 k6dot, il IIIIMt6v6 lHZ1

\,!.
I Pf~ hDVV sor<ri6nt l6pkedjen 't6Qig • kód ~ A YJSUI!
wtb DeT.).,*, hibIbreS6je Msmos" 1IIt~ IISlk6l.Im1ty lIIigY lIgitSjg&t
nvU!1IIII. hla PI""" •• ' " nem I wrt "ecIrrJ4,.. ~ ~ I SIIft
Wllhaut O·bllgglfl\lllhet~ • hibtbreI6 haSlnáIatinIk lIIPfan •
kH6bbletbtn mig Yiuzat6riri..

AnllkOf" az oklal betOlH5dik, h.irom Ü~ bcvneh mez(,( 11tunk, .".~Iamlnt a Compu\e


Monthly C06I gombot (lásd a 4.8. libr:1().

- .
--
-....
_ _ ...

I ' - ....... &0


-
ol

', ... -
U.Mo
.... "'1AOOr rifo;a)r réJhJf"/Jt br.oz ASI' ,\'I:.T OIdab /kl,.,.,. ,a6ol'R...-:!" ..IrjIf.
hqio' Q foI'-="1f, Oi:/mo/w adJO" ""'8

MOSl írjunk be ér'\'én~ l=nékck..... :o $7.övqjmez6Id>e, (-S k:mmlSunk a Compuu.,


MomhJ)" c..::.&t gomtn, Miuctn a gornhr:l k~Uintol\unk, a h:""i tOr!c~1.tŐf(-nl1:l
rnegielcnik a be'l'ileH mel!6k él a gomb abu, ahogy a ~9, :1br:in 1~lh:IiJUk
......
"'
0-'0
_""" ....
.!!l.~. ;-

_ . ,~r ".... . '___.;1

--_&,
---
"",-,-lll
.L
....
.
I eooe......., ,'"
T_ _ _ ... _ .. I_16<,),_

4.9. 6bra
"pétu:ffSJ' szb'~ 1Ii"""'et" al<korje4",". "u& ami!Jor" SO",bm kIImIlI,,,,.

A feldolgozott forráskód megtel<intés.


Amikor egy böngés~ lekér egy ASI',N"''' oldal!," webkiswlgi16n levő ASP.N"'T·nllXor
feklolgo7.7.a au . é's vi,;szaadj;;1 aZ .,rt.-dmi'nykbll kapol! HTML kódol a böng6;z6nek.
A moIor a webcs "eZérl6ke\ ~7.ab>"n)"':>s IITML-el"mekk~ IIbkitja, 6; v~h"itj3
a fornskódb:ln levő ~nykezel6kct, ami 3 kime-ne\e\ még ~bb módosíthalja
(A FinancialcalC\llato~. asp" okL11on 1",'6 .... rfOrnoClIlc gomb Cli"k é>cm~ny­
kezelője pél<tiul frissí!, " result$ címke Text tul~jdonság:ít. IImi szintén haússal V:ln
II kiIn<-'Tl6 .mll k6dra .)

Az oldal vl'gl('ges HTML kódiit megtek1l1lhetjilk. ha ,""gnézziik " böng6Wl;>en


a kapott okbl fOrcisáL ~~ minden böngész6lehet6vé tCSl;~ lI.7. Intemet Explon.-rben
" View (Nézet) menO Source ( Forr:is) pOntját kell dla=nunk Az el6:illitou HTML
kód megtekinlése ablxln is segíthet, hogy megtaláljuk egy hína oIcll, de még h" nem is
mcrülnek fcl probll'mik, akkor is ajinJon minél gyakr.>.bban megnémi II f0l1"1l5l. hogy
lissuk. mjk~1 alJkulruk ál a webes vezérl6k HTh1L-U::.

Most álljunk meg egy percre, 6; \iZ$giljuk meg II Filancilllcalcullltor .IISpx HTMl-
kimcnL.,a mind az oldd első betöh6ekor. mind.az adatok nJeg3dá~ és,. Corllpl.lte
Monthly Úl'II gornbr.a ,,,16 kaumtás uLin. A2; ASP.I\TI ok!;!l eL<;ő meglátog;H:isakor kapott
11TML-, a >j,2. példa mutatja,

~, d'tml >II1Il""."htq"'IW'WW.w3.or\l/1999n.htlfJ" ~
4, <head><tltl.~
S, r!nanchl CalculatOrl
6, <1t;tle~</~d~
92 JI. rász • Isnwked6IIZ ASP.NET-IIII

,: <body>
~: <fora ~-forml" .ethod."p08t" action."FinancialCalculator.aspx"
_ tdr-to . .l">
9: <dív;>
10: dnpJt type."hiclden" naIM'" VIEW"TA1"E" id=" VIEWS"rA1"E"
_ v .. 1u=· Iw!:"!PlMJl()f!'YIKDQyNjc5~kWC~G1 OI<tjt..hTLkL.I\MJIJTlI'l'YIlJq~" I>
11: <fdiv>
12 :
13: <div~
H: Principa.l ADoUnt:
I~: <Input name,"loanAmcunt- type." t r xt" idc"loanAmOUnt " I~
16: <hr I~
17 : AnnUIll InteTest Rate:
18: <in""t _~"r~te" type.Otext" leI~"r~te" I~'
19 : <br I~
20: l'Iortllalle Length,
~I : <i~ut ~ "~rtg .. geLenqth" type."rext- ielo"mortgaoeLength- !~
_ y.. n.
22: <br !><br !~
23: < input type=" aul:rni t" """"'~. p"rfonrCalc °
_ valu ",~"C"""",t .. Monrhly CoSt" ld="t><!rfonlCalc" '~<br ,~

24 : <bT I>
2S : .nb8P/<Span id3"result.",</span></div>
26:
27: <di">
28:
29: dnput tYP9="hldd<>n" """"'~" ~-"LlOo\1"IOO"
_ ld~ _!:"!VENTVALlOo\1"IOO" value,
_ "/~crbM5A9~.91"'CWKUbujQ~Yoal0A9LenfqNAb2wEVk.jXCQOSWPS9,
... ~q~'JWOUro " I">
30: </div;></fom.~
31: <{body;>
n: </htl>h

A böngészúhöz é-rkez6 H"ThIL n1Cgld"lel<"isen hasonl!t 'lZ ASl'l\"ET oldal tmlL ré$zbtck
IJllahnihoz - egy_k~ k;vl:tclt61 eltekintve. Az d>i6. hogy az ASI''''1::1" oId.~1 HTML
részének elején t:ll~Ih.:lt6 iP"ge utaSi[;\st:l kérelmez6 böngészó I/{'m kapj:! meg.
A má5(.xhk. hogy:l webe; úru.p - a <fOIlII runat=Oserver"> - egy részletesebb <fonn>
ek-rruné abkul (~sd a 8. sort). 6 rejtell !Iru.pmez6ket 15 IJrtalmaz (10. 6 2';1. SOf).

A Text Box" &mon 6l:1b...1vezérh';k ír.lsm6dj:l- ",asp: " ..be ... Ve"4.-115N".",,,
runat. "5"rve.. 0 _ I> - is .szaln~n}"u:I ~rrML-ír:Í5m6ddá al:llrul. A T"nBox web<z vew-
lők <input typez"text·,. demekké \~ltoznak (15 .. IB. é5 21. sor). ~ l:Ibd veztrl6
egy ",spart;> elenuné (25. sor). a Button ''t'Zfu16 pedig az dnput type. ·suknlt",.
abkOl ölti (23. sor). Megflgydhetjük. hogy a w~ \"czérl6k tulajdon.s:lg.1lb61" megr"..
Id6IlTM L-c1crnek ;cllemz6l1csznck; az ID tulajdons:\gok po;ldaul JZ errolliCnyill !<apoIt
IITML-elemeklJen id jelk-mz6kké viltomak.
4. {n • ASP.HET vrlr'dr:l+ ~,lIíb""" ! ils IM,I ' f • I 93

Miután ~ felhasználó a böngész6j(:ben bttkeket ín II három sW>'egmez6be. b a Com-


pUle Monthly cost gombra kaUmtOll, a l>öngéu6 újra elkm ~ flnancialCalculll.-
tor. aspl< oldalt de czúlul a feltl:lSZlÚló által megadou adatokat is elküldi a wcllkiszol·
g:ílón:,k ~ kl:rdemmt.'l e~iin. Ell- amikor felhasználói ~ditokat meUjlkelünk e~
u~.,.n:lIT'3. :l weboldilrn irán}'uló úphb ktrelemhel! _ I'isszacsmokimak /l(!'\·C1.l\,k, és CI!
a 1eg.'>Wkv:in}'"O:sabb módja an""k.IIO~·lálog:>t6k ~Ital beírt adatokn juuassunk vi= a
",'ebki.o;roI~I6n k'\'ő kiszolgal6okJa.li kódnak feldolgoclsra

Al ASP ''ET-mo!or képes meghat~n;)l!ni, hogya vlSlo'Zacsatolás oka ~z volt, hogy


3 felhasználó:J Compute Monthly cos! gombr.!. kauinlOCt, elén elindólp a pertonnClI.l<
gomb Click esemrn}'«, anunek a h:llás:ira lerut a hozzá tartozó C5e1nénykezeI6. Ez...."
kivül a l.arom beviteli "",dl Text tubjd.onsjga l~ rns,sül, hogya relh:JSLn:i16 ~lt~1 bei"
é"éket tükrözze. Tehát lefut ól gomb Cl1ck escménykezel6je (lásd aL l pl:1(Üt), ~
a megadott adatok alapján kiszámitja a j('"lzáloghitel havi törI=t6rh1Je~. A re$ult ..
címke Text tulajdonsága ennek a ki..'<Z:Ómítou ÖS52.<'gn<,k llK1ifcJel6en megváltozik,
a mQIor pedig clóalhtj;! az oldil új I-fThIL kódját, amcl~"et \issuküld n i1~"fclnck.

II \";=o;atol.is eredm&lycképpen kapott IO'ML kis ml'rtékben különböz,k az első


kcrelemnel k~poIt6l, mhel" Text Box ,'ezt'r16k Text tuL..jdons:lglban nlObt rrclr "'nck,-~
ket taljlunk <el.eket adta meg a felhar;w:l16), 2 ..-eIuita címke hasonló tulajdon.'>ága
pedig a ha,'; tŐfIe'>~6rhzlctet lanalmalZól, AZ aditok beírá", és a Compu!e Monthly
cos< gombr.!. törtl'n6" bUinl,j~ ut:in kapott HTML kódot a 4,3. p(,lda mm:llia

4.3, .,.w. A ImfL W, ",,,U,, b61~ aJJ.ol' ilap, "móltor"fc/Ioas:mAIó" i/omIJT(, kallóm

.,
I: <!DOC'l'YI'E ht.L PUBLIC "-,/WJCI/DTD XIITIU, 1,0
_ ·http://wwv.w3.o<gITR/xhlmlIIDTOlxh~m1I-tran.lt1onal.dtd·~

.J: <ht,.l XIIllns_'http: /wwv.wl.o~~11999/XhW" >


Tr~ndt1onall/t2i"

., <h~~<~itlft>
~: ,.1""n<:l .. 1 C/lleulBtOr!
6, <ltitl~><lhead~

",
9:
-
<div~
10: <input
dom """",." fonal. " _ t hod·" post· action.' f! ""nel alCa1, .lator. ~~px'
id7"!oml " ~

~YP<!" "hidden' ....... "_VIEW",.,.ATE' Id." _VU:w:>'TATE"


_ val ue" " i WEPIMJJQrIT'll MIXlYt/j c!; NQ9 Ho I CIIw9 k r~ I CCQ8 Pf'9! eBFlIleOOfNf l vdl( I
_ bW9ydGdh1.2
_~cCl'~t"rWVuclCBwZllIgbW9u~.uM9JOEIX1i"luImJOM'l'M>«7l'klN'l'hkWQnhcY:o:mIJ7nN!o.
~jipGZoNRpn60g __ " f~

ll, </d!v~
U,
13, <,Hv~

It, Pdndpal """"'nt:


15, "Input ....... 'loanAolount' tyt>e>"t~n" valu~o " 250(~)·
_ id~'l~nt' I~

16, <br ',.


94 11. r6IQ: • lsmerbd6s IZ ASP.NET·teI

11 , Annual Int"reIJt !late ,


ta , <input .....a'·'ut,,· type" t ext ' " .. ~u,,~·6 , O · id ~ ·r.. t . " l>'
",
>o,
dlr J>
MOrt;a;e Length ,
2l! <Input naaek·.ort; .. g,,~n;th· ~ype."text " " .. I~ ~ ·)O·
_ id' · lIOrtgag .. Loanqt h" I> ye.o.u
22, <br I><br I>
23, <Input typeö ".ubad t " nAme."performCalc·
_ v"l""m'C",""",te MOnthly Coat" Id="pedo,..",c"lc" '><br I>
<br I>
'nbI\ll'''''ptln id.·r ... ulU·>Your OIOrtgllg ......"""'nt P<"r "",nth la
_ Sl496,55413i99558<J_,,></dln
26,
J7, <div>
28 ,
29, <Input tYllf! _ 'hidd"n' """",~·.--f;VEN'!'VALID.'ITI(JN·
_ id," .......EVDI'l'VALlnATlOO·
_ valu" •• ' ,,EWBQlOI80S.IIWI(CIJ9T4C101KUhuj aIl.Y:Yoa30AgLenfqNA.T6 xN1DkRS
_ CYWYqITil""k 8 flqLpll" h
lO , .. ldlv~ .. lfo""'"
31, .. I body:>
]2 , </htntl,.

-
,,,
,,,
J.
_
~' ,
...... . flo cm' _ _
•.. , __ ....... Ioo9i.__ -...qo'eo..e
I. A

. . . . 101
Ili" il ' . . . . _.~Nll

ogoooln _
'I' .....
__
::: . gorofn .......... _ ............. 1QNEf
,
II
ti .. I,W 61.

..... _ "

CIick . ... .. ...


" .....

....

ID. A _ m.l~ OIOI.IIiO" ~Nll_ ~ ........ - .

II l!JI!onor, .... Ol ~ ""'.


If. l!JI!OnOr, _ .........

4.1D,iItn
.-4. lriuoJsdlóoMaJ, IJóiI anll allIlor Itajródl" '<'8"", Dtnl/;t;)r az r1g, )ftI ezl /,frl a Idszo4JIiMtól
A 4.;1. ~1d1lY~n szereplő HTML kód már jelen!6sen különbözik a 4,2. ~Idl.b:m
1:l!ou6l, A három Te:ttBox velérIő 'l"&x t !ulajdon5ág.1t lIlO<i! m1r !ÖkTÖ1.ik alt <i nput
type~ • tex t' > IITML-eIt"fT\("k, rnegpedig val ue jellemz6kkén! (IS .. IS. bs 21 , sor).

Ezen kívül 3 label \"ezM6 'l"e xt tulajdonság:!! 3 bÖngb7.6 a megfelelő < ~ pan> elem
bebl'i !~rtalm3ként kapja meg (25 .'!QI")

A kulofOl1tOMágii l<'pé5ekc:t a 410. :íb1"Ol muu\j~

Foruos, hogy &tsilk, hogy az ASP,NET oldal fOl'tásk6d J6'.&,:n szerepl6 kód csak akkor
fut Ic. amikor a felhaszru;1ó böngész6je e2;l kifqer.euen kéri ~ webkisz.olgiIÓl61. Az oIpn
oldalakon, amel~cl; adatok megad:ls:'lt váljtik a felhasr.n:íl6!ól.:I kl"<ZOlgl'iI60kbli kód
v~latus;"i1"Ol ~ddig nem kerül sor. anúg a feLhd.SZlláló d nem küldte az crrlap<J(. amihez
áJrnláoon egy gombrJ (egy Bunoo wd.>es vczérl6rel keU kauim:mia, Ez! az elj!ir.i>t
résZlel~ tárgy..ljuk a 9. fej<'zetben.

Amikor ~iprób.áljuk az oldall és a COflllute Moo!hlv Cost {IOmbt'& kattintunk.


a bCil19ész6 újra elkéri. n nacialCa l eu l a t o r.;>sp>< OkIaIt, ~ a kérelemhe.z
meIlékaii B bevitt adatokill.. Ez a lépes a másodperc töcvásze illatt megy végbtl
a Qámlt6gépen, úgyhogy valóSZinűleg Me sem ~. Csak annyit látufi;;, hogy
a {10mbfa kattintunk, 8 hitelllavi tiirleSll6részlete pedig megjeieflik az oldalon,
Esetünkben azéft rt8fI1 ímlblünk késlllkadúsl mert he/ybef1 teSlleliö., [gy az íigyfél
(I webbOOgász6t és 8 kiszollfáló (a webkiszolgál6 $l(lftvef és III ASP.NET·motor)
ugyanazon. gépeflla saját mmlt6~kön) található. A helyzet azonban iItaIában
az. hogy az ügyfél és a kiszolgáló lizikailllg elkülöoiil, és III Interneten keresztíil
kapcsolódik egymáshoz.. Tesztelés közben mrt kapufi;; aZOmaI efedményt, mert
nem lassít minket hálózati kapcsolat, a valóságban azonban eltelne némi ioo a gomllra
karuntás é5 III eredmány m&gJelenése közön. N, hogy mennyi ioo, sok·sok tényelÓt6I
függ fpékláuj attól, hogy III iigyf~ IKacsony vagy magas sávszVlességú internetkapcso·
lattal rendelkwk, vagy a ~ elérhet6ségét61. az oitvonaltól, ama/ven it
meo''*ezil a k&l"elem" a válasz az Interneten ket-eSllíil, a hálózat terf1eks&gét6l. stb).

Hibák keresése 8 bemenetben


A lesZlel6> elengedhetetlen resze. hogy ne CI:Ik ~ZI nh..zilk Illt'g. hogy mi történik ~ vart
a<blok mesad1sa esetm, hanem 112;1 is, hogy mi van akkor. lu nem ,cin bernt-rtetet
kapunk Mi \Ört{'11,k !*ldiul akk",. ha II felhasználó ~ Mongage length mc~'" II J'sun"
M.:ket írja (~mi n~il\'ln'":Iloon nem :IZ évek száma 'í!

Egy ilyen hilxls trték bciJisa fu!ásidcjcr hib:it okoz. amllll ~2;I a'l! I ábr.ln láthatJUk

A f"",uhez hasonló hiOOüzenetek megk,het66en za,>arosak. eZ,;rI sokk:ll jobb lenne. ha


hilXis bemenet mqpdba e;etén egy egyszeru hib:!ü;r;ene1<.1 jclenítenénk meg II ro:'>.~
"dalol tartalmazó bevileli lllt'z6(k) mellett. amely tiié'kOZt:d. hogy aZ adit formátuma
961L liI:Z • lImefkedM IZ ASf'.NET4I
nem megfelell'í. A helyes formjtumol billo:sító elJiTisl bet"c>u'l-<Jn~'II)'es{léslU*v"gy
lJ(mle"et~IIClI(frzésflck rK'V('tik, t'!s az ASP.NEr-ben ,zen'nc;,8c nagyon kÓlln)'Ű
mc~.. IÓ:;íuni (rl'S"dClcsen a 12. fqczClbo.'Il foglalkozunk vele),

,- '.

I~ 4' ~tlon.

1r>pUt""""'P . . . _ ol • cotf«t _ _

------_
-- .._-
.. ----,-
-.. _ _ n_'.• _ ... _ ... __ w • • • _ _. ' _ . _ ••
-----~.~----_

, _._ .. ... _w_.,,. __ . . _


w
·
"
~
.
w
_
-,,,
4.11 ....
.. _ ... _ ... _ _ ~ . . . _ _ _ _ <H. . . _ _ , _ _ ,
11<1 a b,mWt'ef forn"i/Olm(J
Iu:m ,,'ezift-l<>/Q. fi/l{i$ilk'lJl
Itw.. lep fol
A lecke k~bi nisníboo említettük, mennyire lantos a felllaszn.tlói felület és
IZ ASP.NfT weboldal képességeinK és ~Btásaínak elézetes meghatározása.
EmeUen azooban 8lIIS romos megterveznl, hogy miként viselkedje!l8 mbold8l
akkor. ha valami nem a turv ~nt történik.

A forráskód vizsgálata
... Visual Basic nyelvben Ugy:1O 11)('8 nem merilhünk el. dc ennek elle,"","! érdcme5
egy kis ,d6t ,;zánni rIi, hogy \~gignézzak 3z in~11l elkésZített ASP.'ffiT oldal forr:isk6dját
A Visual ,"'cb !)e1.·eloper ~hJ! be"zürt .kitöltő" kódol (az Inher i ta u\;!sit:ist, illetve
al OI>ztály-megh:lláro7..i~ 1:5 a7 eseménykczelö vácitl már L.irgyalluk. ezért fordítsuk
a ngrl'lmankCl az csell"lénykezcl6n belal lal:1lhaló k6drn Ez a kód hajtódik végre,
amikor" fl'lhaszn~1ó a COrnpule Monlhly cos/: g<lmbr:! kauinI. és 11 feladal~ az. hogy
beolva.$l;llll felhllszn~16 ~l!al beirt ada!Ok:ll, és enr\Ck:l bemenetnek az alapján kisz;:í.
mit.sa és megjelenítse a jclz.~loghilcl ha"i löriesztl5részlt.1t1.

Az ClSCménykezd6 k6dpnak e/sl:l sora <S sor) cgy mt:gjegyz<'í, A V....;ual Ba~icben
a megj<'gyZl!sekel egy aposuróf jelti; az ASI',:..1ET-motOr mindent ngycln>en kivül hagy.
ami ez után következik a wrban, A megjeg)'zé""k eg)"CIlen céh s:wlg:ílnak, nl. hogy
az emberi szemnek oh"ll5halóbb.i leln"ék a kódol. A könyv példak6djaioon sok·sok
hasznc.; megtegyzést lal~lharunk. amelyek ...cgílenl'k. hogy könnyebben mt.'gért5ük,
Inil csinála kód.
Az cls6 megjeg}"lés után k(:t állmu"'t(korul~nst) talá.lunk. Az állandó ol)';ln értl!k.
amelyet 3 programban nem v~hoZl3th:ltunk meg. Az iu h:undh kct ~JJand6-
IN't'ERES'l'_CAl,CS_PEILYE.I\R és P... 'O!EN'l'S_PER...,YEAR - azt határol.l:l meg. hogy
;I kam:l~<;z;\mrt;1srn milyen gyakrJn kertll 'iOr. illewe hogy 3 hitel fut:!midejébe hány

fiZt'tési periódus tartozik, AlJpl'11elmezé.o. szt'fim mindken6nek 12 az erték~, ami aZt


jelemi. hogy:l hitel tu"oma kamatozik, és:l törleYt6.1 havOIlta egyS2er kell tdjesileni
Ez ut~n, a 10-12. ~n, a három TextBox \czérl6b61 számum ~rtl!keket \';'hoz6kba
hdyezzOk. A \':IlIoz6 oly:m programoúsi szerkezet, amely val~mily"n btéke\ droL
Az ill mcghat~roZOlt vlltoz6k n.,\,e P. r és t. atl(lIIíptl$l"~ pedig Double, A \'~hoz6
:ld:luipusa 'vag} röviden lípusa) jelzi. hogy nlllyen adatOl I<Írolha\ a v,Utozó. A Double
:l .1"1:, kerctrendsZCT egyik bctpített tipusa, amel~ killönféle pomOMjgU számértékek
szl!les \1iI:l5zték~t képes t:lrolni,

Miut:ln a TextBox n~zt,rI6k én&eit beo!v:l5lUk,:l havi töri=<'I'részk'1L't hmlmítö


m:l1ern:1tikaj képle\ek alkalmazás:'irn kerül sor. A H. 6; 15. sorlxtn ll!1rehozzuk
a rAt.ePerPeriod vlltoz6t, és hozzárendcljilk a k.nn:l\ ért(lk(:t. EZI kö'd6en rögzít jOk
a flZCll!si peri(xJusok sL1m1t, és elrJkúrozzuk a payPeriod~ dJtoz6b:l.n. Ez ut~n nlt'gha-
táml,zuk az hes kamatlabat, ,11en'e hogy penödw,onként menny, kamatOl kcU fl~.(.1ni.
majd lill, hogy havont:! mennyit. VégO.l a 30. sorlxin kiszimíljuk ~ h~vi lörleszt<'írészk'tel.
és ~ kapo« eredmt:nyt a ~esu1 ts "ez('rl<'l' Text luJajdonságához rt.ondeljilk.

A 4.1 ~ldWan látható köd eil!g jól oIv:uh:ltó, <:Sak a m:ut"llI"uk:li ~'enlelek lehL1nek
nehezebbek. de "zt 1u5z.em. abban ~,ett:rthctil.nk. hogy ha egyszeruen {'gyenként
\'t:gigmegyOnk a k6dsorokon, vil~gos kell k'S}'t'11, hogy mi tönt:nik. A 18. sorlxin-
payPeriod.s ~ t • PAYHEI.;TS_P~YEAR _ ~kU\l1 ve&SZOk a t enékl!! (a hitel futami-
dej(:t). és megs7.0roz7.llk az évi lörteszti!sek számiv:.L amib61 megk3pjuk a lIilelldjcs
futamKJe;e aJall teljesitend6 törl=6ek ~zim:il. A lényeg az, hogy mivel a \rk'\\lal B:l5k
nyehtana ha.sotllít az angol n)'dvl!hcz, mt:g azok IS megérthetik ~ köd lényegd puszta
oIVll.>;iSS;ll, ak,k csak ~Iig \'agy eg;'lllaJ:ín TlI.'m rendelkeznek prögr:lmoz:\5i t:lpaszlalau:ll_

"'e agg6djunk, ha még m,ndig rejtél)'e:\nek la~ljuk a 4.1. ~Id;iban szcn.'pl6 kódo!.
K6do1\1lSisi kt:pesst:günk ~ kön1kező Mrom ~ban jelentÖost'n fejl<'klni fog, ahogy
mél)'ebben elmerülünk:l Visual Basi<: n)'eIVlanáoon .•\lire ~ 7. órJ végére érünk.. birto-
lGioon leszank mlndaZOf1 '-isual B;.sj(:-IStl1l'rel..knek, "melyek a könyv ~Idakódiainak
n><'gén.é$<'hez S2Libége:iek.

A hibakereső használata
A~ ASP "'ET old> bk k<'s2;Ít(-sekor elkeriilheletleniil problenrlkoo illkÓ7.Únk. amikor
" fomsk6d ~ nem úg}' nnThödik, ahogy v:írn~nk Leht.'t, hOg}' egy ködblokk nem
akkor fUI le, anlikor s.zert.1n(mk, vagy a kimenel je..z más. mini amire ~zámítunk_ lly.. n
I."Selben a I1fbul.:cres6rc IllI\llszkodhalunk. A llibake~ (debugger) ol~can kiilönleges
~wrt\-·cr. an><,ly képe!i dfogni egy fulÓ progr.'moI.. és megmut:llnl " programozónak
I
\IB LrMZ ' lamerbdM IlASP.NET·ttI

:Ifln~kbel..., mük~. Sajnos ~rro sem irJúnk . .-em helyiInk runcs, hogy mél}'sl-gébcn
mlUassuk be II hibakeresé$ rejtelmeil, ettn <:Slk ~ legfonlosabb hibakeresési reIada-
lokra fogunk ÖM1:ponlQl)[tani

A:I. ASI')\t, oIoolak Ie..:l.telésekor úgy indithalluk cl ~ hi!Y~kcres6!. hogy ~ ])cbug


menOb6la Stan l>ebugging lehet1i&égcl választ juk Ha az ~dOll \Vl.>bhe!}'en el6szőr
\'égzilnk hibakert'Sést.. ~ Debuggn18)\'OI Enabled (A hibakere*> nem engedélyezell)
p:lr\.Jesz(odablak jeJ...'1lik meg. amelyet II 4.12. ~brin l:ithatunk, !la <:"gy ASP.I\'1'
webhelyen hibakeresé:;l szeretnénk "egezni. an úgy kelJ OdUóununk. hogy t:ln~
II hib:lkeresésl- az új ASP.I\"ET projektek alap&telmeJi;s szenn! IICIII en~I}·ezik.
A Debugging)/OI Enahled pJrbesléWblak erre flgyelmenet, 6 3utomatiku~n felkín:lli:t
II web.'xmfig OdUíl6Hjl m6dositislil. hogy bck:lpo;olja a lubaker=éll.

A hibakefesést az F5 billenlyÜ Itlllyomésával vagy az eu\(öztár zöld lefétszás


{jOmbjéra klltlmtv! is elinditha~uk.

--_-, .. __. . __...._... _"",, ...


...
_-
",-~""".

.... ~
_..... ,.~-.
-fl - . . . . - .. _ ... _ ...... _ ..
4.12. 6bnI
A lJebugs"l8 ,,*,, fi",.b/l!tJ J>tl~Jabiak
....---~....... ann /IgJ't'Imati'/, /r(JgY az- aik<llmnztlsban
'ICm llapoolwk be a hiba~

V:ibSS7.uk II web.confill fá~ rrissít6;(1. hogya wt.>bhely tÁmogas.sa II hibakcresésl


jeLöljúk be a Modify the W'eb.config file 10 enahle dd>ul!8ing k:ht.16s('geI. 6 kaltintsunk
az OK gOmbr.I, Eae! elindítjuk II böngész6t, és beWltjiik a F';nancidCalculatof .aspx
nich!!, ahogy a '\8. ~brin l.1ttuk.

Ezen a ponton ésZr'e.'\eln vt:Ss7.iik. hogy ~ hib3ken.':S6 fut. mivel a böngfsz6ben


.'iCmmilrCl1 v:1lt07.:ist nem látunk. A killönWg az, hogy most núr bdllith:llunk <'gy vagy
több ~mOt az ASP.N!:' okhl fOft'ásk6d ri-szében. A töréspontok oIpn jel7.6k
a forráskódOOn, amelrek('( el&ve a ptogr.Im végrehajtása megji!. és II hiookeR's6 ~'t'S7j 3t
a wZ(:rlést. A löréspomhoz érve tehát automatikusan a VI5UaI \\'eb O!.....elOJX·rhez keriil
3z iro.nyít:l5. Igy :!iOroI\kénlJépdelve hajtathat juk végre a kódot. és mc:.-gt~·kmlhetjük
II változók pillan:ltn}; értéké!.

Állítsunk hát be <:"gy löréspontOl: hagyjuk futni a böngé:;z6l. 6lérjünk \'Í5SZ<l


~ Financialc.lculatof .... spx oldal forrlisk6d rész('hez:il \'i5ual \\Cb DevelOfX'rl>c'n.
A töré~pomO! ahhoz II k6dsorhoz kell adnunk. amelyben ~ Di .. P Aa DoUble _
10<lIlAm0unt. Text 5ZÖ\eSCl. olvashatjuk (ez a 10. -5or II i.l, példioon). \tgyOk a kurzort
elTt' a k6dsorr~. & nyomjuk le lll': F9 billenlyll't. \'lIH)' ltattmtsunk a k6dsor \lilágosszúrke
baj m::I.rgóPra Mindk~1'! qy I~ iUil be, am,l egy >örös kör;elez a margón,
~1 ..1ve a k6d!;or >ilrÖI; kiemclt:se. At okbJ fomlsk6d res.z..'t II \i5uaJ '"eb n.,·..cloprTbffl
J ,<:l!'hpont bdlJitha uLin al n joo mutatt"

n •• ~ .~" •••. ~ ., .~ •

l .~:::,""--
..... _-_ . .........
_.. .......

t •• ."

•. 13. "
.., - .lz oItt..1 n 1<io"c>I1{).,1
b«l1l'1"''' UI,jtl

Most 'L'fjI1nk vi~ a bön8~z6höz, írjunk be valamilyen ~"éket a 5Wvegnw:Uikbc. 6


kauln~nk a Compu\e Monthl)' cost gombra, A gombn .....I1ó k;oninth dindít~
a \'i5SZ<lo:l'o!<bI, ami \'~FI II "e~ u ASI' NE'!' OkbJ forr.ísk6d rt5zt........ k. ~
mrghivp a gomb :H·,k OC:II~n)1",:~. It. "~greh;lJU5l><rln rg)'SIlt!f ($lk el<:rtlnk
a Ot. p As Doubl •• 10<0""-,·,,,t. TIc>.xt k(xJ,;Qri,o.z. ahol II IÖreSpOnTunk UUIIUló,
Ennél II ~I II program J11oC'SJU. ts II hib;lkere56 '"elZI ~t az icln)it:il51. A \'Í$UlIJ \TOdl
Or\~rbr>, u ~pprn \-es:relu~:i.~ ab.n :i.11ó klxhor oJrg:I kiemeJést bp IUsd
a 4 14 lbclt) - ffi05l az II kócbot li;':!;z shp. amelyR.' lU. ,mént ,öresporItOC ~Ihtocn'nk he

A .örespor1tJlOZ érve tehat a program fulása ITK'ttjll. bo m(lködé5be Iq, II hiIXlkcrn6.


~melyben m"lJ\"iz.sg:llh"'liUk ~ klllönl"éle vlltmók ének''!. E!zeket II 4, 14, ;iIJr.l hal alsó
sarlcloon I:I.thalÓ Locals (11...J)ll';ihozók) abbk muutl" A legIÖbb \<Íh<JZ6nak ,~n
alapéndmrZdl értéke: n Al.' ... 1~..H •• eo.l"-rMcmth. (ntPflcMOnth !.tb. \JltalÓké
~kliul k]\'~ nélkOl O E!nnek oko az. hog)' ~ nem émJnk ri a:rokOOz '" ~Z.
ahol ettk II v~ltoz6Ir: <!-ru,ket IwJWUk ~. ((l\'al:rblqxlcl{lnk a progflun sorolJn,
uo értékek f'rUsülnek a 1.o<.':IIs ablaklxm.

A pl"O!9'l'm Y~8reh.arWJn:ok fol~'Jdsához ...... b:;Q.uk a DdJUg mcnil Slcp o.'l'!"


(lil\"lbbl....pés) par:l.nc:sJ •• \'~gy Cg)-'$ZenlL'fl nyorrlJOk Ic lU FlO biJk'fltyl1t E7.zel a kl)<.·d-
kea1 k6dSOrr.I keril](lnk I II ~rw::rr lenromjuk ;lZ flO hillent)'ÚI, megflg}-eIhe!lllk,
allOgt· a SÍrg:Ildernrlo$ qn""" Iei!rbb kerul a k6chln. & az &tark módosuhuk ~ I.o<."b
~bbklR.n. Ha a kÖ\·eUr;<."a1 t~ ~ ugr.Ini. n)'OmJUk Je az f~ brJJent)1.lt.
100 II. rHZ • lsnwked6s IZ ASP.NEH"
~';lgy \.ilasszuk a Debug "lL'"flii Conlinue (Folyutás) ponlpl, l'i:kUnkban el:'ZI ered-
rnffiye:zl, hogya \'el:&lés visszakerill a böngbrohöz, mive! löbb türesrx>nlOl nem
:illílolllmk be.

"' ... ""'_ ...


ol" • " .A.
_""-_ ..
-- .......-- .
.1- . .

~:i~"'~:'~~ :'> 1-', ..


-
""'..... ......... ...... -_."
, ,
...-.o, ... , .... .. , _ . "
,_o ... ,.
- ,.. ,..... ....- _ ....
_
.... .. . '- .,-
~

~ ~
_~ ' ._
-,,...,

.......

,--- -- - •

,,------~=
• • "-
.. •
••
-
----
"

4,1 4,6bnt
A /6rf!spom/Joz

e-=. .... '" aprog",m


IUI,w, '"'-»fil

A Local$ lIbIal használatán ~fWI a változók piUaoatnyi 'rtélt't ÍIII'r' is meo'lapíthaljuk,


hogy III aghJel a klv,"t Yáltoló neve lÖI6 MItri; a lom\sk6dban. Ezen kfvij más
hibal-.eres~ ablakok is a segltségünkra lehetnek; 8 Watch (Figyelő) ablakban például
megadhiltjut, mtlly YáltOlÓk Vag( kifejezés&!: htékét swetnénk fiwelni. A hibakeres~
ablakok teljes listáját rnagtal.áljuk a Debtlg menü Windows (Ablakok) altnenüjében.

Ha a hibo,keresfslleljöen le s.z<:relnénk ~llí(~ni. kallin~~unk ~ Ikbug nlenU Stop


Debugging (A hjookc~ 1t'1iIJíLl!;:1) p.:u:mcsil':l,

Az el6Wekbc-n C5\lp>n rövid ~nekintést adtunk a Visool Web Developer hibakcresé!;i


ké~geir61 Miel6tt azonban mélyebben belc~sn.1nk m:ogunkat 3 fejleQI6kömyezet
hibo.ker~i =lg~ltatásamak fdt('Tképezésébe. téls.zenl gpkorolnunk az ASP,:..'!:'T
webold3lak létrehoclj.,'it Ha el: nl;\r nem okOl: gondol. a hibaken:sésT6l a Mkroson
WaJktl".,:m sh, Dc!IJugg;,W Weh pages il! \ ,suallfeb De!oe/op<'rclmú cikkéb61I~~ko­
z6dhalunk a h up : I I_dn2 . ",iooro~o ft . oorun/en 'us / l l br .. qo / zge7w6c" eimen,

Összefoglalás
ElIben a leckében ~1.lilk , hogyan k6z.i"thctilnk egy e~ríI. de gyakorl~ti
hasWIlr\31 biró ASJ>'\"ET "'eholdal\. Annak a felv:izolkh":ll kev.hük. hogy U oId3lnak
milyen k~kkel kell majd rendelkeznie. (beJeém-~ a s.ziik:;égcs bc\'iteli nJeZ&et 6;
a kimenetet is), majd :lnekintetn1k. hog}':m kell majd kin~znje a fcll~ felUk'!.[)('k.
4. ón, • ASPJflw l bc'd ' , ~ 16trII'IozáI " lUz! 'f J 101

Ezt követócn 3Z ASP.


ami J
N", oldal H'f;\IL részének mcgirisá\'31 kiaJakí\OI\uk
\-iSuaIWeb Developeroen csa k annyibólállt. hogy beínuk:l S2.Öwgmczúk
~
felül<::1et,

feliratit. 6 a~ ol<blra hÚl.ruk a '~uksege5 TextBox, Bunon é< I.:>bel vczér1őkct.

III-ITM L rész utin következett a fom~k6d. II s.z.:lnútiSl végrelujt6 kódo! beszúrtuk


aCompuh, Momhly <:0.;( gomb Cliek esemt'nykczcl6je>e. <trni ~zzaJ aJ. L"fedménnyel
jar. hogy ~ beilJe5llett kód minden alkalommal végrehajt6dik, ~m;kor a fellwS7.n:i16
~ COInpute Momhly CO$! gombra kauint.

A tervezési és a fejlesztési $zaka$1;1 követ6en ki is próbáltuk ASI'.KET wd)()jdalunk-~t


betoItöuük a webbö~robe. b trtékekCllnunk a három l"""tt:li mez6ht:. v':giil
az 6r:ít az ASP_NIT ol<bl forráskód részének elent2és<:vel z:inuk.

Kérdezz-felelek
K: II"&Iw, 1l'fI(ic!"J;'I~ .esct"~>lykódOf'/'Xv II"t-b Fon" Ifp"S') t>ld"lro helyezí'f/
/'CZ~rl(fhőz! MI"diS ell's csall ,Iup/ii" kallim,,,,/ a vczérlóro II Im"('ZÓ "ezd/xml
\I: Ebben a leckében I~uuk, hogyan tir:o;íthatunk e5eménykero61 egy Bunon webes
,'ezM6 Cl iek L'SCnltn)'éhez:l forr:isk6d részben. Az egyik m6dszer. hogy
('gYS7.enk-n duplán kattintunk a vez':'rl6re a te",ez6 nézL'Iben, ekkor a Visual
'1lieb ()e,.·eloper bcszúlja :1 megfeleló" e5emtn}'keze16 vbát az oldal forr:iskód
részébe (a BUtlOfl ve~&16 esetében a Cl ick ~nykezel6ét),
Egy ",d.JCS "ezlirl6nek nonoon kü[ónf"le eseményei lehetnek, '':l~'IS
3z ASP.KET oldal fOl'r".u;k6d re.szt:ben több csemt'nykezdÓllk is lehel M,nJcn
webc5 vezérlönek '':ln egy alapertelmezcft esembl)"- amikor a ler.-ezóbcn
dup1~n kattintunk cl, ehhez az alapértelmezett ~rhez jön létre =>tny-
kezel6. (Még e~'S"ler: a Buuon vezlirl6 esetében ez az C5eITll:ny a Click.
"agyis a k:minuis.)
lia e~' ''Cz':r16nck nem az abpérteJmezetL ~nythez, lunent "gy nJ;ÍJ;ikhOl
szeretnénk eseménykezc!6I ,endelni. közvellenül a forr.l~kód r6zbcn kdl
k"'"Ia~ztanunk a megfelelő "ezlir!6I6 eseményt:1 lap tetCJl'n találhat6 két
len}116Iistáb61. Az dj~r1S! mvitkn iSmenettük ebben. ,llcwI' a 2. fejezetben
K: M/ t(!rr(?"fle, ha " f1'Jnzilg;; számmis kótlj<iI lIem a Blltfoll_ O/ck, hmu'//!
a Page_Load erem~nykczclóbe U:m/&,'"
v: EmlékeU;iink vL~. hogy a p.,geJ,oad eseménykezel60en szerepl6 kód minden
alk~lonun:d Icfut. anuJux kérelem 6'Kezik 3z adott ASP_l\TI weboklaJra Amikor
a ~og;.t6 elÖQÖr' nyitja meg a wcboldalunkat, m(-g nem írta be.:t 11I1clös.'lL'gct.
a kamatl.1b:1t 6 a futami06t, ezén hll megkíséreljuk \'égrehaJl.-ltni a SJ'.am;lOi". hioot
kapunk, mert a kód olyan adatokkal pr6b:l.1 sdmmuvelCleket '-<:S'nn;. amelyeket
a felhasznál6 még nem adon meg .
.'>th·c! ~ s;clmiúS! C$:Ik az má,/ a!<aljuk végrehajtatni, hogy J felhaszn:\16 megadta
II szükstge5 énékeke1 , 3 kódot az elküld6 gomb Cl ick ~ményk"Z<'I6jében
ken c!helyeUlunk.
102 ! I. lÚZ • ""*k.... Il ASP.NEHeI

Ismétl6 kérdések
l. Mién fomos a 5wftverfeJl=t5 ICT\'ezési szakasu.?
2. Hogyan adh~tunk egy TextBox w~-bes \e~rl& egy ASP./l:ET wt->boldalhoz II
Visual \l:"~) D...'Veloperl.len?
3. Mién adtunk eg)'l:Ibel vezérl& az A.~P./l:ET oldallITM1. ré5zéhez?
4. Milyen kimenetet. ad n ASP.'>ET oldal, ha II fell13$Zn~16 nem !TK'gcngedt-<U
kJr:lktcl'('ket ir a beviteli rnez6kbe (I*I(l;1u l II Mongagc AmolJnI mczlobc an írja.
hogy .. &lm")?
5. Ilogpn adhatunk C5enlénykezel61 egy Buuon \'Cztr16 Cl ick escmfuyéhez
a \'....sual Web Dcvdoperbcn?
6. A TcxtBox vezérl6 eSC!(-bcn mclyik tulajdons.1gr.l kelJ hl\"atkoznunk. hogy
meghat:irozl\:lSMlk. milyen ~kel ín be a mezőhe ~ felhasz.n:íl6?

Válaszok
l. II lClVezl:si Sl.1.kaszban 0zoljuk fe!, milyen .'\WIg;iltat!i50k:!1 fog nyújtan;
a szoftver. és ekkor határozmk meg II fdha.o;zn116i fdilJettt is, Ez II lépés
azén fontos. men a smllP1t:.oliisok előzetesen összdllított !ísdj:1.r.J pilJanlV"d mi.
a f6nökOnk és II rncgrendcl6 is 1:1.(hatja. hog)'an halad a munk:!. és nem lehet
vita L1rgy:l dZ Sl'm. hogy II prt>gramnak mIlyen szolg11tat.isoknak kellene
t:Irt:1lmaznl3
2, II TextBox \"e7.érJ6 homaUás:hLlk k& módi:! van. Az els6. hogyegySlen'íen
II vezérl6re ka11lmunk a Tooloox p:!1et1an. és n egér gombJát nyomva tanv:l
az oldalra húzzuk II vczér16t II második, hogy fordos néretben magunk írjuk be
II TextBox k6dj~l.

3. AI. ASP,NET weboldal HTML részébe alén vetTÜnk fe! egy lahe! vezérlÓl. hogy
J~en miben mcgjí'lenílenilnk II s.clmítis eredmény~.
4. Amennyiben a felhaszmló érvén}1elen b<-menetet ad meg, futisidcjú hioo l(ip
fel, A rnegjelen6 hirn.O~enetet a ,Il t. ~brJn l~thaltuk
5. Ib eseménykezcl6t sz~'reInénk rendelni egy Bul10n \'e~ ellek eseményéhez,
cs:tk annyit kl'U tl'11rlilnk, hogy ler\'ez6 nélelbcn duplán kanintunk a kh"im \·c7.ér-
J6re. Mindazon.1lt:ll n esemffiykezel6t úgy is I~rehozhatjuk. 1K>gy a forr.Wtód
ablak~n.~k tete;L11 talilh~t6 ket 1enyD6 lisCib61 \':\laSZlJUk ki ~ rnegfelc16 wd:>es
vezéli6t és esemén}t.
6. A felhaS'ln.i16 által bein ér!l:ket. II T<>xt tulajOOns:'íg tárolp, AI. ASI'.:"<ET weboldalak
forr:iskM részében a köv{,tkez6k<1>Pcn hj\~~tkozha.tunk erre a tulajdonságr~
7\ox' Box ID. '!'ext
Gyakorlatok
I. Ebb,...., .. Ittktbm Utluuuk. holl)".n Icl~ .. \-;su,,] Web Ik\~ elk~lmi
egy ASPSf:.T ",ebokbll, :amclren turom ~-egmel6, egy gomb és ~'SY cimke
uI11h.1t6. Ezzel a tudáss;1l fcl\erteZ\e k~asünk olpn A$P.t\"ET ok\ak. 'l.I"d)' ~
n..... 'c b al életkor:!. mf'8'I~'" km a felh;4!;zn,ilóI -'l,Ul.m II felha5zruló ll1eR3'1t;\
"'ZCh1 n adatokat. és az elkUld6 gombrJ kallimQu.:u: ASP,NIc, 0Id11 ,elcnl!..cn
meg egy üzenetet. amelynek a I:In:l101.:I II fclhaSln:í16 élClkoo161 mggl
!Orre II ",,'cbold:ilra két TexlBox , <'/ff Bunon és egy Lahel ,'C~érl6t kell hd}'e7.·
nilnk A TextBm: vettrlők ro rubfdoru;ig;it ~Ilil ..... k n_re (név), illel\'e ~g .. -rt'
(életkor). a Buuon \'czér1<.'5 Text- tubjdon.s;lPI' , .. ,k lfe-re (Kanmtsoo id,m. II
Label ",:lt06 I D ru"'jdon:;;ig1it p«hg re ... l ts-ra (nC,'(lm,~n}'). A címke ~"'t
tubtdons;lganak eredet, nt"k':'1 ne felqlsUk ellOrű/ru, 12 után honunk l(ve egr
~rk.. ze161 :;II somb C11, ~ ~ythez_ EmJtkeUllnk '"IS.'IO. cl. 1>0(0
ehhez.-lég dupl:i.n k:nuncrnunk .. gonJbnl .. leI'\'cZ15ben
tla ezzel rncgv;ag)'unk, meg keU ímunk a el lek esernénykezd6 kódj;ll. amd)-
meglwUrozza, milren illene! ,elenjen rtq:u: eg}'e$ ~ktkorokt61 filgg&-n
En~k II kód .. Igy fesl..;

~t IlIe.'l'ext ~ 21 til ....


ruul".'I'ext • namr.'I'<I><t , . Y"" Ir .. I youn<,laterl"
tn~ If

H Ig".'I'Ht >_ 21 O\NO Ig •• ~' ~ 40 th.

",,,, relultl.'l'ext • _.""xl , ". you ..... In adulL'

1~ Ig ... Text ~. ~O tban


ro ult.I.Text • _.-..x, , you Ir. OVllr the iUl '
I:r :t

lb ~nuk 3 r~i kódol a Button \"e~6iCi C lek aemmykelel6jébt-, IDC'n!)Ük


u ASP.NEl oldalt. b próMl)Uk ki a bOngtszónkb..ll
2. GpkorollUk II Visual \\eb [lco.-eioper hawúLaw'I, {os csinosí!5Unk az tof.lbt,n
II It<;k(:ben <:Ik('$~ílet.l Fi nane illell eu lat, 'r . .upx weboldal felhas.znJlói
fclOletétl f:rdcrne:s lehet példiul sz<:1>!> lX:1l1tipus.s:rl mellJ"leníteni a o.z6wgmezCik
feli,..~t1t. n/h-egrt adni u oldal [t1l~h<:~. lIrnely elmilgy:amzz:r. II pl:nZOgyi
wmológtp ctl,"!, ts igy tov1bb.
5. ÓRA

A Visual Basic változói és


műveletei

• "rogl":lmoclsi nyelvek
• A ,'jitozók !s be-.·eZC1~k
• f'.nékelr; honárendelé<oe dllorokhoz
• Az adattípusok & ;clenl~k
• A \'1SU31 Basic mú,'('ielCl 6 h:uvúl:lluk
• A tipusokrJi mn.lkoW sub1lp:.k

Ahogy kor1bh:1n emlilelluk, n ASP,"ET wcboldabk kl:t rblb61 ~lIn"k egy HTMl
réo;zl:>Ől. amely a IITMl kódol b J "'ebes vezér16ket tartalnuzu. illetve egy forr:1<kOd
~. ~melyben az ASP,r\ET 01.1.:11 kiszolgjlóoldali fom1sk6dja I;Ilálhal6. A VisU31
Wd, 1)C\'(:loperben ez utóbbll kl:l progl1lmo~si nydve1l IrhJlruk meg, az ~1ff,k II
\'uual Ibsoc. II mhik II \!SUal cr /amelyre g}~kr.m cs:Ik cr nb'en hi"~lkozn.lk),
A kezd('! rrogrnmoz6k .tll~lihan jóval könnyebhnek ulllilk a V~ual l!..Isic haszn.tIJU1,
minI ~ c.~, főleg 3z61, men ~ ",sual BaSIC n~'dvtana él; srerkewd johban hasonlíu-
nak II mlndennal)1 angolrJ A kÖllyvben t>\rgy:oll ASP,NIT webold;olak fotr.isklxtj:.íl ettrt
mindig \,sual Basic nY"'k~ f"81uk ,...,.,giml.

lb nu IS újon<; fejles:n6k \ag)'l.lI\k, a 2. ts"


f,*,.e1hm Utoo pékbk6dok.:1.I dég nOg·
geszt6nc.k ublhanuk. de lll" a~junk ebben ts a kö'.-t1kezl'l k(1 leck&m abpn~.an
mt·g .... merjilk ~ \isua) Basic nydvel. Mire ennek a I~rom órinak a 'I'g(lre I'nlnk,
nem es:.k ~ kor1bbi leck;;k kódjai v.tlnak viUgos.sl ~zjmunkrn, h.:mcm arr.l is kl'pesek
leszünk, hogy nú nl:lsunk írjunk ha.'lQfll6 k6doll:al

~ a '-Oiwl Ba5ic for- .1'ET ha.~Lllili;on..ur v:lIn 1.:ipas2!13brunk. el{-g, 1\3 álLlpozzuk
II ~ km"t.1kez6ldrom f,*nttl, mm e~ek leg>nlcibb UQkhOZ $2lÓIn.,k, akIk kotlilQ-
LOlI rrolIr:mx>ZÓi. Iúnl'rTCl renddkc:mek. I la "zonb.ln eddig o;;Ik ~ n"""t BaSIC 6,0.,-al
vagy II Vu..Xripuct (a \1sual B:lljicnek " ,NET kCre!rcnd..:C( beveZt.11'..c clOni vaIIO/:aul-
''al) dotgollunk. j:tvaooh ezt J lúrom 6111 is figydemmelldsérru, 1TN.'1I J nyel\ n <.mlile\t
v.1lto:euokhoz kt-pe!t jelent&! ,'altoz:1sokoo. ment k~1. núnd a nyrt\'ur'll. mind
II nyd>i dcmek ;"1enié5ét ,Lletően

A programozási nyelvek célja


A huszadik n.<1ud el5l'i mmil6gl'pe1l azu1 II céllallCf\'cztt'k, hogy képe1ek legyenek
oI)'an nulmulikai ~núLl.Klbl ,~jl.:rni, anulyt"Ot'ket addl~:iZ emlx'mek kellett
eh·tganie A ~núl6gép d6nre:lZ \"Olt, hogy 8)urobban tudoI;t Uoimolni. a nap
huszonn('g}- 6r:ij;ilxm munk.ira lt-hetClt fogni. b nem Iu~zon (I*ld.iul an\lkor k&
Wmo! kelleu ki''()flfll egym.:1.sb6l. nem fdejl<_"Ilc ellO\lbbvinni II mcgfe~16 <'néket _
auli olpn hib:!.
~mil mi, emberek, mlndn}-jlan elkövetOnk !<'glII.ihb eay~~er)_

Az akkori - ok lermés~"'-~ a m:d - wnút6gqleket úgy ~ 1"I"'It'H. hogy ula$rltisoll


~Ul fop.lPk. és ezeket ab!;>;lJ\ a sorrcrxt:.cn ~JUlk '~. ahog)' megkapták 6kCl_
Ez iddok'!ói leW a szimil6g0..'pd oI)'an fdaWtok meg"U.i.s;;ra. amelyeket 1'8)~
lépések $Of".lra lel~ bonunl. A rugy ~mOIi ö:ssreadi~ p&1iul fcU)()!ul",lÓ ug). hogy
ek:'iSZÖIO lIZ eayesek1.1:.djuk &sze, arun a tízcs,c,kct Sl:b .. núndig 100-.ib/llKh'a egy mmje-
g)""''' kÖ\etkez6 os:clopnak, lu .wIkséges.

A wmil.6gép ugyarukkor csak úgy képes megoldani egy feladal"t.l", n~k nclu
a \-tgrelu.pntb Ilpés.ek ~UL GondoIl"nk ug)' a Wrníl~. mint "In' kJ,-~
engedO:ImeOI: g)~, ak, CSólk eg)"liOZCfÜ szaV-.Akal és UUSí1J5ok:al kCpc$ nocgCrtenr. él;
milxbg CAk azt csinálj:!, "rruc morxbnak ndu, ILI mondjuk azt ~.,.,k. hogy
a g)"t._k lel"eklkljön aludni. eI&ZÖr ,,=
kell "1"-~lIanunk. hog)' men;.,n a hoil6.szoh.ijiba.
Jmi 'i:szorll v"t667Jnalcg nl igényli, hogy d6bb JZ! mondjuk neki, hogy Induljon cl
a lépcs(5 f~ Ez nUn uUsi1.hokat kell adnunk """k,. I}()g)-Iq:lien fel az cl561~okr~,
5. ÓfI • A visual Baaic WItaz6i" l1"IINeWi J 101

majd a rrnsodlkr:l.. 6; így ~bb. :lztjJl aml. nogy menjen \.('gig II folyosón II szob.1jjhoz.
kö~t'lkez6It:péskl:nL nyissa ki az ajtót. m::Ijd I~ tx, II szobába, fd<üdjön le az ~gyra, él.
vtgtll aludjon el.

A gyerekekel csak oIY'1n "gyszer<l S2:1\'lI.kkaJ k~rhetjiik


vala.mre. amelyeket megertenek
Ha 321 mondjuk !*Idiul. hogy ",M~hemná gyiimöle-;e. 6hajom n, hogy nyugovóra
táj". a gyC"l"C'k v.. ~nűleg egy kukkOl: ~ M maid belöJe. A Sl'Jrnítóg.:pnek adott
parancooknak ugyanígy meg ken felelniük eg)· adott nyel\"tannak 6; szerl<eZetnek

A számítógépek csak profln.mozási ")'l'Ít~" adott p-.lrancsok:'L ~rten<:k meg.


A progr:unoÚ.'ii nyel\" olyan nyelv, amelynek pontos:on megha~rozQu nyelvtan.1
(szintaxisa) 6 ielenté:se (szemantik~j:l) '·an.

StlmGllan progranlOUÍsi nyelv léte;dk, <k az ASI'.)\'lo' "·eboldalak kb7ité\Ckor


oak .KET-megfelek'! nyelvet hasznJlhatunk. amilyen II \'isll~1 BasIC vagy ~ c-.

Sok programolási nY9IV megfelel a .NEl köwtalményaM, például a JScnpt.NEl,


a COBOl.NEl, a VISual C+ +, és így tavább. Al. ASP.NEl oldalakat IIlOIlbltl
~inki\bb Visual BIISi<: .NEl vagy CI nye~n frjál; meg, és a VISUal Web
Oeveloper is csak ezt a Ut nyelvet támogatja (amelyek kW elfYSZ8rTll csat
az egyiket hasmátlil~ukt.

A programozási nyelvek általános szolgáltBtásai


Rengeteg progmmol.ásl nyelv létezik, de \":lJln:.lk bizonyos k~gek, amelyek
miTKk'gyikben felbukkannak. JIrenek pl'1d1ul a következők:

• Az mlt./oM. üfcig/e"cs ráro/iislh1ak ~- A \~sual &sicbcn az aoolokal


l'Úlloz6ilbml tárolh:l.ljuk. A v:íltoz6kkal a rejez,"'! kÖH"'!kew, l~jlloz6il b"t.~'Zcl&
él" /uwmálata dmü ré:;zében foglalkozunk.
• "~'<llrozókJ)(m lároll adalokt:m z.?srr-"ujlllt.l Ió miitddek Iwlmuzánuk
biztt)Sil~ - Az egyik ilyen nnlvelet az Ö5szeadás (mü""lt1i iele a +), amely
két \áltozó énékét &...lI<gLi. A V~ual Basiroen dérhcl/l m!l"vel~"'!ekr61 ~ fejeztet
ti IíSlltll Basic mii.cll'lci dmú resz&n ~hlnk
• KrlI(inbózó •.V!Zérl1Jsi v:crllezdck. amd)'ck W8(tségbd tlld/lo.z6k ~nf!kér(i/
!liF" ,lUis-más lIIasíl<iPokal IwJlhalunk l'i'gre - {\ Visual lb.sic vezi.-rlbi
szerkezet:eit II kÖ\"CIkel<'! f.ie~etbcn i5menetJük
• ilfonruk6d Iljrahas:zltosilha/6 "R)'Sl'gckre bol1lástinak /clJCIós<''ge- A \"lswl
B:.s.icben a k6dok elpr.i:;ok", (5zubrotinok",) b fiiggvényekre bontl\.ólt6k
(Jásd a k6\'t'lkem fejezetet).

Ebben II leckében aZ! nézzük meg. hogya fenti !ilulánC)S programnyelv; szolgiltal!isok
közül a V"l5ual Basic hogyan V"~lósílj:l meg az els6 kt:u6t
Változók bevOlBtÓSO és hasmálata
A ,vj/lo%Ócgy ol~an hdy::l $zámít~ n-...mÖrdj;ilXIn, ahol j,mene1!I"8 v:.lanlllyen
informlci6(. peldJul egy wmot
'''SY egy kal'ljk\(.'I'I;lncoC tjrollutunk

A prtl9ll1fllOzási nyelvekben ft karakt8rlAnc !stnno) karaklelek sorozat" jelenti,


.,.Ob·1 lll: k6zé ánri.. I..ásSlri. fI'I'( ~
"HO! < , wo, dl •

A ,:ihozók IUrom ÖSI.U'Iev6b<'51 :illn,d,;

• t'gy értékb6/' (példJul 5 v:lgy • Holl o, world l • l,


• :I mlt0z6 1Ulf.<ébtíl, ~mdl)"el J ,-áltom értékére h,v,ukozunk. ~
• egy IrpfIJbóI. :Imely ~Z1 ,e17j, hogy d \';\ltozóh1n mil)"al ~ék Urolha,ó,
M Jntl!";ler (eg6~ szám) ~dltlipu~ú ~hoz6kln pélll1ul ol),an értékeket
helyezhcnlnk. nunl;LZ • \'::Ig)'::I H'-', mig .. !'Itt ing tipusú \-~ltoz6kb:l oIp.n
(:nékek k.;,rulhemck, n,inl:l "r ,110, W'O.-ldl· .... g)" d "Ji · ..In lll .. t ..d",

Mivel_ változá tipusa azt haürozze meg. hogv milyen Idetokat ~oIIatlri;
• változóban, I tlpusra alllI;pus ~III'I is SlOkt.k hMItkomI.

A változ6kat e!képzclhetfUk úgy. nnnt adol\ tipusú dobozok:u. amet)ti:be a<kltl ,Ipusú
doIgok.1t tehetünk Minden do/x)U\;lk ';1n egy neve. amelye! mi adunk neki. ~ amdlyel
Im-atkodt:llunk:l bmne UroIt doIogr;a. ~ ') I ibrin példiul egr a~ (élm(lr') rJe\-.)'
dotxm bth:nunk, amely t.-gt.'5Z !ól.amok tJro!;is;\rn k~. t~h;.t o/y.ln 61&ch't tehe!Onk
!>de. mint a 2-1, a 97 ''''gy a -3829 29-1, ''''gy bjmlilycn nus &vény<"S cgé:sz szlm,

-t5 Il'
- ._-
._-
--- --- --- ._-
5.1."
JI nill\lZll 1'ID,.I(I.m, nhu1 rlJdlOll doboz, amd)'adcll "p",h; ~ mti ",roJti'
5. " • AV-..I BMiC .6Ibái" rnOIIIIICII , 1011

&tékek hozzárendelése Yá/tozókhoz


A v~ho;ú>k lIt'\'e k :odaniflUS'" .1Nn ...ó<lad/lwt6(~ngoIul Immlltabli'), vagyIS mlU~n
" lIt'\'d es" lipust rneg<ldtuk.:o progr:l.m ''''-gn:IJ;I~;i.)a köw..n ezek.,.., nem ,jl!=I-
h.:imnk, A ,,:1ltozó ~ntke ~zonoon mó<kJ&ilhllló (mllwb/el, tChal az &téket :o progl".lm
futjSll közben IArmikor megclllOltalhatJuk.

A ...1Itol.6k tntk~nek módosit1s:\t m<'l«ldó IlUlSf/t/$t)/«)/1 k<.~Zlf,l ...égezhcljök CI


Al. bt.'I«lddJ ~n egy &teke'! renddünk ~ ....dto7i>hOl n mÚ"eleti jellel." kÖ\'~1k,n6
forrn:'ilXln

fu. - ~ jelet (Ill htéUdb ~.IA V4u.18asic htéatM IfIIiv8efIJl


cfmü rHZben tiro'faljl.t.

Változó bevezetése
Ahhoz. hogy cgy ,'11tomt haszn:1lhaMunk. cl66zÖI" be kell "czctnunk (tlddmiillumll
kelll UI" \ 'iMl"J BaSIC Oi., utasilas.inak !lCg~g<."cI, A valtoWk bcvezelbekor meg
kell adnunk mmd 3 d.ltoW ne"éI. 111100 annak :odatlipusoit. é$ rneg<ldh:ltunk mndra
qn' Mckct is Ahhoz ptldíul. hogy Iélrehouunk qn' ag. nenl "áltoWl. :omd)"ben
lnteq"r mHeket t;irolh:lttunk. az "J:iblli ot. Uta~~ kdJ hltsmálnunk·
'.lt. _ •• Int_r

A Dl., U135il25 ~Jtal~ll()63bb form:i.ban 19)' f~

A, "Q utaSiWst *,lIct~ is megnézzük ti Dl", u/{<fjlflscimíi részben. dc cI&zOr

n.. m ~n . hJ hS.l.t;iuuk " dltozók cln<:n:lé .......... \'<)ll~tkoZO ~z.~MI}'ok3', ,lle,\'e meg'>-
merjük ~Z el&h<.16 v1ltoz6típusokat.

A változók elnevezésének szebályei


M,nd..-n progr~mozh, nyeh-nck llleg\ö1nruk " IIl;jR'l Sz::Ibálpt:o ,-:ihozók "'~'e~
,·on..:nkoz6;on, A \'is<uJ Ba:lK'ben 3 1":l,ltuZÓlX'\d: beuhel "~8Y "bhuU5Jc11e1 kC'z<.W-
hetnek, óund)"et nul1~ '""g),több ~Láhú~. belú ,.~8Y )um kö......t1I1'\,
110 , I. rkz· lSrnIrtIdk IlASP.NEHeI

A Visual Basicben a v;íItQZÓnevek hossza agy karaktert61 16 383 karakteng


tarjelllet. A váltOlÓneVekben a kis· és nagybetúk különbsége nem Slim1t. al1Íft
az A\le név egyenártékii az AGE. Il ll\le. III liGe stb. nevekkel.

· ".
• measal/e2


xyz12311bc
txtPaeooword

Ha egy vá/toní neve iIIihúzlrsjellel kazd6dik. I8ga1jbb egy másik karaktemek mu~1Jj
k~nie. vlIIJVis egy változó nem kaphatja puszlán II _ nevet.

Mw 1~l>';unk néhány ~robl)1c1ell viihoz6nC\'CI:

• 3A\le _ Ez ntrl ~""'en}1e1en név, men 3 dltoúmevek nem kezd6dhClnek


~mmal
• _ -l2. azért ffi'én}1elen n{..... mert lu II \':\lIoző nLOVe aláhú7..:1sl"IId kezdődik.
legalább egy mhik br:lkternek kell kön'!ni...
• 234 _ Ez az("f\ érvén}1c1en név, men II v:llto1.6 neve nem kezdődhet ~clmmal.

Alnikor nevel adunk egy v~l!oz6nak. fonlOS, hogy 0I 1":1n nevel dl=unk. amel} utal
a változóban liroland6 adatra. Ha egy v:\.ltoz6b'dn például kél szám SWI7.1t:'it s1.eretnblk
rr13jd Wolni. ;tdjuk neki ;( p r oduct (sron.1U ""gy \"Jlamil)'ef1 nlil; beszédc5 1"IC\'ct,
ne pedig otP.I, mint az" vagy II valtozo3.

A változók adattfpusai
EmlékezzÜnk 1Ii.ssz:l, hog) II v~llozó adaUfpllsa hat:\.rozza n>eg. mil)'en értéket tároUu-
tunk II ,·1!toz6ban. lia egy v:\.llOw pékL1u! Integer típus([. Cl;;lk (pozitív vag)' neg:II;II)
L-gész sz:Imoltat helyezhetünk bele.

Ha m::ír dolgoztunk az ASI'.Nl:T el6djéve!,:lZ ASP·ve!, valószínűleg szereztünk némi


ta~latOl. 3 VlIScript h.aszn:\.bt.iban. amely a \rlSUal Basic 6.0 icbulitou \1illOZata.
(A \Ilsual Basicnek ez a \1il!Ol:at:l. m~g a MJcrosoft .NET pI~tfonnla d6l11 id6b6l
szátm..azik.) A VBScriptben a \':lltozók l!.J'(!1Jgé!J tfpll5OSlJk. A g)'erlgt-ntípusos ('':lgy la~n
lípuoos) >.'áltoz6k ol}"dn >.'állowk. ~melyeket az admípus kife;ezeU megad.i~ n"'kül
,·...zetonk be. '"Jgy~ ~ lipu5ukal a hozdjuk rendek érték hat.1rou.a meg. A VlIScriptht."fl
péld:íul írltalunk egy ilyen kódo(,

l: DiO! "
2: " _ "Hello. worldt -
3: x • 4
5, tlrI • A V..I BIli!: ~ @UrIM " ~ , 111

F1g)'cl,uk meg. h<:>g)' on l -mn ,zcrep16 Di .. ula!>ll.l.t:a:lln nem adlunk meg IÍpu~
(ngYI$ nem ezt íMUk Di!l. It ou Stdno)· A~ ll; típu$! dlfumikus::an ,~ltozik. ;~z... nnl,
h08Y mily..., M<!-ka «-"fl<Id(]nk IlQw. ezért amikor II 2, 'I<lrl>an a • Hello, wl'1<1!·
kan,kler!oil\\.' ~nHet ~diuk n<.'kl. ~l" lipusa 5trln\ll~l, A.~ som1n nonb.m al ll;

~ 4 én~kel kapp, ~mi C!IY egesz 'um, IdUl Innen kezd.'e ~z" már a~ Intequ
lipUS');iI tlROl,k

It. 8),~'flgt'n tiru-'~ ellrrdl:<'1 a sztgonim/lipflJlO6l\':Ig) er6sen lÍpIlSOl'Il \'iltmók


if'Ient,k It. !OZ/goN;on lÍpu3UOo nyd\'ddlnl mUllkn \':tlI<.>lÓl ug)' keD tx:-."ezetnnnk. hogy
megadtuk az adauípu..at I!o. k nuuUn a lÍpus! megh.. u~uk. kalrób.g n alU'l.l.k rnegf.,..
\eI6 énekeJuot LirolhalfUk a~ adou \jltozótJan.

A gyengén tlpusos nyelvekben bármilyen viltlll6hoZ bármilyen 'Réket rendelItetUnk.


s-d Ih C$ak III 6rt6k htlhm meg. hogy milyer1 tlpusú I ~. A SZJgOfúsn bpusos
~ nyt/veü)en I v6ttoz6k \ipudt kileJ&lllttarl mt9 kell ....... és csak III Idon tipusnak
1T.eofvIe16 WtéblICllltlnt", vMtGlÓllll

\';iJt,nón:lk meg kdl :adnunk


It. \t5Wl1:bsi<; «zigorúan IÍJllI'o<.& n)'....·• ettrt minden
on adampu'!;u, ~ a tipus korLotuzu. hog)' milyen én~keket rendelhetunk a ,'iJI~
M,v'l'i nuodm adauipus eI<"íre nqh.aUrOlolt én;;kIllJlOOünn)'lIl rtndclkezol<, kUOOI()S.-.i,
gU. hog)' megfelelő t,PU$! ",Ib~unk a ,-:ihoWinkruk A ,I f",",z.,d:.:-n p<:-kbul eg}' oI)'~n
ASI' NEl' w,,"oldall k<!szJIClIOnk. amely egy jt.'1z:Uoghitd 1\óI\'1 törle$Zlór6uet~'1 v.Jmi\(~ta
ki. és a köOl'lE:S ,.zamithok m.·dmc"l}'lit t~roI6 vjkoz6k.u Double tipusúk~"flI ,·~zettilk be,
ami egy oIy.tn 5Zámlif'U". amely ti~'ekkell:irol.'oZán'l(.>k.1I H~ ~ SZilm upusÚ
d~otóIut lusználtunk ,ulru, .a sumítis nem:>don ",lIllI pontOS e ... dn""')l, nlt"l\
tOnekkd tIoIgon.unk.

A SZJnuLisban felha"ntill IulNtubtrt"k - 0.065. ~ml a 6.~ kam:nlábnak fdd meg


_ pékblll nem fejezhet6 ki e~ sunutlllL A llOWi k-gkw.ekbh eo.'i egés7. s7.:1mok
~ O b az I. M nyilv:1.waló:an ~'ik sem adott "0111:1 hell'eo; ~-redményt, I':l~ft f,lIlI'>,\
a megf... ld6 admípus kl,jla~1$:1 Általll>O<Sság!»n tehlt a "11tozók"'l '" kÖ"dkcz6
fOf1T\;lbcon kelJ tx:-.·ezetnilnk

Eg6sz tfpusok
A7. egesz számok pűZlI;'ak b nl:gati,,,k ls ,~hetnek A .'101, a 76. II -3432 "" II 23-1 12,.
multi c"vt:n}e5 egész szamok, mo.g a 12.-'\ '''8)' a -.~.14159 nem nok

luromfde amdyeknek én~klaTtOm;1np különUö:l:6, A k1®·~kl"~h·


eg.!Sit 1Ípu:;ldcZlk.
!:>;On 1~ ep tipuu~ Int _ r. amely;öl -2 l,+,' ·III.~ ó-NHól2 147 '\SJ 6-f~-ig LeI'Jt--d6
t:lftominyba ~ értékeket k~ úrolni. Integ<tt tipusU dltm'ilt a kÖ\1:tkezi\lú:ppen
hovl:lrunk létre
112 1L. . . lInWbdk II ASP.HET""

II~ IUgyobh egész WIllOkai ktll tlrolnllnk. a LClr>g adanipu.o;t h~~znJlI1óUrl1k, amelynek
...,i/,ku"omJnya J) 223 .n2 OMl ~ ns 808-1619 UJ .F2 036 tI~ 7'5 807-ig lcr;cd
LClr>g tipus; \·.:l.hozó! II k .... ·..u.,~ forndban \C1:edJCI"Ünk be:

Amennyiben ..okkal ki$C:bl) es';.;.z .,rt.,kek tlmUsi", VOln szilkség(lnk. ~ Short !ipu>!
ct'lszcl"ll d.bS2;1.JInunk. amely II -.U 768 eJ ~2 71)7 kÖZé es6 ~'g{"Sz $Urnak fOjpdis.:l. .....
k~ A ;hol"t a<bnipuMl vJltOzók be>..,ze1bém'k módja az aLihi,.

Az <.'gbz tipusokoon nem tlmlh:Hunk tört.o;.zamobl, pOOig gyak",n ,'~n o;z(l~ lÖftekkel
\~ mllv.,letekre. A \ 1$0:11 Bal.icben Cl&! 1U.'t" ~ SZilmfl{>llsoWllS 1alalunk..

A lICIIIl egi&l ~ O/VIn edattipusok. .nelyek adon admú ~


kliplsut táfon, cit a IIl8desvessz6 (blIdtSPOnt) helye WItolflIthatéJ bernik. hogy
növaljüt.: a 1örtréSl. ponIosúg6t.

Az el~ nem egéu Wl1lhpU~ ~ sir>gle_ amelynek éntk\:;lnomjn~.". ~ oegali .. én':kek


esctd)en -.t'i02:S235E+~61 -I iOl298f-i5--.g. mig a pozIIi .. sz:lmokru.l 1.401 ~E-45--
161.' 102:S23SE+j8.ig Icr;cd.

A tudom6nyos jIIÖIHben III E-I kiMtt6 mm a mm~, imi Bszánban


ta(6ltlato Ii~de$jegyek mennylSé'ldt adj. meg. A 6.45E +BPéI~ &gy8l1értékú
.6.45- 10" 8·cal VIgY 645 OOO OOO-rtl, mig I 6.45E...tJ jelefdSl 6.45 ' 10" 8 vegy
0,0000000645 - 'iIgyIS' 3_4028235E+38rmgyon nagy Wml

.ngle!ipu5Ú dltow. 3 kÖ\'~1kezó fomúban hozharunk 1<.1re,


os... '~lt, 'cWc ... ·Ingl.

En~ pOlllosabb nem egfQ ~7.:lmtipu~ II Double, ~1l~ly nagyobb S7.áffi(t-


kat ls k~ t;irolni. ncgaU\' énC:kck esetén - 1,7<)71.:1J3 1341!6231570E+'I(l6-t61
-4.~'564,"*12~1E-.~24"g. pozití.. &!i/,kcl!. ~én pedig
4.9-t()(t;6.IS8-II246S+lE-.'2Hól 1.79769.\1.\4862.31 'POE" 308-ig.
A 00 jl;ol.lipu5Ú ~Ilmók I:ot:>.~ ig)' fot

A h.lnnadik és egyben ulolsó nem ~ mmlÍpus a Deci . . l, anICI)" ~ tiz halván)':1I


szenm Itli."mezi II tOttrészt A DeC"t-l ént-kek O k 28 kÖZÖltlt,~'CI t:malJl13Z-
lutn:lk. S"ull~ ti~ esetcr. 3 legnagyobb wmo amil egy l> '1 . . 1 Iípusú \'álwzó
5. tn • AV...I a.ie .; I,..,.. 411 ~ 1113
tlrolni ktpes, a "9 228 162 51426-1 .H7 593 5'1:1950 .1.i5 (a k-gklSebb pec.hg
a-79 226 162 514 26--1.137 593 '>43 950 .\3<;). A 1)00- i .... l vlhoWk legfeljebb 1JIlu~
Je8yt>61 lllh:unak. ez;!":t legnJS)'obb, 28 tizedesjeg)'et Clrulmaro ~cim .• n>ely
tlrolhaló bennilk. ;I 7,92281625H26H37S93543950.H5.lk<:imal (;PU5Ú v~ho7.6t
IS)' hozhatunk ll'tre'

A Ioglk:u '''SY BooIe-(éle \'~ltoWk oIy.m tlrolók, .melyek ké'! ~ék '1Olkét "ehetlk fel,
ez II két érték a 'l'ru .. (ig.:I.Z) ~ II Fal.,' (hamil;) I.ogJbi v;lltom" BocI ... n a<bUlpl.ls"o;aJ
h.. ~1ru~Julunk meg, nqp..'dig az "l:1!.>bi fom~b\ln:

A k:traktcrlínc br:lkten:k 50r0ZaCl. Az "ASP.NET I. hm!· pHcUu[ '10' 15 brakterbl'il


;1,[16 k~raklerUnc, amelynek ds6 karaktere az,.,. a mblxhk n S. k igy u:.-.-;lJ)!).~.en
• litenötödlk l br-Jktcrig 113 otpn váltoZÓI. szen.1nfnk létreho1.ni. amely képe.-s
ka .... klerI1nc é"ékek tároJh.ir.. , a St r I ns. tipUSI haswlluljuk. St dns. típu$U váltOZÓI
Igy vezl1helunk be:
D v4Uoz""'..v. al Strlf14

lb .7.1 \l.ere1nénk, hogy elJ)' ,':lltozÓ cUmmok'l t.:irol)Oll, Dat" a<buipuSlik"m


ve1.c.'I5Ük be:

A DAt .. lipusú dJtoz6k 0001 j::Inu~r l. qfél é!l999C). d«emlx-r 31. du. 11:59:5'> kÖZÓll1
Id6ponlok t.:irotas1rJ 1I11almaiS:ilk

/I Visual &sícben t::l1~lunk egy mindenre alkahms ad:lllipuSl ls, an>elyhez /NirmU)'/m
énéket rendelhetilnk Ez az .bptipu~:lz Object. amely rendkivOll\lplmas lellllbZCIU.
ml"d b:irnulYeTl \;PUW v;lItOZÓI kq,o WroInl Ahogy ~kI:lul ~Z alábbi kód mUt~I",.
egy object tipllSÚ \';llto~ hoWirendelhetilnk '1O·larakterUnca:. maid egy ~... ~
Sllmoc, '-,;gul pedig eg)' nem q&z $WnOI: IS'
Dl .. boonaJ aB Obj " ct
"J h un "

3,l Cl S9

Rugalmas.;.;1ga cllentre jobb, ha csak ritkln haszn11unk Object tipU5Ú v:ihorolm


(,-agy soll>l ). A konkrkabb I nteger , St r i nq vagy Double típus cll5nye, hogy ha
ncm mt'gfddó ~n~ket pr6Wlunk rendelni egy ilyen v:ihowhoz, hibailzt,nctet kapunk,

A Dim utasftás
Ahogy koribban említettük, II ~ltoz6k3t el6bb be kell vezetnünk, k csak ez ut~n
"ehet jOk őket ha5zn~latba_ A rugonhn tlpUSOl'l programoú,i nyelwkben a v:IJtoz6k
oo'eze\éekor "em csak 3 \rj ]tozó nCVd, hane,n a lípus:it is mcg kell adnunk A Vl~ual
flasicb..n erre a célre szolg:\1 a Di. ulasil~.

Legegyszerubb fomdj.'iban a Dim utaSítás egyszeruen n>egadja a ,"áltow nt"\'t.! és tJpusJt:


Dl .. v"lro~6N"ve u t!p u.

lb hjrom rntege r típusú váltoZÓI szeretnénk létrehozni, haszn:llh:llunk !úrorn ~U6


Diln utaSíús(, ptld:iul igy,

Dim • •1.8 Integer


Dl .. b aM fnt"'Jer
Dim C ... Inteqer

oe haszn:llhatunk <'gy",-len Dim UL:lSiÚSl is, amelyben lIZ egy<'S v:iltoz6k nevé1. (:s
liptJSJl vOiSWkkd v;j]asztjuk el:

Azt is mcg1clIClJilk, hogy csak egyszer adjuk nl<'g II típu.Sl, és ~ .-:íhoz6neveket adlUk
mcs egy vesszókket eldlaszlOl.I lisL'Iban A (<,nl; esetben II Iltirom dltozó tipusa lIZ0tlOlii,
elért így Ili oo-eze\hel.jük awkat;
Difi a. b , c a B l nte \ler

Értékadás változó bevezetésekor


II:!. eddigiekben II Dtm utasít!iSl csak II viltoz6lr: bevezelbL'ft' használtuk, am azonhan
'>éln , hogy fnéket is adjunk egy v~ltoz6n:lk. Ez all jelemetle, hogy ha létre akanunk
hozn; egy a neVU él lnteg-er típw;ú v:iltoz6t, és hozti szerellük volna rcndt:lni a 6
énéltet, az al~bbi kódot kel1r..1t haszrn1lnunk

,
Di", a ". I nteger
""
Ez lökck:te'\CTl rendben v;ln. de eg}' k6d.iort mCgl;lk~l'\dulUnk. lu t>&szC\'onfUk
;I \'111000 I)eo.'e~ését tli ;lll:neltadast. Ehhe~;oz ;lI.:Ibbi fOf1l\ilI kell alkalnuznunk
Ol~ • • ~ lnteger 6

'cm kötclel6 mir l)eo.·o:zctbkorbtékCl ;Idounk eg}' "idtnzl\n;lk. de ~ hellyd \'~ló uka·
...,kor;.kodls érdekoSJen a kön}" sUlTlO'I 1*I<bj:Íb:an czt ~ n~ fOSll'k ~Ikalm;o.zm

A Visual Basic milveletei


,IQ hog)' k'ht.<r: egy ,-:ilt02ónk:. ~mcly ''lIi;lmilyen btcket urol. oonugáboon még 1l<.'fTI Iul
érdckes_JellC"!TlZÓffi :uonb:an .-a13nuJ)·..., művel ...... 'S<!en:tn.:nk • .:gezni ~ .'lltoLÚ\-a1
'~g)' qo.,;rerre I~ is_ It nulem:lUk:iban IS SÚmok;I1 é$ művd"'ekal:d;iJunk a 4, a
'''.'; '-aM)' ~ pi sz:imok, mig a kl~on1s. az Ö56Zead\s, az ~ ';Igy a neg:lU.s (l<lgXI;ts)
mth'elaek_

A hólg}'OIlUnyos nutt.'ffllIukai ma.. eielck többsége a Visual fu~i<:ben il; has<Jnló mO-"e!...'1.
Például ha k~ sz:om(:f1éka ,1IlO1.ó( 001,C SU'll:Ul<."nk ~dnl a \,sual BasKbcn. i' • nnl\'cJe..
,el (ma,·c!("(; jClCO keU hasvdlnunk. ha pedig ~ akartuk szorozni 6k("(. a • m(!\,del<.'t_

'mll..deteknek ( ..... g)- .oper~torokn;ok·) kolönböz6 U\.ZUlyaik '~nnak. amelyek kÖlül


a legfontosabbak a szarntani mll'n::k:tck (antmeuk..:;a; m'I\-eletelr:). az összeh:.o5Of\Iil6
mű.'delek. 3>! 6s1;~:0t5 m(h·detek 6 a~ M&:.d6 m(h·detek. It k<n-Clkező nCg)-'
,,;ub..., czt a ~. mll'n!letoutll)'t mutatjuk be

Számtani mOveletek
,notgy 1<'gg)'lIkr.obb:an h:oSl.ll~btOli suml:lni m(lwlCl a \-'isu;ol Basicben 31. Ö$SleId\s
). a k,VOIÚ5 (-). a non:l5 (o) b;u osztas (I). t:zt:kre a m(l"e!("(ekre hi"óns ""kde-
~1f(''lIg}'1-'i kmmye:ol55 nMlvcletekkém) swlctak hi';I!kOUli. mi,-cl k~ \'1ItUl~Ó·..al
,~znd< műveletet •

.-\hllO>! p&l:iul, hogy ket egt':o.zbtdctl VallOlÓl ~dJ\lnk. ts az 1"!'edm6t)1 q;y "o>!Intm
~ énekű ,'áltorob:an tlroljuk. ~1 312hhi kódot kell megimunk:

•• Int-v"

• "b" . c
iti ~ll ~ b ts 3 _ ~b6I súnnazó btéket fagp kapr". ~mi 35.
115 l r6&I: • 1ImIIUd6I. ASI'.HET.....

A mIlvelet, )1:1 b/n;lris ~ un:ltis ma,·ektk~.,lI hölg)'1:I q}161)..::ZŐS nlÚn:letk~'nt) is alkal·


mazhatÓ. AZ eg)1l'nyezős nnl..-defek <SIk eg)'~'I1en "áltoZÓI 'gé-nyelnek, a mű,'eleI;)clct
egyt('Ilyezős mllveletkl'nt Jlk:llmaZ\öI pl'ldlltl J »liim neg:iliis\t "':''Selhe1Iük el. IV ~1:'IJbI
kód <.>z&I ~Z ft vJhm6hoz a ·35 &lékel .-...'n<lell (",.,gyi! az el6z6 l'rtl'k ellenl<..'Itjl'l)'

lll. a. b.
b • l!

• " Ib •

ln a - eg}1.:n}·ez& milvelCI. amelynek tényez6re a b-.c kifejezés &ll'ke. es u ez lhal


visszaadon &tek ellent~'Itjét képezl:Ük

Megfigyehtjiik, hallV I mú'leletlk SOOfIndjét dr6jeletkel szab6lyozhlt1uk.


A;z eI6bb IQ"( it"*- leli rnúveletet:

• lb'

• ·b.

akor az .. 61Mb 5 lesz, mert a ne06I'S eIS6bbfflOdii múvelet, mlllt IZ 6uzudás,


így amikor a program kiértékeli l -b • C kifejeztSI, al6SlÖr I b IlIent.n", ká!l-ri. Ib
art az flt'bt adja majd I e-haz. Em! Sl8mbeI\. Ib.e) forrn,"ioI. PfOQrtm
eI6UOr Ölszaadjl • b ts I énéUt," cnk II után veszi I kilejazft ellenteltjht.
A VISUII BIlle mmm mú'llltttlnet eII6bInégi Sl3bMVai ~ • mBte-
matikhllblmazottekbl. Ha t.nM. mWtIetelr. _lIIiilIeIr. ~
VIn ~ tgYSZeriien lOQjI.t 6SSl'I áoójelekkel az lI6Sl& kI6rtéIr.IIInd6
kiflje+lkll

A mllvelec mindig nem egész számé1t(:kCl ad vissza, nWg akkor ls. Illi JZ O:5Z1hnak
nlflO' maradl-ka A 412 OIims eredmény" lel}jl 2. O lesz, nem J"'tlis a 2 egész énék
Természec<.>sen JZ O!óZIlslchct mandékos is, a /4 ml1velec eredlnl:nye pl'ldiul
o. 7~ lesz.

AZ /'JI55zclu.sonlitÓ nlllvelelek o/y2n kl-ll('r1}-ezős mO'"eletek, amelyek kl'! v;ihoz6


<:néh't h2..onlilJlk OSStt- A hat ÖMZehasonJiIó mll\elecec n 5.1. lablJal 5OrOIi'l fel.
Ezek a mŰ'"elelek mindig logikai - "!'TUI vagy Falu - énéh1 adn~k \'I."lJ. a kL'I
vlhoro össU"h~$OIlliwsJ.nak erednoénr("\61 filgg6cn
5, ln • A VlMII s.ic:;jft,e<.j. nlll1 ....' , 111

1,1, ''01. A 11••..., &DIr "7. _

Al. Jljb!'11 Ula5íl~ klCnckclbc or",,. ~n"dnJ<,nyl ~d;

•••
1,14H9 >.. 2
·.·.b'
c> 'Su,,·
O/21 • '20/~j
, ~. 4

,-'• •.
7 ~ UIO

: r. I 2 I

Az. ÖlJ;sze/1ason1iló rnlivelelebt itaIábaOl YeltfIái amkexetatben ~
IIIUtlyektell kÖYelklZ6IeJ'Z8tben fOgIalOnri; rázkltesebben.

AZ (J$SZrfiTzés wr.'in k{,( kal"'Jklcrljnc l:nl:kll "HloZŐ( fÚl';(lnk Ö5sze. KI'!! kal"'d kt<:rUnc
~.agawj""~.1 el!)' oIy.m ul kal':lkterUncol lupunk, "mel)' nundkl"l kar:lkll:'rI~nc
":ihow lan31rn!it ho«\ou;I, és ~mcl)'ben u d~ kal"'~k,erl.inc;lll elöl, 3 m:hod,k pedig
~fIf\lIk ~ 'égfhez I:I.pad. A lco1'2kter1:mroJcn ~lÓ mlh't'let jele 3 \"o.5U31 &..ic
n)'d-,-ben n ,_

'énünk meg egr rond kódtön:dt:-ket. hogy Ihwk. holJpn múköd,k 32 Ö55~I11(S
m\hdet
O',a f ',TltWoTd ag Std,,~ '1,SP.NE:'I'"
ou. aeoondWord •• String "'"
Oia thlrdÓ<ord . . S1:ri~ ',-t'

o,.. __ ten'" " .. hriDQ'


..... ~_. - iutWonl"' . . . . '~,r-d , ' , , thu-dIIo~d ,
l1B ( l. ráz • lImIIbdIb II ASP.NEr·1aI

A Benten"., d.hozÓ kt"kéűl a végt<n ~z 'ASP . NET i" neat. ' mondatOl. bpjuk.
l'igyeljQk meg, hogy el6sz6r három brakteriánc váltoZÓI. - fU9tWom, eecondWord és
third'flord - hozunk létre, amelyek rnimlegyike egy-e!!)' SZÓI úrola mondatb6!
Ez ul1n bevez<'tjiik a Benten"e (mondat) karaktert"n" változÓI, amelynek az előző
három SZÓI Os."leliJző mondatOl. $leretnénk "nékül ~dni, sroközökkel az egye!; sz:t~ak
között és egy pannal .. mondaI '·égén.

Ennek n>eg'o-":II&iú$áho;r; a" műveleti jelet IIlIszn.iljuk, amell)'el hal karnkterUnCOl


fűz()nk össze , Először 11 fintWord értékd és a ' , k~rnk!('rL1nüJt f(IuOk Ö6S2e.
aml'lynek eK"<Iménye n 'ASP. NET ' ~1r~neti karaklerlánc. A1kn átmClIí'fi, mert en
a karaluerl.1ncot aronru.1 6ssz.efúzzűk 3 ..eondWord éné k6·eI. ami az 'ASP. Nt"l' is'
szÖ\'cget en::drnényelj, ezt pedig ismk megtoldjuk a • " karnklerl~no:al. hogy
megkapruk az 'AS P• Nt"l' i $ • karaklerl"n«X. Ez uÚn kÖ\·'1.kelJ k az össlefilzé.~
a th i r<!Word ,'~ltoZÓ\-a1 (ennek eredrnl:n),e : 'ASP . Nm' l" nHt·), majd:ll'. utolsó
összefilző művelet II '.' ka. raklerljnccal. amc:lynek eredrnén}'e kém me#apjuk
al: 'ASP .NF:T i . neat"' mondaIOl. amelyet végOI hozzárendelünk a aentfOn"",
viltoz6hoz.

Váttozó értékének besz(irása egy katakterláncbe

Soksnlr elálOl'llul, hogy egy karaklerlánc v!lltQXÓ értékét egy mási/( karakterláncba
Sl&I'etr.éok szömi. Tegyük fel például, hogy van egy t I T&tN_ IkeresztNév) r.evii
váltOZÓ!lk, amely a telhasmo\l6 kefesztnevét tárotja, 6$ egy mooldalon oIyllfl iilenetal
szeretoénk megjeleoltllflÍ, amely I 'He Ilo, keteu tn.w · Sl!rvOl/llt írja ki, ahol
I k .. ~ .. utnév e firatName változó él1él\e, vagyis lia a változóban e Sc ,tt név
tallllhat6, il IllIIlIialenített szöveg a 'Hello. s,- ot t ' lesz.
E~szOr hozzunk létre egy karaktarlánc víl!ozót output (kimenet) néven, ametyben
matd I Wgs6, megjeleniteni kívánt karakterláocot térol,... Ehhelaz alábbi kódot
kel írnunk:
Dl .. output ,oa String
>Iltput _ '!fellD , • , fiUtNamo;t
Fontos, hogy kzrevegyii;, hogy 8 fenti két kódsor Wgrahajtása után az output
vlÍltllllÍ il ·Hello. kere9ztnév' értéletlOOlI tartalmazni, ahol a kereutnév
a fi r:&tNanl<' változó !Ináke. Vegyül ésml, hogy oom ezt Ittut:
D1 .. output 88 String
>Iltput 'HeUo , hrstH_'
Ha art Irtuk volna, az output változ6bart pontOSilrt III találnáo:1t:, amit mell&dtunk:
, He II o, f i ~stH...,.,..'. Ha a ti TBtNa"", vllltoló értékét Slsretn9nk beszúrni
az output kMaktertllncba, 8 'H"llo. • lulrakterlMcot a fi .Bt H"' ... én/ikéval
kel össze~ an padig II összefúzd múvelattal végwhetjii el, nem pusztáorl
azzal, hogy egys.zerűen besnír}ul:: I YáltOlÓ nevét a karakletláncba.
s. tn· A ViIUII &.il: .'hup.mO••• [ 119

AVisual Basic értékadó mIlveletoi


A lewcö zéln..ég.,:sebb énékadó m(Jvclet jele az .. jd, ~1l""l1}'el al. (:nl:kad:bt ~ követke16
(Qrrn:lb:.1l irlulfUk fel

P&Liullu az ~ ém'ket ~nblk C'8Y egész \a!lOZón:ok én"kul :Wlli, az ~bhOi kOd"t
kdl 1u,W)jlnunk:

...
Ol.
,
",. lnt e9<

A \'Jhomho z hozzárcndcl! "rt4.\< nem C$lk oI)"1n egys;eenl ének lehe!., nun! az 5, Iwncm
vabml sokbl bonyoluh.abb l~, példaul eg)' k,fejel:és, amel~1:Mm lTl:Í5 műveletek.."! I!I
a!k~lmazunk Teg)'Ük fel p&UuJ. hogy kél: szjmor. ~k ö:sw,:OOtu, b 111 ~
C'R'dménYd SZert'iné'Ilk eg}' \jlto zúba helyezni Ehhez az ili./bi kódot h<l.'<Z!IaJIu!llIk

'M-rc. . . ~ 6n(Okil v&lt :06 Utubods.a


~'t.. .ua, n_rI. !libr. 3 al Integer
n"""r1 • 15
n'lri>oorl .. 20

' A n' <ibe r l 'rI6 a nwaber2


n~-, _r:

A leggyakoribb árt8Ud6 mthaletek rövid for ti'


Gpknll'l d6I'Ofdul, hog)~' \:llto w btt"kl-l: ~n'eICf'I fris.sil<~m nemntnk F.rre
~ kÓ'-etkezó tejezetben konkrtt ptkLilut LS Utunk majd - f:g)'e16re higgplk el, 1'IOg)
~IDI~b:ln 11m '':ln 5zük~gönk, hog}- egy egész ~-jhQZÓ en€ktt eggyel llÖ\'eljök

A v",j"",ilye nIn tegerV"' l to:oc ,'~hoz6n:lk be\'ezetélkor a ,kczd6énéke!. adjuk:


en az én"ket sZ<'f"eU'Ienk k~) növelni, Ehhez azt keIltenniInk, hogy ,,--gy"-'
IlO1.lhdunk II változó pillanatnyi énl!kéhez. és az uj én"k.ct viilSZ:lil'Juk a ,-,iltnzóhJ
I ti ~ val ""li lyenlnteg .. -.Val t.ozo én(:kc tchlU U, :IZ abbbl kód fogja a O én':kCl,
l1<>U;l.;id eg)'''' f ami l ..('{ errom{,ny",.), b al; 1-(.1 v(SSllIirj,a 3 vol ....... ly' r I nteg .. r
Val t, .zo ,'J ltozOba,
,.(~ .. },)'I~1.q lS.)iE" w...u ~,\(lW
••
J ~.\Sotj ''[Olp;)!'-))'" "q..;>zo~ fr" I: dnl'ZSSL. ~(U7W~ uodl'll ~ pll;I.U
'Pl\-;Yjluj> zt: ~
·"'KI.

'19(R",,~ p:;ronJ''' "I »'I,J-,,:n: ~UO-"l1 ~!lw ;yjlujO ' ~9zo~r," V


"<t-9Z0HJM I: dnr1;w1., ~{~ UCKIelIl: pll":UJ
'''!pe z;ltf;''1~1IT 9"OJ l J'A " »"',J.I'jl ll' """'·'llU! "jlU' =. p~'-'J r y" v
',J,., l'1IMDW
..
;:::,;M~....
:.....,:::;'''P;;~••~... ;:;:''.I.....''... ~ 3 h dl 1'1

-1'l1"'WW 9Pf'lI"1.9 11'>1!P'-->9J Ill'lmetj ur:qqwt"'UI8:>[ r: , • ., ~ l3 -(. ') I!!~J PI·\QJ


ue... ~111~1I.fYl''SQ zr .U!otI· l\!!I~"l\,,),""'~ IIJ.'J1I u.:npI31;I.\DW !UI'1U",z~ ""IJ~ VI")
jCl><"> lt'2~I'I\!l 'l~ zr \'-'l[;).\IJoWJ: ' lIrl"~11 sllo'ij3.'DW QI)~.l1"'1li! l)<)I'P!·'IQ.I '1'1Q1IlJIlJoW • V

.. 'JI"'" WI_Ál ,..


• ~10H""H~ ~UI u~lIllw"t ,"" • o.o~ ,,,,,l .. tte1uI=Ál
"
1""'1 VA

'lil'l;>U;>
nOJ1.,....... a..~ulueAl!IDt .. A l: 'I'''''''''''' 1a.Qi8.) - ,,~.\~ UI!UI!,\Bo uEIlOIUOd
llV ':u,ud8n ul:$IOJUOd 1~1 ;,q)U;lpl.lO!O 17'1 PZ",,,IO>.'IQ'I V '1IQ9ZC>Ir~-\ ...... m>ZOJ fY" "
d.l1~_' l'>'Iil'IIiIIJO<lCl! l1li!)p.\U,..... up;;>.kl ~,:,nWQ U plew ''tipr l<ll@l!i)UiI ~lIrnl'1e
/M;>N9Z0J n'" ,. ).l'l'1U'J >11'1-" 1~ .,.tih:_, 'IL1'I'9" IlU:lJ c >t1Z;l,{íJ;,lbw m,-"W'l ~;)UU"
>f 'U~ ~ . W"'I""~"HFA

IPl! .(ll! (. ') 1OI1O>f'1.\j)W W"lI"Ui U.lI!pl.\QJ ~ u-".


OIUlruzo.'I':Ij
''':>8v-s1.\UU;M,U P9>t ~l!~ c 'lol~lU.ll!~ 1:l.'1l;M,U& ·~,.unw!1ZS c l)ilOIZ!<1
SI klPI;l.\J)W 91lC,..JV<) ljlSt"IU,(íJ., :lISI!ij lens!,\ c 'srPf08:xu !o'Oljl:Mf uo,\8"" t;) IOl,\If\'

lo;I,.~lJ;] Q201.Jr.\ OZ"''lII!MóOOI.lU : u;oA! l""· t u '"


p.UI& ,~~\QtI IDu;>rp88rn &I>elq "'UlI!UI!lI!d e flQlInu;lJ e '<)Inllr[ IU.wy
1')(fC;J'!01ll'.\ e '1'f",U!!'ZWI.\ 81p;l'd (t) ~ n 'pc PlI"uii' l • 1 sf'IU s;p:;>I.)J1l1 T1~J c
V<);Q 'zSOII :: ;,lIi1!Ji/ <)zoll'·' c ''1!~Ollml;l r~ c pn.l ~In IU&ISrud ~ JO'I'WY

...l3tfdSV.~ ·.",TOll
s. .. . AIIIIuIIIIM:ic odIlr:iJIi" ~ 1 \2\

A Visual Basic tIpusokra vonatkozó szabályai


Emlékezhetünk Ili. hogy:l. V"1SU:I.l BasK Wgortian IiJlU'O'l nyro". ami an jelenti. hng}'
:I. .... 00.11 &ti..: programokban 1Ylltldt.'n bt:\'eZelet1 \'~ho;Wnak kif~len meg kdl
~dnunk ~ lipw.il 15 Ezen kivul a \·illo1.&hoz rendelhel6 értékek !artOm:lny~1 korl~IOLU
~ \-:.iho~ lipus::a, \"::IEtYi$ ~ Int"l1er lipu$Ö dllolÓll.3k pfkUuJ aak olyan po.tlU\ ,"~gy
nególliv eg~ sZ;!mok.1l adh,uunk érttk01, amel)'~k (körülbelill) ketmilli,lrd ik min~
kélmillClnl közt ('Snek

Mi lórI.:.... tk "U>r\ban akkOf", h:!....gy e-gés.z dhowhoz egy nem egész.zjmot pr6b;l.lunk
rendelni. ,.~gy forom.? ts 1IU.1 helpa, lu eg)' kal":llcIerl:lrlC(ll szereménk egy nem egesz
sum \lPI.OO ";;ih~k en&til :!.dn, ""gy qo' ~ 1ipu5Ú ,-:.i~ egy k:lI'akte-rUnc:
lipu5Úhoz rendelni?

MI\-el ~ '-1SUa1 &sic 5Zigotúan 1ipw06. egy :!.OOtllipu:IWI:l.nOZÓ enéket nem IdlC'l
mam tipusú "JhOlÓlUk értékül adni, ":l.gy~ dvileg ncm lehetséges houJrendclnl
eg)' egész ~mot egy nem cgtsz wm\";;iltozóhoz_ AZ al.ibbi kód mI'g15 lökele!t':'ler'I
működik_

DIli fpva".ble as slnql.


fpVadabl • • 5

Mifn nem ~d ez.1 k(xJ"or hibaClzcllClet? lU! ncm !>Wgtűk meg ~ \isuallbsic tipu.o;okf""J
VOfl:llkozó n.d»I}"::!;l :!.Wl-I. IK>g)· egbz fnékel a<llunk egy nem e p mm típusIÍ
\";;ihoZÖNk?

'kIr;. az ilyen érttklKils utn megengedett, men ,. \'~I


H:.Wc.1 Idubben liptjj(/Iala-
Itftásl \-~Z az c. egész frtéken, &: az ~.~ nem eg6z mékké alakllp. majd tz ullin
rendeli 11OU1,. nem ~ &tékll '\Um\-;\hmólwn-

egy változó v:tgy &ték tipu,>,' cgy


1\ 1,{mslitflWklIt1s al az el(.iris. amelynek ~ somn
m1hik tlpusrn \~IIOzik K~IJé\c llpus5ubklds leliClStgcs: rejletI (impikiI. bel&T1~11) b
nylh (expli<:il, kifejezetl).

keltett IIjJt'stjtalaltfltu ~kkClf töntn,k. am,kO!' ni/lC\ szílluég a progr:amozó bei~~lkQZ:i­


~'" Az oménl UtOl! k6<lreszledJl"ll azen kmllt,.,.". rqlett lIpusatalakithr.l. men az S
egesz énekll6l kOlön progr.!-lTlm-Ói kód ,*lkül lehelell cl61l1iwti az 5. ( nem egt5z
ábrhob$l.
122 1 L,. • IInwUd6IIlASP.NET411

A.NEl FfII'lIwon: SDK cIolument6cl6fl. 'Illett típusitllakflásl ccerClOoHllt


(t6nyszlritis) MVIli.

A 1I)111Ifpo4Milal(Ik{I,is.,z~ szemben meglcÖ\'Cleli. hogy mi. a prognunoWk. kife)C:Z1..'lI~"'fI


jelezzük, hogy lipuSlI:d"kith stiik1Jéges Ahhoz. hog)' <:gy v~hozó Ilpu.sál nyflllln
rneg.":1!1:ODas9.Ik. a Voswl !\lsi<: beépített ':Type( rugg.·enyet ~11Jk. amri)..w
\IU!'iWform:ija " kÖ\'elke-.t6

A CTYPe( fil8l!"m)' a v.... ltoz 5MtJve \"~IIOZÓ JC'lenlegi Úpus;1,1 a o.JTípu..oan meg:;adou
li[luSI'J ll'IÓdOSilp Tegyük fel péld:iul. hogy ~ kor:\bban l~ton k6dJ~HIetCl. ltmel)"ben
rejteu lípusállllaklt1s tön~nt :;: nt ~"r·n5l S Ingl ....,. az aL1bbi k6d<b1 í\gy n1ÓdOSitjuk,
l-.ogy nyíli úpusjul2k;~st dlkalmauon
ill fpVarlabl. a gl~la
fpVariabl, ;ypel~. ainwi.)

lu" CTypI!( fOW'ény 5('8i~'eI:ot ,egésl: I:rttkCl n)i1tan Sll'I9l. [ipu.su\'oi


abkitjuk, "nM'l)'Ct atIJn a ,1"\1"1., tipw.U fpVarlabh \'~ltozóhoz rendcliJnk

A Visual BasIC C'l'ype ( fiiggvjny6n kfvül •. NfT ~ létedo:.


egy Conv"rt lIIIVli oSlté/y is. amely 1'oJ\<I'.. t Tipus l) fOrmjjU t"Jfüggv6nyekat
tart*nll. tt. al S ~ tirték.el ~ nyih tlpusátalakltással SIng) tlpust'N,
SZ8felnW: llakftn, IlIIrflatt.*:
tp rar at
,"

A \'isu~l Basic k~ n16db:ln fuumhal&. ~,gorú 6; nem $Zip m6db:ln Szigon'l módban
~ rejteu ú~ul:>kitÚ CSlk akkor engedélyelClt hól ból.';I(f rip"sámlak'rdsrrilvan...w.
amikO!" il; az eredeti adauipos bvén}e Mtk ...,nek Illrtomiin}"lI" ctltipus l'ftdcurtomi-
ny~nak réW\:IJnuu tU ~ szjmról nem ~ WflU2lŐf1é1l6 ;ít;llllkll.Í5 példiul
b('j,.'iló tipu....atal2kiús, mert minden egé.':sz.mm kútia!let6 nem qp.z Ml-kkem.

A t;rn"ilŐ ú~t2b.k,tisr.I egy m1$ik I*kb. lInukor egy Inte<;jer uposU \.~hoJ:óc LOn!J
lípu5Ú\-;i al~kílunk. Ez [~IlÓ\·;lb. fIlert a lehetseges lnte<;jer-trt"kek beleesnek" 1.0"9
típus trlékI3rtoman)":iba,

II t;rn'i\6 ~\alJkil;Í.'; ellenl~e a s..··ííltílif /ifmsá/(lftiJfftá$. Gondoljunk ~ld.:luJ egy nem


egbz sldm mtkll \-;iltOZÓf"J, amel}'eI, egfsz Mi'kil\'é szeretnfuk alakit;lfll. Amennriben
a nem ~ vJ.llow Méke ' . O. a w,not billonMgos>Jl :illlbkithalfUk al ! egé'lz
5, ÓIlI • A ViSUII BIIiC vit0z6i" ~ 1123

bkkké. De mi tönt'nik, h.. II v:lhoz6b:m II 3 ,14 énék tal!ilható? En 5Cmmilyen egés7-


énék nem adja vi5.sz:1 pontosan, ezért az ilyen .1talakítjsn:Jl al. eredmC:ny ] lesz,l;s
II maradékot dveszílJGk

SlJ):,ító tipusátalBkltásoál mindig fennáll az információveSllás V9SléIye.


Amikor például a ] . u értéket egész szAmmA alakit;.lk, a szám O, U rém ~

A rejtett tfpusátalakftás szabályai

~lgyelembe \'éve , hogya .uUkil6 lípusablakít:is ad:lt'esztés! erronlÍ'n)"ezl\(.~, il'> ötlet.


ha a Viswl Basic engedtlyezi 3 rejlett szUkítótípus;lt:r.laldtlsl. vagy .. kkor!:lr el hel}"e$efl
a n)"el\!. ha mirKk"fl il)'Cfl éSel.OC'fl ny~ltípusátalak.it:i5t követel meg' A ,,,,!ödi 'zigor\i:In
tipusos prog1'.1mOtlsi nyelvekben ~ ez a S7.abály' ha olyan kódol pr6blllunk fuUatni.
amelyben rejleu szükíl6 típus.'itabkil:is t:r.Wl,..tó, hiOOiizenetel kapunk. Az al:lbbi kód
tehát egy ""Iódi 5Zigorúan típusos n)"elvben hibásnak min&ill:

DIli " aa Int8!,ler


" 8"
Ez II kód alén erroményez hib;it, mert a , művelet nem egé<z s.cimot (2 . O) ad viS/lUl,
amelye! egl!sz sz:lmnd keU alakit:mi. hogy aZ ,,·hez Il'ndelh",... űk, eZ ',szom szúkít6
típu.s:italakíds. Egy ""Iódi szigorúan típu5O!i nyelvben ilyenkor nyilt lipus;ic,lakílht
kell alkaJmaznunk,

0111 " aa Integer


" _ CTypel8 t. Integer)

Di .. " ,U, Jnteg .. r


x - Convert . To l nteg"rI8 4J

Ha wkíll!skor nyílltipuslit:r.lakítht kö\"eteJnénk n!Cg. anIUk n lenne a h;ilr:!np,


hogy :I V·l.'mal Basic regcbbi V;\ltozatai mcgengedtl;k az ilyesmil. ''''g)is régi Vi5u~ I B:l5Í<:
k6djainkat nem \Udn~nk változatlan fOflT)jban újra hasznosítani a n)"elv n~1i dltozatában
- 3 régi kódokat m6dosítmllnk kell(:'Oc. hogy nyílt típus.iulakít!í& alkalmazzanak.

A VWoIal B:lsic ter'l'ezói ezért úgy döntöttek. hogy az "(""Jn)" kózéput::tt '-3la5Zl.j:ík:
" re~eu sZllkít6 típus:\tal~kítls alapl;rtelmt>zés 5~erim engcdélyc~cll. vagyis n alábbi
kód hib;! nélkilllefut, I's" 2 cg~ I'rtéket éllékiJl adja az x ,'iiJtoronak:

D;II " <o. I ntO!ller


" 9' 4
124 11. ráz· Iamarbd6IIIl ASP.NO-teI

Ne teladjük, hogy egy nem egéSl !lám Iffi\Ísszé aiakftisa leviglll a mm tÖftré$a\t,
ezért ill alábbi kM ~ehajt6sának eredményekéflpen az x érté/r;;e o lesz:

Ha egy ASPJ":ET oId.:!lon nem szcn'lnénk engedélyezni ~ rejlCll ~roKíI6IÍpus\talakíŰ$l..


a Solution Explorerben dupla kanmtá.'l.5a1 nyi.\&lk rl'K'"g a f;íjlt, majd a PropertIes ~blakban
ko:res.sük meg ~ 00CI.IMEN'l' dem tulajdons;igait (ez ~ Propt.'ItJeS ablak lenyiló 1ist:l~b61
választható kt). Az ASP.NET...:szt>en találunk egy Suict (Sugoru) ncvú be:íUit.ist - ha ezt
True-ra áJlitjuk, ICliltjuk:l. rejt~11 szúkit6 tipuSitalakit.ist. Az 5.Z. :ibrán jjlhaljuk. nogyan
keila Prop<"flie:s ablakban True-ra :\.lIiuni:l. strict be~llittst.

A fenti be111ícts eI\"tgzése uún:l. V15uallklsk nem engedi m"g a rejtCll =1kl16 lípU~I­
alaklúst, és rordiÚ5i idCjO" ruhallzcnClct kapunk, ha ilyesmIt proMlunk végrehal\alni.
Tt.'gyük rel p(!ld1ul, hogy egy olyan ASI'.I\ET webokblt kL':UÍI(Jnk , amelynek forrlsk6d
r6zc az al~bbi kódot t:l1tlllm.nu II PAg8_ !.Oad cserntnykezcl6bcn:
Di .. a .... lntOll""
.. - 8/4 'Itt rejtIItt u(lkJtó t{t)Udtal .. ktth tOrt<'inik!

---
.......,
._ &.o
...

-_--....._--.

-_ _--
0-

5.2. Abra
...

ti Strici l>edllflds " fXX:((\fLVT elem 1"/n.jd(",~bklM",,k ASPft'F.!'~, ",ld/Mró

Ebben az ~ az 5.3 ~br1n l~thllt6 hiba(l1.enClCl kapjuk. amint megkisL'"fCljOk


betölteni az ASP.NlT oldlIt egy bön~.

Ebben a könyvben nem a1kalmazruk a Stricta "Tru,," beiWIitásl mert egyes


példákb811 rejtett szűkít6 tipusAtalakltás forduhat elO. Ha mégis e mellett a beállítás
mtltltt döntenént, I m8lJlele\6 példákban nyflt tlpusátalakítást kel ablmamunk.
S. óra • AV"IMI sasie ~ 6I1!lOveIeteI 1125

.._-_
. .._
..._-----.,..---
._. _ ----_
.
_-_
..
_--_-.- _--
--
...... - .. -_ ....
--.-..- _,
..... --
" ,."
"' ~:'!"""':'"'". - _ .. ' - -

-_.
5.3. jtn
Ha Slricl. 7",,," betll/ilds ... " hn'mnm. é< "'iMI =íl<fJó "J",sA.aklWuW prob<il,,""
.>tgf1?/rajum'. fonliltlsl 14<-J" Irlb(illla/M ,/It

Összefoglalás
Ebben az ór:\oon a Vi5u~1 Basic viltoZÓinak és műveleteinek nyelvtani szab:ilpit é:i
;elemésl.:lftlllelumeUilk ~l. A ,,~hoz6kal hjrom tubídons:'iguk halMoz7.:> meg: a nevük.
al. adatlípU5uk é:i n I':rtl'kük A változó nt.",.~ és I[push:l. változó bevezetésekor
h:ll.:.irozzuk ml'g, é$ ezeket" lUb~golm kés('lbb nem m6dosílh:lljuk A vához6k
beve~elésc a Visual Basicben" Di .. utasítás segítségével történik. az al~L>bi fom1.1oon

Oi,. v,fltozóNe-ve ... tipu~

A "áh0z6lÍpusa h;lt:irmu meg, milyen értí'kekel tárolhatunk a \'~ltoWlxin_ M,nden


flpo.l5Ilak V;IO egy tnéktartom;lnp: n Integer lÍpu.sú -.;'i)toz6i<b"n péJd:íul
-2 147483 648 és 2 147 483 647 kö~ es6 pozití" 6; negaa,· egéu .clmokat L1ro1harunk

A ,':l.ltoz6kn:lk énekad6ut~~íulsokon h'n'"SZlill adh:uunk {"11ék("\, amelrek ml1vdetl ;ele


a Visual Basic nyelvben az _ jel. Az éllék;J.d6 ml1"elt.'1en ki\'iIl mhfa)ta ml1\eletek is
léteznek a \,sual Basicben. Igy szjmtani műveletek. minI a " a -, a • b " I:
összehasonlit6 m!l\"eletek, mim:l. <, 3 < , a,. k a ,. : ,,!Iamim 3 k"rnklerl~ncobl
Ö<;S2.efcruS ~ művelet .

Amikor btéket adunk egy víillOlónak, létfool0M3g1.i, hogy al. érték típu"", ugyanaz
legyen, minI a ,-:iIIOWé. Mlndaronjltat ha a liplJ.5ük n~'ftl egyeznek meg. a Visual &sic
esetleg képe5lchct rejlett típusátaJakít.:issal a rnegf<,leJ6 IÍpusúvl alakítani az "rt<'kct.
126 1L rMZ' lanerbCIá IZ ASP,NEr-tII

A lipU5áI"lakítisok lehelnek n:~Cltck l!s nyíltak, iII(.'tve S2';Űkili'ik ésl>6viló1<. '""rUt típusát-
alakít~o;( a \"lsu~1 ~lsk .NIT tJe.épiletl ~ () függvroyéwl adhatunk mt"g. ,aJ~nlJnt
" C""vert O!iZlá!y tagfilggvénreh·d. A Y,5U31 Il..1sic ~lapénelmeZ<:'S szerint lTk-gen~.h
a rejtetl SZ\Ikítő tipu..s;ltalakit5st. dc ha aZ ASP. "'"ET weboldal ,~ .. ge ut.... 'it.h;lb,ln
Strict_ · True· bciJJít:1st ~dlJnk meg. eZla faju ;itabkít5stletiltjuk.

A következő 6r.íban II \r.wal Basic vC2b1ési 5zerkezecelfe fordiljuk a I1.gyelmünk...>t,


A vezérlés! sz.erkezetek !ehe!óvé tcszik , hogy módositsuk II program ut:lsit!ls:linak
"égreh:l~;\s;'jt. ami alul~ban aZI jel('mi, hogy a kód eg}'cs résl.Cit Ismételten "égrel\:ljljuk,
amig egy bl7.onyo.; feltétel nem leljCSiil, ~-~gy hogy ('gydlen eljir:\sb:l v:tgy füSS"ényl",
tokou.uk az egynlhhoz bpcsol6d6 utasítások:ll, amelyet ,,~tán egy<.'tlen k6dsolY"~1
meghívhatunk.

Kérdezz-felelek
K; II 1!,)~.kvrlQ/l}(m si/nl" huszllliljiik u rodtlüetl éntlkatl6 m"'H('tekt!f?
v: A Visu~l Basic sz:in1Q:'i rö"id formájú ént:k"Jdó ma,..,letel tm:llmaz (. c, . , . _
stb.). Ezek a mO"eletek el&zör egy mJtcmatikai számítást vt:geznek el
(a . ~ eseta""" péld.'iul egy Ö&zea~st), ma~ eZ! követI az értékadás. Áhal~nO!i
forrn.ijuk II következő,

Ennek h:ltisál"'~ " ki t eJ'ezé" értéke a v,fl ~ozó pillanatnyi t:nékéhez adódik.
n\:lj<! aZ összeg a v.i'ltozó új t:nékl'vé 0lik
A rövidített értékadó műveletek ~ \ "I.o;u:,] Ba$i<;" 7../Ml jekntek ""'8. ~mdyl.'t
~ MJCroooft a _Nhl pbúonn weZt.'tésevel egridejilJeg bocsltoo ki_ tA Visual web
I:le\'doper ~ \ rtSU:l.! Bask 8-as v:íItOz:lt.1t 1\.aSZr1:'llja,) A .NE'!" cl6tt a rővidíleu
énébd6 műveletek n<'-"fll léleZ!ek a nyeM.><."fl, ezért ha:l f<'j!esZlt'5 eggyel növeini
szeretle: volna egy 01101.6 értékél, eZ! a ~bb kódol; kellett írnia'
v.i'Jtozó .. vaHozó , l

A VB,NET-bcn eléihet6 változat ennél jóval tömörebb,


v.fl r oz6 •• 1

Ennek a tömörsl'gnek köszönhetően a gyakorl3tb:m gyakTlln alkalmaztiik


a röviditCIt énékadó műveleteket, és a könY" péld:\ilJan is tlll.>bsWl"
t:lljl kozh:uunk "dilk
K: I,m MmJiI)'c.l elö"yc ammI., ha 1'8)' ASP~\'ET ohJa/OIl "Ihle-ru állil}uk
a Strici betlI/í/list.>
V; IsmétJésképpen: aSt rl e t bd.lliLh True-Tl( álliUs,1 ~ Propertics ablakban
arr:l utaSílp.a \r.wal Ba.sk\.'t .. hogy ne engedéirezze 3 rejtett lípu~t:llakítá:sobt,
lb a be1I1it:iSf\ak a Fill .. értéket adjuk (\"...gy meghaL'irwatlanul hagyjuk).
" rcjwu bővítő ~talakít:í.o;ok tov1bbr.o. is trvényesek mar:ldnak.
5. 6ft • A YiIUII BIlit d .....ói " ~ • 121

Jómagam meg sz..,kClm hólg)'n. a rqtC:U l:6.iI61ipus..lClb~ 1ehe16:ségi't. meri


\:l.pasn;!btom ~nt a kód íg)- ;itl;itlt.:lt6bb INl'lItI. Min<bzon.llul J I"(:!lcu lipu!>-
~tabkít;is n~g)'obb teret enged ~ hib;\kn~k. men a ,'litozók a tudtunk n~lkul
dIthatnak tipus!, A ml!\"ck1 pfld:\ul ....m egén ~7.:im()t 3U etedmlinyül.
az 311bbi köti méS5CIn erewm<nyez h,ibo,UZ<'flCIet (hacsak n",m álJilQ\luk 'l'nJ.,ra
11 ltrict bdllit:i5l);

Dl. IC aB 1n<89 r
" ~or

111 :u 0SZt:i.S ~mMYe , . _' III l lesz.. tie nmd en az Inteqe. tipusú "
,,,ltoronak ad;"'k tTtfkiJl, az ,,;n";k rqtetl ~Cl1akit1ssal Integ",,, Lipusú\j alakul.
~ II wm IÖnrt:sztt ehe.zl\]Uk
Ilngy jobban l:i.\.5uk. mtlyen vesZélyeket!l.'Íl 11 r<.itetl tipusálllbkíl.b, k('Pzdlilk el.
hogy ~ k6dunkwn \'~IJhol kés6bb eg)' Olenc.'1et jclenitlink mcs. ami al! mondl",
hogy az IC !'\:igyobb. mmt l l ia ('z thd:í.,..,1 ~ fehételb.,n szerepel. a rcll('tel~
kOd ,'i'gn"l1::I.jcls:kl 50ha nt'!ll k....-ol sor-, men az II egyen/61esz j..m:lI, nem pedig
!"I:igyobb lInnlJ A hiWl'lI "LWlrII""'" bi:oos.1lO8Y r.lak:!dunk. mm a kóCklt
meS'"zsgjl\'1I t(.... e:5e!l a:o felletdeulik hogy JZ" Méke 3. _. lJ3,

Ismét16 kérdések
l. A \"lltoz6lm:tk mely,k n az eg)'etlen mllljdoou;iga, amel)' 11 progr~m fUIJ!\;!
kÖZben I!l6dmith:n6. b IIOg}'1In h:I.]lh.:lllUk en ~re?
2. Ib ~ ,':iltoWban oI)'lIn egé:sX Sl:Í.r1lOlu!.szeretnénk úro/ru, amel)"eknek
az l-nl'k", (k6Ilqifeljrilb 10 QOO-ig ter,edIJel. nM..o/yIk adallipust CtISZenJ
"l\n;r;!anunk?
3. Tanalmaz az lILlbbI kód fl.'1eU <ZIlKfl6 tipu,,;Hal~kitl.<;!?
Dl. ". b •• lnt~.r
b • la
a b I 2

•. Az al:ibbi utaSlw kiénéke~kor 'l"ru", "agy False 61tket kapunk?


,
" "
5. Az aUbbi uwíUs klbt&lbeknr Tru .. ,.agy Fal. . tTtéket Jupunk?

::"Typo!I4 I • Int .. q"'1 l


128 1L r6sz. lIrnerttdiM; II ASP.NET-teI

Válaszok
1. A v.l.hoz6 éTtéke az egyetlen, amelyet J progrlIm futása közben módoslthatunk;
a nevét ~ az adauípus:'it nem, A ,':lltoz6 éMké-l~' értékadó utasít;i~1
v:ihoztathatjuk meg. amelyben új énéket rendelünk 3 Y.iltomhoL
2, A Short adauipu.sl . b~r a könyv példjjoon a7 alapértelmezett eg6.l; típUl'
az lnteqer.
3. Igen, A I m!lvelet mindig nem eg(,sz erotlnJén}1 ad, ezért a b j 2 OSZI~S az 5. O
éTtéket ad)" viss.za, Mivel ell az énéket ~ s:clmm:l kell alakit:,"' , hogy aZ ji
Y.iltozóhoz rendelhessök, sztlkít6típusjtalakítást kell vtgn:hajt;>ni Az ~talakltjs
azért reltett. meTt nem alkalm~ztunk CType (I fogg\"én)'hívást. ami kifejezetlen
jelezné, hogy típus:'italaklt.b szü~ges,
4. Az eredm{,ny " .. lee 1eQ.. A 413 osztás az 1 .3333333333 ... éneket adja vi:§.!;u,
ami n<--nl egyenl6 l-gyel.
5. Az eredmény T.. ue le5z, It. 4 i3 =:is n l .3333333333 •.. értéket adp vi$su,
do: ~mikOf eZl Intege .. t!pllsúv:l alakít luk, a mar~dékO! eh'cszítjük. és csak az 1
marad. Mivel I - l. a kifejez6 igaznak biWO)l\l1.

Gyakorlatok
Ehhez az 6r!ihoz nem tartozik gl'akorlat, főleg mert Í(:knieg még csak annyi \ "!SUa) Basic-
isrncrt.1tel rendelkezünk, hogy tudjuk, hogyJn vezelhetünk be típuSSlllll.'1ldelkez6 v1lto-
rokat és l>Og)--:ul rendelhet jük hozclJUk egy kifeit'zés l'rlékét,

A kö,'etkez6 6r1ban a VISUal Basic \"e~rIés.i szerkezeteivel fogunk fog.l3lkoznL amelyek


ijegí~'eI ismétl6d6en vagy egy f{'ltélel tclj<."Sülését61 függ6en hajthatunk " égre
egy-egy k6d~7.I. l>Uután dsajJitítO!IUk e7J az anyagO!, mir mcgvj~gilhatunk néMny
bonyolurt~bb k6dpéld:it.
6. ÓRA

Programok irányítása a Visual Basic


vezérlési szerkezeteivel
.1 ke.. ,ar1l</mából

• FdlL>\elcs urasítjsok h3.s<:rulb l:l


• A VISUal &sk :llt... [ t:lmogatOI! cikJlI~"fkezet<.>k f~jIj;
• For ciklusok hllzrúlau
• 00 ciklusok hasm;iJ.. CI
• Az elflr:lsok ts a filgg"en)-ek köW:u kUlönbkgclc
• EljJ.dsok b ftlgg·.. mydc hamúbu

u ~ 6r:íban kd oIy~n progl1UllOz.hi demr61 beszéltOnk. amely ffilndm progf;IIOOz:1si


r1)'dvben fomos sz<.........,." tölt be: :I. valloz6król és a nn1wletekről lopecltorokJúlJ. 1:lJben ..
k<.-k(-l!en CIn' hasonlóan l6lycges fogalomról esik I'ZÓ - ~ I'I!WrlCsi $2l, loezm*"'l
130 II. ráz • lsmeIked6Iaz ASP.NET.wI

A '-ewn&i szerkt:lelek a progt:lm végrehajt:'i$ának menelé! sz:IWI~'Ozz:'ik, nélkülük


a program első sor-d futna le l'I6ször. azún a második. b igy lod bb, pontosabban
abban a wm."ndbel1. ahogy a kódban su...epelnek. A "ezMki szerkezetek nonlXln
m6d0silj:ik al UI1I"ílások végrehajtási 5OITCndj(~. &5 azt is lehető... é teQJk. hogy egy-egr
uUsltáSl Lö/:>b!;lÖ< is végrehajt..;unk. Ebben al6riban a vezérlési s<:erkezeLek köriil
a feltétela; utasit:iwkbl. a ciklusokkaj. al. eljicl.sokkal és" fOggvénrekkel fogunk
megismer"'x1ni

A vezérlési szerkezetek működési elve


A sz1milógép egyetlen dologr;!. ktpes. de abb:ln verl1t:tellt:n' utasí[jsok wrm.;u~n:Lk
,-égrelJ.~jtás.ár:l A sclmít6gép szernszögéb6i nézve nllnden program u!3siJások som.
amelyeket a gép precÍK'fll's gyorsan végrehajt. Az utaslt.fsokaL valamilyen progm..
mo:clsi nreJv"n fogalmazz.1k meg, ilyen nyel ... ,*kL~ul a Visual Basic_ lb például azt
S7.ereménk. hog)' a s:clmítógép létrehouon "gy "gb1. ,,;dm értéktl dltozót. hozzi·
renddje a 4 értéket. majd a ,'áltoző értéké! mt:gswr07.UI 2·... eJ. az a!.ibbi kódot irhaljuk
Integer t!puall vOtoz6 Utrel\odu a 4 értékkel
Oill val . .llyenValtozo .. 9 rnt"~,,r • ,

~ val~ily"nv"ltoz( ért~kének rneq8.orz6 ... 2-vel, Majd a 9z0r~at


, vhna1r6." II val_ilyenV"lto.o v6ltoz6ba le. egyenértékd II
, vala/O.llyenv"ltozo ~ val ... UyenValtozo • 2 onlv"lettRl)
val_ilyenV"ltozo' 2

Amikor "z a program lefUl, d6ször az első sor (3 Dim UU5íru) '-{"gn.>hajLoisir.. kerGl sor.
~mdy egy Integer- típus'; v:lhozÓ! V<'Zet be. majd 3 4 értéket rendeli lJOU:\ Ex llt~n
a v.. l .... ilyenValtozo '. 2 kód ha~6<Hk vl!gre, ","dy 3 val ..... ilyenVal tozc, értéké!
nIeg,sroroua 2-vel, majd 31. eredmEnyt (8) hou.árt.'fldeli a valami lyenV"ltozo
,·~ltozóhoL.

Figy<l!júl:. meg, oogy a fenti k6drész\etben 8 SOI\lII:, egyetlen 8~ futnak le.


a második III elsd után. Ezt II fajta kódvégt8ha~bt soros végreh8frásllBk
(szekvenciális Wgrellajtásoat) nevezik.

Mi a IIelyzct 3 kkor. ha nem s<:e.-....tn(ink, hogy,. val"",ilyenVal tozo kkszer kapjon


btHet, '':lgy ha csak akkor akarjuk el\~gel1etni 3 valami lyenValtOIO .~ 2 művdetet,
11:1 a valwn.i lyenvaltozo értéke ki5ebh 5-nél- ~':Igy addig akarjuk folytatni a 2·vel
,,:a16 ~ amig a val .... ilyenValtozo /!néke nagyobb fK.'ffi lesz lOQ-n:á1l Elthez
meg kell v:lltozt:lLnunk az utaslláso!t: ~égrell:ljL~si sorn.'fl(!jét. amihcl: ,-ezblbi $zerkeze.
Il'kre van szükségünk A vezbléf,i !Olerkez<'Iek lúrom f60$ztál)'a a kövelkew,
6. ón • propnot rinyft6A. ViIUII Baie ....... 1ZtIk8zet8iwI 1131

• Fdt&ele:s szerkezetek. amclycknek a "égrehaflásMa csak akkor keriil :jOl'. ha


egy adott fdt&cl teljesül.
• Ciklusszerkezetek, amelyek addig ism&elnek egy ~dott utasításson. amíg
",Jamílyen feltétel nem te!re:sül
• E~ fogó vezérlési szerkezetek (bIokkszerkez<.1ek), amelyek
3Z ÖMZ(OWI'tOZÓ u!:tsit1:jOkat modulokba csoponosítják, amelyeket a progr-... m
különbOz6 hd}'ein5l rneghívhatunk

Ebben a leckében mindhárom típusú vezérlési S'lerkéZet n}·e]v- és jek'nt6larulval


meg15merked!lnk.

Feltételes vezérlési szertezetek


Feltetdes n,zMésl :;zerkezeteket akkor használunk, ha uusita:jOk eg)' ~t v:damil)'er!
felt&elt61 függ6en szeretnénk v~grehajutni. A feltétele-s vezérléii szerkezetek legegy-
szerűbb form~ia így f~;

l f f .. lt4tel Then
Ut~ .. It4 .. 1
UtltsftJs2

utasfc4sN
End If

a fej t/!tel egy logikai kifejezés, amely "agy igaz (Tr" .. ), "'gy hamis (F'~lse) énéket
(tt
eredményez.. Ha a tel tétel igal1lak bizonyul, al Ut~"it<Í"I-Ut""it,ísNUL3sitások _
v~IL1j16dnak, míg ha hamisnak, a progr:tm ezek<.1 az uta.sil1isokat 1tugolj;l, tdl;jl '''''''
hajtp végn:.

A leltét&les szerkezeteket gvakrtWI hIvják If szerhzeteMek (.Ha"' is.

Az ,,16z6 óclból emJékeweúlnk, hogy aZ ÖSSlehasonlitó nn1veletek mindig logikai


(Boole-féle) értéket adnak vissza. Ezeket a mO'vek1ckt1 :ilt31~ban arr... Il:>szn.1lják. hogy
ósszehasolllíts:\k kél v11t026 ,-a8)' egy ..51102.6 ts egy adott kód<:bl kifejezetI clem
(liter:ll) ért~k(1, A Visual &sicben például ~ következO' k6clcb1 ~1l3píthatiuk meg, hány
óf':j van ~ppen:

DateT;~,Naw,Rour

Ez a kód egy o él 23 közöni egélt étWke!. 3d v;,;"u, ahol a O jek.'f1té:'le éjfN. a 9-t reggel
9:00, a 13-t dtlutin 1:00, és így tovabb. K6;zítheúlnk például egr e8yQenl ASP.NEr
weboldall, a~ly egy fel1~eles szerkezeI .segítstgéveJ megáUapílja, h:lny óra, és al
id6poou61 filgg6en ,ros-mis Qzt:neu~ U6 rcgg.. I~,J6 napot.! "'SY J6 est(1!) jelenít m<:g.
132 j l NR • -.ucI6I 1l ASPJEr'"

K~lSI.ik ~ el en az ASp.!\U ",-eboI<.bk' Ehhez e\6ször houunk k'u't' egy UI


ASP_~ET ... ebhe!)-",.1I sz;imil~nk f~II~. IIlOIjd adJunk hozz:l
egy Ti • .o.wrop~lateMe,,"~.a8Jlx tidOponlfilggő üzenet) rv.'\1l' ASP_~tT oId:!.h

Emlékezzünk 'IlSSl8. ho9v I visual web DeVeIOPetben (Igf a<iIlIlri uj ASP.NET oldalt
1lIIY webhe/yhllz. hogy az Add New Item ~ II web Form "'mtipust
WI~, Arr61 se leledU<'liink meg. hogy be kal jalölniink. PIac. codt ln Mpilrlltl
Ille jelöl6rlégyzetet, I nyelvet (LangllllQltl pedig Visual Basicf' kellilrllnllnk.

~ adjunk az oldalhoz qn' Uibd \czbl6t, amd}TIen rnegjclcnillM.1j1)k u Qzen"'l1


3 Toolbox PalCtWÓl huzzunk e-g)"U.1IZ <>kb]",. Ez uw. a PrOPertJeS ahlakh.m rn6do«il5Uk
3 címkc lD lubjclorlsjgil lblMII.Hg.-re. b törQljuk a "cZérl6 ': ·",t lularUon<.l~n:lk
l'flckl:!:. A képcmyón ekkor ,"abmi ~lU kell Utnunk. num" 6.1 lbrln

.... _--_ ..... _--


--
n .•.. , . . . . . . ~ . . ~'" ._~_~ •• _-0

• ol·'" :I ""
.

--"'-
_ _ _ _ _ o

--
",_!!L"

- - ._. 6.1. ...


_.:- ..... OIdIJJ "v 14M ,U<'rl6
jf'JnfN """,,,

t.klI\l nq kell írnunk a kódot. amely mindo!n alk;Jlomm:IJ Icful., :amikor 1~I08::l1ó érkelJk
az ....W"<ET okblr:l. Ik>uunk létre egy esemm~zcl6I: az okbl LOad C>oCIu&1pi!hCl.
Ezt kéÚélcké-ppcn leI1etiOk meg bnml.\.Unk duplin az okblr:l a 1er.'ez6 n;t;~. ,.~gy
al ASI' ~ET oldal forris:iban ,';1I~~nJk a l':igoe Evenlli elemet a bal oklalllcnytló listib61.
b a lood-ol a jobb 0ldalib61.

" l h I Ch .. " ':'l~,uAf'proprlneMea"9"


Z, Int .rit, Sy_tea.Web. I.P_

~ , Prt • ~ ot ed lfUb P.,geJ,o<ld I ByV.,l .,eno:»r AlI lbje.:;t, lIyV>I l • ""


_ Sy~~_.Evm>t.\~~\ t\.Ondlea Me.Loo.d
SI II o.teT'''._.*' ~ ~. , .o.nd o.teTl_._./Iour ~ 12 ,",en
6, lblJl<t ....goe.1'eMt • 0Qood . . nti"'1'o
7, I»d If
0,
rt oo.teTi_.f1öw,liou, >. 12 And OiIteTI_._.llour 17 '!'hen
"
10, lblMau&<llle,'l'''''t - 'Good af ternoon , "
<o

ll.
12, "" H
ll, H oateTl_.N"",Hour :> 17 Or D.otl!Tu...,.N<>W.lIour < ~ '!'hen
H: lblMe ..... '1e.Text 'Good 8venlnQ.'
IS,
16: End SUb
17: End Ch . .
"" "
Miután beirtuk 3 6.1. példa kódpt,,~ ASP.NEr ol<tllunk forr:1s5ba, tckinl5ilk meg
az oldalt egy böogész6ben 3 Debug menü Stln W,thoUl Debugging ponlj:\l vilasztva.
Amenny'ben dél elÓI!. de rcggel6 után ~"g)·unk. a Good "",rnin; (Jó n.'ggeh!)
űzeoctnck kell megjelennie, déli 12 után, de délut~n O; el6It ~ Good afternoon.nak
(J6 napol!), míg délUl:ln 5 és reggel 6 kÖ7.{i1:t a Good even i nil (J6 e;sIl!t!) ft'lir:un:lk.

A megjelefll5 !izenet ft webkJSlOlgálót futtató számitógép idejét61 fiiw, VlI!/VÍ$ ha


az ASP.NET Dldalunknak ell'( olyan webgaz<la ad otthont, amelyik m6sik id6lónábao
található, ft kimenet !lern biztM, hogy ft saját idónket tükrOzi.

A 6. l példa k6dj:! h.imm If ut35í!ásr~ 4>ü1. AZ els6 (5-7. sor) au cUcn6rzi. hogy
az. akll1~hs ól':! egyenl6-e 64:11 és kiseblH: 12-nél. l'igyelj(lk nWI!, hogy az 5. &OMn
szerepl6 feltétel két feltételes utasít1i51;>61 .ill (DateTime • Now Iiou~ :>~ 6 b
o".teTime.Now Mour < 12), amelyekd az And (és) kulcs5Ló köt &sze. A Visual Basknek
kf1 kulcssz:l"::I v:l.n::l feltételes utaSíl1sok w7.ekapcsol1sára: az And b az Or ("agyi,
~melp!k ;elen(~ megegyezik ~ J~közn~p telentésilkkel. V:lg}is a teltételi And
feltétel2 kife,czés cs:lk ~kkor ad '!'ru", eredményt. ru.mindkt:t feltételtel;esul. míg
a t",lt~t",l1 Or t"ltéte12 akkor is iga7.f\ak biWllyul. 11<1 csak az egyik fdtétel ig.1Z
(tehJt 3k.ir a t"ltetel1, ak.ir ~ t ..ltéte12, dc akkor is, ha mindken6).

AJ. ÖSSleten feltételek jobban oIvllshatót, 11$ a möveletek sorrendjét is megha.


IMomatjllt, ha za,ójeleket haSlnálurü:; beootik, Péld§ul ha etl'( ulasflASsort akkor
szeretnenk végrehajtatni, ha ill óra 9 és 12 töo!é lISik, V!I\IY 11 óra van, ert a kódot
írha!jul:::
If (O<tteTlrne.tl""'.Hour ,.. ~ ANtl o..teTiJDoo.Now.Hour <121 lR
~ (O<tte'l'lme.Now.Hour _ 171 then
, ., ,ut"81t~sok ...
End H

!la!l2 óra &téke tch.1t 6 V"Jgy nag}'obb annal. de 12·nél kisebb, a 2. "om,m nereplő
feltétel igaz len, bo végrehajtódik II 3. sor. ''agris megjelenik a Good "",r"ing. ilzenet.
134 11, r6ll: • llmerkedá az ASP,NEl-tII

A 9. sorban egy üjabb felL~eles U13sítás szerepel. amely azt nézi mt:g, hogy n órJ diBi
1. és délután 5 kÖ1.é e'\ik-e. (Mi,'e! al. ÓrJ. O ts 23 kÖZÖlti é!'\éke! kapll:!t, a d(,lmán ~
17-ként kapjuk meg.) Amennyiben az óra 12 v:lgy :mn11 n~gyobb, ,Iletve 11 v:lgy
:mrdl kisebb é!'\ékíl, a 7. sor végrehajl;:is;\r:I kerOl sor, ts a Good afternoon. Odvö.zlés
jelenik meg.

A harm~dik fcltfu:1 a B. sorban taliiható. b; arra szolg:ll. hogy a program megtuookolia.


hQg)' a1.ór.l 17 és 6 közé esik-é'. Ha a kl, fcllcrcl b:l.rmelyike Tru .., a II sör fut le, amely
a Good evening:. ü:zenetrt jeleníti meg.

Vegyük észre, hogy 8 J>I'OOf8m mindhárom leltételes szerkezetei végrehaJtja,


de csak ar: agyik log True-I YisSllIadni. ami azt j&Iemi. hogy a hérom kiilUl
csak az egyik iizeottt jlllaoik mag.

Utasltások végrehajtása hamisnak bizonyuló feltétel osatán


Ahogy láttuk, u rt u~itál; akkor hajtja végre al. adon k6dsorw:1.l0l, ll:! a megadott
feltl:lcl igaznak bizonyul. De mi történik. Il:! azt .szeretnénk. hogy bizonyos Ul:lSitl5ok
akkor fuSS:lnak le, ha a feltétel lX'11'l teljesül? Tegyük fel p!!lillul, hogy V-Jn egy pass'o/Ord
(jebw) oevű kar:lkterlánc.váltOlÓnk, ami a ....~ldp... I::;IOg:1I6 fdluszn:116 jelsz:lv:ít
t:írolp, Amenn}"iben a v:ílt01'ó enéke · silaza"",- C.szedm"). biz.almas mformkiók:u
jelc:.-'nítilnk meg. mig ha a jebző ""'" ·shn...... •. u azt ;elt:mi. IKIg)' a fdllaS2.n!il6 ni"""
bmokilxm a helyes ;elsz6ruk. ezén fOO'elmezt<':t6 IIzem:tet kllldilnk nek!.

Ennél a forgatókönyvnél más-más kOdrészt h~jtunk "égre. h:t ~ jclsw helYei>, iUet"e ba
a JClszó helytelen. Ezt a kÖ"t"lkezó I f ulasít~sokkal érlletjOk ej,

I f pauword <~ ·.han.... • then


'Pl!lY .. l_"t .. t~ft _gj .. l .. nÍl~se. hogy ft !elhannUó
-'h"lytelen jeluót adott lIOe9
End tr

Ennél azonban egynenIbben is &It é!t1Ctünk, mcrt az If utasiúsoknak lehet egy ncm
kÖlelez6 EIBII (_egyébként·) z!ir:lclékal5. Az ElBe blokkon be](l!i k6d ...~grelujúsár:l
akkor kerül :;or. ha a fehétel l'al,e-r:1 énl:kcl6dik ki. At Elell z!ir.1MkOl tartalm:lzó U
utasítisok ;ihJ11!105 abkja. 3 következő:

ff t"lt4t.l Then
Uusfe4sj
utllsft.s~
"" EI . .UtuHhl
IiIHUe ...lt6s2

ln ha II feJt4fellelpol ('!T.w), al Ut:ufclÍsl-uta.t, •• NUlasiusoIc h.:.jlódnak


,-(-gre. ~ program pedig ~IUgcwj3 az ~1.eUca81t6.1-'U..",t.tlft,{sN bIokk~. mig ha
a teltlIt "I hamisru-k bizonyul. ~ ford;!'.. tOn~"fIlk lefutnak az E.1se{1t,,~
tlÍ.l-Eheur.,.ltABNutl..~,t.lsok,.ll Utasit4/Jl-Ut . . fc,bNblokk peti'.'! kun:.nd

Al; Eiu UI~sJcts ,;egil5éghcl a jelwXlleo6rzl5 kódol ~lírll:lliuk. hogy k/1t fdldd helyeit
($ólI< eg)'et lartal=non,
If pa ''''Jro ·.Iwo%... • th_n
'[ info.....tO'16 -.gh~,,"íté ...
u.
'Flqy. ,ueté. "Ji"l. nit" 9y a tel h....,tI
'hely' _ ... lel t ''''''n -v
~"
Az.! f UtlIS~ leg!elrebb egy Ehe ~I t.u/mazhatrlak: egy Tf
uta$.itúban nem Ittlet egynél több els .. bIoü..

Másik feltételes utasItás vógra!lajtása


hamisnak bizonyuló _tal osetén
lU El 'Ul;lSÍtlson kivül az If utasi!lsok El_If cir:.d8u)I i$ unalmazh:nnak. ame'j'IX'!!
b;ittnenn)lllelJel az ulll5Í1lsonlX'lill, Az n .... l f ug)"nügy kÖVeti az If Ulll5ítJSt, nunl
az nae, de ehh<:-7. egy ugy:mol)"~n fclt~eI tallozik, mini az I f-heL Az Elaeit kulCSl!lUÍ(
köz\'cd""nill kÖ\'et6 uusílholc CI:Ik. akkor fulrlak l." ha az I f fchl1eL ,,:tbnunt ~Z ~C$
megcl6z6 El_If felt(1d lumisn:tk bizonyul,:u: adon Ell ,I f l>IOIdC fehl'tek pedig
iaoIm;lk.

Ez a Ioeir;is eb6re némileg OOmllyomak rtInh.,t, de eg)'!*Wn k~l mf8'1I1gillulfUk


a Imregel Először is \'lzolJUk fel :u: El"lf úrdkolOOoJ elUIOll If Ul3sdsok 11t:i1Ul'lO$
al:lkl'i l

It f"J~4cel 'MI .. "


ur,.. fr.íd
ur6..!toÍIJl
136 1L r'-z • lIInIrkeOk IZASP.NET-tII

ElseI! ell1eIfIfe1t~tel
KIsel tIUt ..sit .... "1
Kl.elflUt ... {t ..... ;;

El.elflUt ..... ü.f1lN


EheIf "ls .. If2t"ltét.,1
EIseI tJUt •."üAsl
El.eItJUt ...üAs2

EheI f .ls.1fNf.. lt~tel


1l1s .. I fM/taf:ltASll
El •• I(NUtasic ....'J2

El ae r f/IUtaa [C .... SN
El".,
El."Uta.tt .... sl
El seUtasitAs2

ElseUt~~ÜAsN
&Od If

l b a leltétel igaznak bizonyul. csak al. UtllsiCásl ~ UCUit .... sN kÖZÖIti blokk
hajtódik végre. a többi ut:Js;t:u;t a progrdm :ícugorja, lia awnwn a feltét .. l hamis.
a progrAm kiénékdi aZ <'lsli ElseIf feltétel! ( .. lseIfIfelcétel) , Amennyiben I'Z
igaz. végrehaltJa az ElselfJUc .... itlfs.l c:s ElselflUtltBúlfSN kÖZÖlti k6drém, de ha
hamis. tov:lbblép a m:ísodik Ehelf feltétel (elself2teltéteJ) kiénékel&t:re. lia ez
a feltétel m.1r igazat ad viSliza.lefutnak az ElseIf2Ut..,.úlfsI ts ElseIf2Ut~sft6sN
utasit:ísok, ha azonban ez is hamis, a harm:lilik EheIf feltétel köo.etkeuk. és igy
tovább. H~ miml('[1ylk El ael ( feltétel hamis, a progrJm az EI se utasíl;l'>Okat
(EIs<!lilt .. dc6sJ-EJs"Ue .... lc4sN) hajtja \'égre.

De wrjü.nk most vissza a TillleAp{)ropriateMe....lIg... lIspx példánkhoz, amelynek for-


r:í$k6dji! a 6.1. pl:ld:lban JállUk. StinJunk r.t egy percei, és I'usMink végig ismét awn
a k6don. Megfigydhctjilk. hogy 00 fúrom feltélel! Il:Iszruíltunk: ~Z egyik ami voll
kív:\.m~i, hogy ~Z id6 reggel 6 6; délel6n II köz': esik-e, 3 m:ísOdik azt \'izsglilta, hogy
déli 12 ~ dt-Iut~n S között \'~gyunko(', míg 3 harmadik azt ellen6rizte, hogy elmúlto(' rn.'r
délutln S 6m, dc nincs-e még reggel 6.

Ezt ... lt1rom feltbel! egyetlen If ulll,íclWan il;; ÖS:Refogh:lquk. vagy két El ae:r f, \-~g)'
egy Elself 6;, cg)' Il.he ula5itis scgí~el. A kl:!. EheH blokkOl aJk..1lmaw megoldás
kódj:l a következő:
If O'teTi ..... N""'.l!cur ~. 6 And o..teTl_.IiOW-.l!cur ., 12 then
lblll~as"\l" ... Text 'Good ~rnln\l".·
Ehelt O'teTl ..... N""".H""T >" lJ A..., o..t..-rl_.Ii<>w.Hour <~ 11 then
lblMeU~\l"e.Text 'Good aft~rnoon.-
EheIf Dat .. 'l' i ... . HO.... lIOur > 17 Or Da t,,'l'l"" .Nov.IIQ"~ '" fi then
lbl M.. ss ag" . Text • "Good ~ ve nin \1 ."
Knd If

If Il4t .. 'l' I ..... How . JIour ,. _ 6 O\nd DateTl"", .How. llour < 12 th""
lbll!~8nl1 e.T"xt 'Good ..,rn in\1 . ·
Kla ..1f Date1'l_ .How. JIour >± 12 I<nd O'Ote1'i .... . llow. llour <: 17 then
lbl H eu~ g e .'l"<oxt • 'Good ~h .. m aon .·

lbl H,,.Ug,, . ",",xt .. 'Good ,",v ""ing . ·


End If

A Visual Basic ciklusszerkezetei


A ciklusszerkezetek utasi!áw>rozalok ismkeh \'égrehajth1t teszik leru.16<.. é. A k6d
!"fULII"t adon sz.1mú ~ lka!or1lm:l!; ekkO!" For • •. 1I" " t cik!t/:;t kdl hasm.11n l.ln k. v:.gy
amig egy fehétel nem leljesúJ - em: swlg:jl a Do ... !..oop szet"kezet. A kövelkew hirom
alfejezetben ~ \~5ual Ba.~knek ell 3 ké!. cikJu'M.eO<ezeté!. vi~ljuk meg. Bir az 3bkjuk
különbözik. ~ két szerkezet maga=inten cgyenértt'lru, \-agris lényegében ugyanaZ!
3 f,,!ad.110l végzik el - utasítások SOfOl.1t;it h~jtjik végre i~m("tI6d6 jelleggel-. e~t'n
az egyik kidlth:n6 3 m:bikka l.

For", Next ciklusok •


Az l.5métJ6dó feladalokhoz \"".Il6színaJeg a For ... Ne x t cikl~erkeZCl a legjobb
01a..szlá" amelynek fOCTIl1ja a következő:
For "9.!uV",leozó - I:ezd,,~ to ViJ9
Ut,,,;JtAsl
UtiJ"f~"',,2

UtiJsJCASN
N" " t egéuVAlt"zd

A For ... Ne xt c ikh.lSllkra IIVatran hivatkOlllH For c iklusként is.

Vlz.sgáljuk meg, mit is jelent.. nek a fentiek, vagyis hogy miként mOködik ~ for ciklus!
Az "9és;V",l t ozd vlilloWhoz, amelynek "s"sz s:clm ~n..,kt1nek (vagyis Shor t,
Int eger vagy t.on g (Ipusún~ k) kclllennie. elönör howrendeljük 3 k ezdet 6t~ket.
~::Z[ a vliho zÓI. gyJkrdn cíll/us/'fi/IOZÓ/lall hÍ\'Í~k.
131 I I.NIiI · .......... ASP.HET....

A c&WitOl'6nak VaICítaban nem UI ftltMlenúl egész SZimnaI:; _ _ - b6111liIvtn


számtlpusli leIltt -. 61 I gyakor1a1ban. Fo..... Next cllusok t6k!yom6 10bIl-
~ itt ~ érték !WI, mert ezt I cikluslaltit arra tervezt"t.1!ogy Idon legé$ll
$lAmú lIIkIIommIIlunasson lI9Y utasI161$orll.!alot.

Mmlin 3 cikl~l(()z6hoz t.oillrendeltOk 3 kezder kczd6értl:ket. Idut03.k n Ut .. sl-


c<l.J -;·Jt ..slt4sN .......... itho!<. majd:a blokk ,.~ k-,'C 3 cik.h.s,.. ~lt0z6 &teke eggyel
n6. H .. ezen:a ponton a l'lldUS\-:iltozó érttke kisebb:a vég tntkntl. \";Igy cgyenk'5 :azzal.
az emlitett ul1'>iU5ok WnéI '·~Jl6dnak. Ez uun:a program ~ ÖSSU"Veu ~
Clk.I~-:i.how tnektll "'gd, és ha az ml-g mindig kisebb ar1lÚl. iSmtI nö.. el! ~z
tn"ket. Ez cgtszen ackiJg Igy fol)13tódik. ~mig t ciklu$\J":lltow trték~ 1kIg)'ol:lb oem
ICliZ a vég értl':ké<*1

-,
Az Vta, rt ,b .. Uta. (c<lUl kÖl6nt utalitúsolt rtIIIdszerVlt citJustllmnel:

lb ptkUul a "Hell. WorlcH' üzendct szen:tnenk hll"OlllSWr n"'1ll"lenileni


a relll2SZIÚ.l6 bOnge~, az ASI'.l\""ET "'ebokbl PIg,,-Load esemcnykcrek"i;éh<:n
elhelyezhetntnk ClJ. a Por •.. Next ciklUSt:
Dl. I .. ~ Inl"9""
F()rl~ltoJ
I.oohltlv""z"'r16.TI!xt" '110.110, Worldl'
Next i

F.l&zör Iétrehol;unk. ~ I M'\11 ~ dlto;eót, AmIkor a progrAm e!;m ~ ,or ctkIu ....
az l az l kezdőéftd;et UPfI. mafd .. tgreh.;t.~Ó(bk a ciklu, t<'irUe, amely Ossuf\JZl
a "H"II<,_ .... " .. Id!· ltólrakll'1tincot egy label wcbo '-ezcrt6 Text lubjdotuiginak
aktu:l.li, ért .... ké..el (Emlékezzilnk. VlSSl.:I. hog)' az" oJpn ma'-elei. amdy a baj
oldal:l.n 1116 ,'~I\Ozó tn"kt,'1 Ö:;W.efűzi a jobb oId.,I;ln ~U6 értékkel. majd a mavelei
eredmén~'éI visS2irrJ a b;al oId11i ,":illoz6W)

~butin a tömi lefutott. al. &téke egg}'cl nő. m;ljd a program meg.'~lj::I. hogy a v:l.l_
toW enel«: ki:sdX>-e }ordl. ''2g)' eg}"enk'5 aZZ:l.I Eun a ponton az 1 értl:kc 2. cZért
a ciklUSlörzs újra lefut. ....8)is a progr.Im újr.i ~zi a "Nélio, ....or i.dl· ltólrakter-
Li.ncot 3 címke """t IIII~fdonsjg;linak értéké\"cl. Ahogy az cl6W kÖfben, "t t értd<c
most is cgg)-cl nő. ~ 3 program iSméI megnt;zi, hogy nem Ieu-e rulgyobb .'I-~l \Ii'-cl
az 1 R106I a 3 tnékei t;lrt;alnI:l.ZZ:I., ami kISehb \'38)' eg)'enJ6 }omal, 3 Ctklu.. tM5e i~rnét
láUl. A 'Hello .....orl,,!· ~ a ~bel \'t'zl:til'i Text tlll"jdonság:inak ÖIIIl7.cflT1.6Ie ullin
az I értéke ""'Sim n6, és fgy m.1r el&; " '-et, am; Ite", kisebb \";Ig)' eg}"enll'i ,'1-111,,1.
t"z6l a For cikllJ5 tbnse többt nem fut k. h;Inem a program a Next l son köZ\etlenill
kÖ'\-et6 k6dsona.1 fol)Ul1'I a \"tgrehajÚ5l.
A For ,;ikJllS swkv:inyos ~Iakpban 3 c;klus\-jltow &!f:ke 3 ciklustoo.s minden
isml1l~kor etI8YeI 00. De mi a helyzet akkor. ha a dkJu~v.\Jtoz6t egyn"l nagy<lbb
.. nékkel szeretnblk növeln;, vagy éppen csökkenteni szeretnénk aZ én,',kl"l?

A \isual &lsie a szoIclSöSlól eltéró Jl,ptetést a nem kŐlelez6 Step ut3S;ths:.lle,;zi


lehet6vl; a For ciklusokban. :unelybcn pontOSo:ln megadhatjuk, milyen I'rtl'kkel
sZt'retnénk nő,-elni a Clklusdltoz6t az ismétlésdm{:l, A S~ep tiirndl'kOl alk~lmaz6
FOI" dk.lw;ok 1ltalános rom(jj~ " következő:

For <II14$ZV.f1tD~d _ ",,,,,(!,et to vég Step l~d,"z


Utadr.f",l
(J'aa/tllsJ

UtilsÚ.f",N
Next eg<!.. "V.fltozd

TegyOk fel, 00g)' egy olyan ciklus! sl.eretnénk végrehajt:nnL amely a Oés iO közötti
páros sz1mokon lépdel végig. Ezt egy olyan For ... Next ciklu:;sal érhetJÜk el. amely
O-t61 indul (os 10·ig ismétl6dik. és ciklus,,~ltoz6j:lnak értéke minden körben kett6vel
n6. Egy ilyen For ciklU${ igy irhatunk fel:
Ol . . .",en. il" lnteqer
For even. " O to 10 Step 2
Lat>eIVez<!rl6'.Text ,. ,"v",ns " • i . "" ""en numbor.<br '>'
Next even.

Ha ezt a For ciklUS! egy ASP./I.'Ff webeldal Page_ [,cao;! esefl1énr(~lez adjuk.
a kö\etkez6ke! írj:! ki a megadott !.:Ibel vez.érl6ben:
o is .. n .,ven number.
2 ia .. n ..ven number.
t 18 an ""en n _ r .

10 i. an olVan nUllber.

Ha azt szeretnénk, hogy egy I'or ciklus ciklusYáltolÓiának tirtél;;e minden


i&métlésntil csiilkefljen, a lépé~özt neijatfv Mare kel iIIlítaoonk. Péld~ ha
a Oés 10 közötti p.os szál:rd::at Sl1!fetnéol;; ~jelenÍleni, de úgy, hogy lO·tól
iIldulult, lis a O felé haladur.k, ill alábbi For ciklust frIIatj~:
Di .. evens ilS lnteqer
For ""ena ~ 10 to O St~p -2
LabelV.. ,,"rl~.Text ,_ ""ene' • 1. <In even nUllber.<br l> '
Next aven.
140 I I, rÍIIl' ~azASP,NET,"

Do, "loop cikJusok


A 00, , ,Loop ciklus, amdyet röviden ~k 00 ciklusnak neveznek, addig ismédi
a cikluSlörz..; \'~grehajt:i~1 (a fomlál61 filggden), 3míg egy felt&eI (eoml!, v:lgy 3míg
a felll'tel ig:>l nem le7., El&7.Ör nl'uiik meg, hogy:m fel egy olpn Da ciklus, aml"ly
addig ism~d6dik, amig a rell&1"I igaz,
00 1Ihi! .. f ..1t,jt ..l
ucuHII"l
Uta"ÚIÍs2

Ut~"itIl5N
~O

A fel t,jte] egy logik:ai ért,";kL-l viMz.lIad6 kir~;elés. Amikor ~ program a Do ciklushoz.
l'r, ellertOOi a fel t,jt .. l-I. ~ ha al 'I'~ue e ....0mtn)1 ad. "tgrehajl;" a ciklus löruél
(az !ltadtA.l -Ut"" {tAsH blokkol:). MiuCin a cikluSlÖ!7.S Ieli.uon, a program i5m&
ellenórzi a f e l t ,jtel-t, és ha mtg mindig igaznak \al~I;a, újrJ "tgrehajlja a ciklus
töns«. Ez addig is~6dik, amig a fellétel Fal ..e eredmfll)~ nem ad a dklUSlÖl'ZS
v~hajt!i53 uLin.

A Do ciklusok úgy is fell'píthet6k. hogya ciklustör7.s addig i.srnét16djön, amíg


egy fl"ll&eI v~gül igaznak nem bizonyul. A Do ciklusnak ez II fajtáj:!. így fesl'
00 unti l feltlltel
Ut ... itll.l
Utasit45;

A fenti cikJusf= m(Jköd(:se a következő: a 00 ciklushoz crve a program ellcn6rzi


a fel t éte1·t. és ha az Faloe. "égrell:l~ja a ciklus \Öf7..;;& (az ut /JsltAsl -uc;lBJcdsN
uusit.:lsok:u), m:ljd újt:l megvizsg11jlo a feh('tdl, és ha "*8 mindig hamis, fol}t1ljlo a ciklus
ism{-llbé\ - "pen addIg. mig a felt&eJ igar. nem lesz a cikluSlÖr'7.s végrehajtba uLin.

A For ciklushoz hasonlóan a 00 ciklus i5 alkalm.~s am. hogy megjeleoí15ük a O ~ 10


köZÖlti p;lros súmokat. Ehhez a kö\'etkez6 UI35;llsson Irhaljuk:
Oi .. nu:ober ae Int"Ver O
00 Whlle nuaobe~ <~ 10
L4belVezé..-UI.T<!xt ,, ~ nUlllber " • h "n even nu:ober.<br ,,,,'

ln el6ször Ittrehozzuk a nwnbe~ (sz!im) nev\!, lnteg,,~ lipusü ,>;jhoz6t. 6; houlren-


deljük a O ~rtékcL A 00 ciklus eZ! kövch'Jen addig isml'!l6dik, amig a number ~rtéke 10
vagy annll kisebb. Mivel a number kez<Wn~ke 0, ami kIsebb 100nél, leful a ciklus
lönSoe. amel)"ben eg)' Ounetet (O; 11 an ev"n nwaber·. ""-gps "A O p6ro du.")
fll"zOnk a Label webe:!: \'ezérl6 T"xt ruIaPonsj~hoz. nujd 2-\'el nlh'eljílk a nWllbO!r
él"lékl:!.. A cikluSI13lSZ01" ism6l<"klik, amikor is a nUl'\bf!r fl"léke déri a 1:'101

A Do ciklusa« t6rzst jeIemZ6en tartalmaz.gy otyan kOdsort. amely egy. cikkls


leltétel6bln SlIrePI6 változó értékét hissIti. HI megfeldeziri. err61 I k6ds0!ról,
I CÜJS ~tIen CitJUSSA válik, amely soha nem ......1. upzefii*. el ptIid6IJ,
hogy lfOI tOnlwwlt, ha ~. '......r. scwtlZ eI6l!6 p6kMb61-~,

""".....
hogv. nu_:r lwtéb maradna, ezirt. CÜJStöns soha ViQet nem (w6tn

Egységbe fog6 vezérlési szerkezetek:


eljárások és függvények
Az ebben b az el6z6l«kdlCfl -w:repI6 kódpiHdik mlndejnike p!ir eg}"5UI"\l SOfb6I
álh. és csupin ami smlpl!. hogy ~llesse a bemU\.3I01I fogalnuklll. A k6UpfkUk
mOO.:.ödésének dnn1.6<ekor lanuk, 1"'8), ,,,zériési .s.:erke1.Clck. pél<tiul aklusok \"llgy
felk1dC"!i Uta5íÚ50k ..eguség(:\·d a \~lSUal ~k u el>6l:61 az ulols6 501" felt 1131~d6
\'tgrehajtási sorrendre mcgdh<m;l1l1316. Ez"ken ~ s<:crkczeteken kivOl awnblln
a V,sual Basicben l';lell~k ('g)s•.'gbe fogó (. /nodulm'Ízál8') t'Czérlht $Zf.-rl«>n:/cI.I is,
Ezek olyan nerkewek, amelyeknek a .segitségével kódmodulok:u hoztIluunk léue.
A mcxlulok sok-"'Ok k6dsom6l.illh;unak. bemen6 p;lrJrnt1creik IdlCtnek. éi mHet is
\'L$Sl:Iadh;nnak.. A legfOOlO$:ólhb 3Zonoon. hogy a h~131 l\asic foni5kOd u.'ISZliIeges
htdrér61 meghí\ h:uók

KM&- eg)'~ fogó \'e~i szerk.ezetlétez,k, az co'jUn1so.I!(szubrutmok) és


3fi1/1.$,6/),,* Az cljár:hok "cm adnak vi5.st:> o;cmmil)'en tntket. mig a függ\"én)'ek
mindig rendelkeznek \'l.....'zall!rtsi mékkel. de mindkeu6 k,\'<\loon alkalnl:1~ <lfI1l. hogy
~ pmgr.. m logikai .,gysl!gc'l összefogiIlk.

filgg'o'("'yclc műki'.odbmdc ~i.'5i-hel nEzzünk meg egy - n.:.."uk:g


Al; eljlrjsok &,
- p&b~. amely em' üzenetet iSlnttel. ~ az emögött mcghúzbdö loglIul
tJ~"WefŰ!.l...,
egy elplmmn ragp 0Mze. Au;tl kezdjO.k. hogy Irucllo1;unk '"8)' új ASP"U \\'ebokbk
;UJlroutiner.....'-f\l. ~"P~ nn..-,n, majd a lroll ~'het oonbó,nk egy Label
\'e~ törölp.ik a Text Illl:!~gin3: az mékd. al ID lulajd0ns;5g::u pedig _.",tput _rn
(lumenet) iUitjllk.. Ez u~n Ittreh02:11nk egy esernmyker.ek'5t aZ oldal t.oad ~llImyéllCL
All $7xMnénk.lw ez al. ASP_N"-, oI<b.l3 -W .. lc,_ t" IllY W.. beite" (Üdvöl.k1 ll
honbpomon!) >W\'~'S'-1 ;clenitené meg, ml!ghoz:cl nég}"SZ~'1", Ehhez egy egy_<Zenl Por
ciklllSl.l~lh:.uunk. ~mdy Il<w'.cfI.Tzi a ·W.. l".... t,; ""' W.. beite- kir:lItt.,rUncot
OIZ "utput <ÍllIke TeXt lubjdonslgi'."j a ciklll$IÖr"lWbm. Al; okbl fordskOd!'&dbe
oornndó kódot a 6,l_ ~kb mUCilp_
142 11. , . • lSrn.tId6S IZ ASP.NET-t.!

1: Pani .. 1 Clan Sub~ou.iML"Baonl


2: Inh .... i •• ByU_,W"h.UI.P"'óI"

"
4: Ptotected Sub P"'óI"--"",,dlByVal a~nd"r ..... Obj=t. ByV,,1 " .... B

.," _ Syat ..... Kvent/u"lIal lIandlea Ka.L<><Id

.,"
0,

10:
Di .. j
Fori.1To'
As IntOl9""

outp"t.T.."t '" 'welcOIIIe- to IllY web>!ite<hr


ti"". i
l~'

ll, t:nd Sub


12, End elau

Megftgyelhetjilk. hogy aZ 5. ~n progr~mb61 töröljiik a Label \"eÚ:r16 Text ruiaidons;!-


ginak értfkét. mtgpedig úgy. hogy a tula~ghoz egy 0= karJktc:I1:1n<:« rendclunk.
Üres karJkterLtncol: kétféleképpen idöllJt:tilnk ~ progrnmpinkban a StI"ing. _ty
kóddal ~sd a fenl.i k6<l5. soclÚ v:>.gy egy t:.Irt~lom ""lkOJi karaktcrl1nc-literl.llal ('-).
A kód tejÚt u~"anezt a kimenetet el"t.~n~'eZi. ha az 5. sort erre C5eI"éljű.k:
output.'h!xt , ,

Miut1n bcírtuk a fenli kódol, ""zzük meg n oldalt egy böngész6ben. Lithatjuk. hogy
a "..,ooldal a 6.2. ~br:ln 1~lh'1I6hoz h:.lSOt1.l&m ~gySZ("f irp ki:l 'Welc~ t o my Web-
.it.. - szővegel.

_-_., ...
0- . !il .!l.;J
..
",_ .. ""w_
,
,

w_ ..... w_

<-
w_ ..... w_
"'_ ....... - 6.2. MInt
,I If"",*o",~ Ir> m)' u.,QsiUJ"
":amct •.tgy5zwjI:kIIllt "'<"II

Most tegyük fel, hogy egy Bunon vezérl6t IS szen:.-tnénk a weboldalon. amelyre k:lllimV"~
szintén Ilégyner jelen"" meg a -welcome tO my Wellsit .. - Sb!h·eg. Ehhez .. 1&sZŐJ is
egy gOllllxlt kell az oldalhoz adnunk T~ünk vissza az ASP.NIT oldal HTML r6zéhez,
!is húzzunk egy Buuon vezérl6t a Toolbox palctt1r61 az oldalm . Ekkor a képerny6nkiln
wbmi olyasmit kelll:ltnunk, mint a 6.3. ~tmn

Ez u!Jn kanimslInk dllpl:ln tervez6 nézetben a gombr.l, vagy forráskód n"7.<."Ib"n


\-;ilaSS2uk a BuUOfl wel>cs vezél16t a !xli oldali lenyíl6list~b6I, illetve ann~k ellek
e;eményé! a jobb oklaliból. hogy egy cseménykezel6t ~diunk a gomb ellet
eseméfl}'éhez. IUnneJyik megold:1st v.IJa5njuk, automatikusan létrejön az t!Se'nén}'ke-
zel6 du, A 4. leckéb61 emlékezhetünk, hogy ha ~'gy Buuon vez(,rlóre k;,túnlUnk,
annak CI iek esem('fl}'kezeI6joe fut le, ez':;n ha azt 57.eretnénk, hog}' a gombr:l kattIntva
négyszer a ·Wel".... to m:y W"bsite · üzt'~t jelenjen mcg, a gomb Cllek esemény·
kezel5jébe kell 'rnunk ugyanazt a kódol;, :ullclye\ a Page_Loe.d eseml'nykezel6höz
adtunk .

-- _... _,_._"'"-
..........

6.3. in
..... . . . Az oldal W' 80mb
h~"Iá"

Az ASP,NIT oldalnak a Click """,ménykczel(i\el (1 1·16. SOf) b6vít~'tt forrlsk6dp!


a 6..l példában l!ithatjuk.

l: Pa~thl Clau Subroutin.!l~uonl


2: ln~edt .. Syste<o.Web.UI.Page

"
4, Protectrd Sub Pag,,_!.o<IdIDyVal seml,, < A.o Objooct. DyVal e As

.,
S,
_ 5YstC!lll.lNentAl1Isl Handle. Me.Load
output.T1!xt • String,Empty

"
0,

"
10,
11, ~,
eo, , . ,
".
Next
~ub
,~

,
outpUt. Text
.
IntlOOet
" ,< ·Wel".... to IlY Weboite<br I~·

12,
ll, ptotected Sub Buttonl_CUck(lIyVal uender "" Object. ByV,,' e As
_ Sy.t""',EV~lltArg.1 ){andi ... Button! ,Click

H: 01 .. I As Int~er
IS: Porl _ lTO'
16: output.T1!xt '-~ ·w"le.... to """ Webtoite~br I~'
17: Next
18: End Sub
19, End Cl ......
144 ! L rá:!: • lIma!bd6S az ASP.NEr·1IIII

A:/. ASI'.Nt.T \wboldal! !gy kib6vftye ~Z okbl..-ls6 IIJCgl!uog:..lásakor négyszt.-1" megj..-lenik


a °h'"le""", to roy Webaite " Ü7.enet (3 Page_ Load cseménykelxl6b6i), illetve
egy gomb. A 6.4 . ;ilir.in azt I:Ith:lIjuk. hogyan fesl a SubrQutine!.euonl.aapx. rniuctn
a 6.2. es 6.3. péld:lk k6di~( hOzz:ladtllk.

_................--_
w_
w_ ..... _

6.4. lIbra
Az rl:w>rCf '"<'ghr mi"f!jelerlÓlJOmb

Amikor a gombra kau.mtunk, elindul annak Cliek esernénykerel(ijc. de nllve!


az ASI' 'TI okbl reldolgoúsk~ ismét 501 kerul. a Pag"J,oad CS(.'rT)(inykezel6;"
úlrd leful, ezén a ·Wele""", t.o roy \-Iebeite" üzenet ,,>oIcszorjdenik meg
(lásd 3 6.5. ábrát).

) _....., 0"_' _. ~ ,., .... ," _ - '"


.... OOo _ ......

___.......................---- - - ..

...._......
._
_ .......--
.......-
.. .....-

6.S.jIn
JI 8Ombro wWnfQs "ta" a Ire/co ...., 10 my u>tbsOle" nJ'OIcszor kirhm6

Emlékezriink YÍSSlJI, /!ogV a 4. óréban röviden szót ejtettünk iIlQkr61 a műveletekr61,


amelyelr::re " Bunon webes vezérlókre kattintásl;or SOf kerűl. Ha a működési eN
még mindig oom tiszta, lll! agg6djunk, a témával részletesebben foglalkolUr'lk majd
19. órában.
6. ÓlI • Prvf., .... ~. V.U.I BIlit ?NI'" .......;". 1145

A felesleges kódok mennyiségének csökkentéso


eljárásokkel és függvényekkel
6:lr ASP:>.n ,,~tbll.lnk kód;;;' meglehet&en eg)'SZlml. \'lIiruuk benne fd~
L...-néII6d6 tk,,~k II ·W.. ~". . . tc "'y ""'1 Hit .. • ÜZ<.'1'lelC'l megjclen.itli kód kéUZ~
,~I , egy~er" Pa"e_t.o..d esem("nrke1.e!óben. eg)·sler pedig ~ Buuoo H'úrl6
~lld; esen~nyk(:zcl~n II felesleges kód tnenny;s<.'~~.:gy elj;írJs 5Cg'~Shcl
ClIOItkenthctjilk

II kÖ"('Iknö fomúju C'ljlrisl kell megimunk


Ibl. 1"1j.:l"" _ _ 4
",,,.I,,"J
UC"flfe4"J

II SUb és az End rub ~ kOzönJ kód a1. etjárás /6n:sJt.o, amely nunden "Ilalomnul
H.'grt'h:l.jtódik. :l.mikor n elroidst "H'8l1ftJ"" Az '"'roirish,d.~ fomdja n ~Ubbi
I"J ,4rJsN"V& l

ASI' Nt, wdx>ldllunk hoz ím:uunk e!!>" DiBplayll....ag .. [) (üzenet megjdenl!6;e)


!\('\-"ll '"'jirás!;. anw>lynek iÖfZSoe U" kód lesz. "melyik négy$z"r megjeleniti a ·Wet. ~
t" "'I' W&bsit .. • Ülenetel. Er. lI... n:l. f>age_Lo<od és a cl id, e-;cmtnrkezelóben
:1.1. üzenetmegjClenii6 kóda egy oI)'lIin!óOlT:l csereultljilk, amel)· a DisplayH" ....." .. 4)
d);Idst hí\"jlI '1>eg

Az. eljlr:iss31 ,ön.ffi15 iil.enetme~lenli~hcz CS(.'féljilk ki a 6.2. és 6.3. pl'k.l;kb61 ~~lm~'7.6


kódot: a 6A. pHcUb;in [;lthatóra

1, p.. nu.l ·hBB Subrouü""t.e••tml


~: I Syat_.W@b.ULP"g..
;,

.
" rrotened /luh Page_t.o.odIIlyV .. l 8ender .... Ohject. 1IyV~1 ......
_ tlyM ..... Ev""u.ra., H.. ndl ... M".~<1
S, ""'put T<:x' • strltI<J.k>ty
,
.,
"
8,

ll),
DId Sub
DtBPla~.sa9<!('

pr,·.t,..,t..d Sl,b Butto"l_, 11c~ tllyV.. l ~ ""r Aa Jhj...,t. IJyV.. 1 • A.Ol


... ey.t_.EventAra.l 11.. ,,<11 ... lIuttonl.Cllck
ll, Dhpl_yMe.sa!11'41

,,
12, &od Suh
146 11. rkI: • lSrn.tId6S IZ ASP.NET·18I

14, prlvue SUb D1B p la yM ~ ..a~.(j


15 , 01 .. j A. I ntege r
16 , r or i_lTo 4
17 , ou ~put. T1! xt ~" 'W"lcome t o OlY Webol i te<br I~'
18 , N~x t I
19 , ind Sub
20 , End Cl ass

A 6.4. f'Ó'1W kódja 3 ' ''1.;1".- to my "lehatt" · üzenet'" négyszer megjelenítő kódol
egy elj:irisba fokozza be 04-19. ""r). Az el~r:l, törzse aZ ASP.NET forclskód h:\rmcly
helyér61 n><'ghivható aZ eljir"'r.I való hivalkoz:lssal (lásd 3 7. h ll. 50<1).

Nézzük meg az oldali a böngész6ben a DeboJg menü StoIn Wllhoul DeboJgging p:U:lOCsa
...gi!Ségb.el. kt. oldal e!só betöllésekor UI>}"An:lZl. 3 kimt."fl",..1 kdll;ltnunk. mint am,t
a 6.4 ;lbcin láttunk: a 'welcOIIII! to "" w.. baite· ilz....,et n~zer megjelenik, ~13tU
pedig egy gomb I~th::i\ó. 1\ go mbrJ Iottin\V:I a 6.5. ábr:-. tarul'l1:l köszön ~i5SZ:l.: a '''1,,1 -
oa.e to ..... web.it,,· (Izenet ezúttal nyolcszor jelen,k meg. alatta a gombbal.

T6rekedjiink 8ITI, hogy 8 faleslegus k6<lok rTIIInnyiségét III iSmétI6dOi kódok modulokba
(aljbrásokba vagy függvéflyekbel helyezésé'.-eI csökkentsiik, A feleslegesen ismétlődő
k6dnak több Mtránya is van: PéldáU r.ehezebbeo oIvashatóv6 telli a programo! (mivel
a kM hosszabb), megnehelIti annak frissítését Imivel a kódot minden elófOfdulásnél
módosltani kul), és III tliráSI'8 is nagyobb az esély (mivel a kódot több$lÖr kali beimi,
Igy v!llószlnúbO, hogy efJYSltr hibézunk),

Paraméterek _ a eljárésoknak és függvényeknek


A 6A. pl'klában egy eljlr:ls segitségb,el jdenit"'tiInk meg egy u:rene1<:1 nl-gyszer.
KonkrétalI ~ ·we l co .... to my webs it .. • ilzenet jelent meg egy Label "e~rl6ben,
egy FO.- cikluson keremul. Mi ~ hdyzrl nonoon akkor. ha a Dhp l ayMellU Il''' t)
elj:ir:l.sl ~lu!:lI1OS$ll.sz"ret(\énk tenm, hogy az emliK'tt.<ZÖVeg helyeit bánniJyen
OzenetC( k~pe5 legyen ntgyszcr "~g""len1tenj?

Az elj~clsQk k filggn<nyek !XITwlh'fIe.-ck segílSlW"d tehc:~6k :l1t~I;\nossll. 1\ p" ....nl'lCT


olyan érttk, amcly~'t akkor adunk il az eJj:ír1snak vagy fi]gg"énynek , amikor meghl\'juk.
Az djácl.s ~dgy rugg... b!y fornúp. ily..., e.sellx"fl nérnik'g módosul , hi.szen ~Z ill;)!a elfo-
gadható paraméterek Ibúját j~ n"-'g kt>ll adnunk,
SUb 81j.4r;Í5N"VIO!PdraJJtl ft" T/pu~ , Par.t1d2 aB Tipus, , • • P"rarnN ll8 1'fpu~1
IJtaaft.4al
Utasit ".:;
A P.. r .... l -PU/UlN3Z el~rás JX4rmlll!/erct. Egy eljárisnak null.1t61 t...'t.~z6lcgcs stlmú
""ramétere lehet. de mi\'eI II Vi.w~1 Basic e!'&en IÍpU.s06 nyel\'. minden ""r.l~emek
meg kell adnunk ~ IÍpus,k Al. elj;lcls tl'lrzsaJen. szereplll U\;l.~íWok ettI<hez ~ """,filé..
t~khez u8)...núgy fbhetnek hou;!. mmt birmel)".ms dltoWOoz.

SunJUnk cl egy kl, id6(. és irJUk lllOSI '" ~ 6.<+ pt'kUbóin ~ Di"ph.yM""''''Il'- )
eljár.i.s k6dJ'lt. hngy ~nnilyen Ü1.CfK'IeI rIlf'8ielenítllCSSOnk ntg)-w:r, Ehhe1. ~Z dpr.ht
képe$Sé kell tenn(lnk ~11"3. hogy eg)' k:lr~kterlánc t.ipu~ú parJu>6ten fogadjon. amclybt.'fl
a megjeleniten&S (I~ne\eI "djuk n>eg A DlaplayH.~ agai) elprb fru.;it ...~L v.'\ltol.aCl
Igy fog festeni
;'rlY4t~ ., D_ .pl.yH,....g.t8yV.l _."\le a, 'PII'I\l1
.... ·w..I~ to ~ W"b<lite' na....H .eQj.lflnh . . . . . z.. r
Die i ... rnteger
..o r i . l t o .
ou tput ,Tex' , . _18";"
Next I
"'" M
E>;r." rn6dosiU5t ,.tgrdu[l\" II Dl "pl.yH"s"'\lel ' eljlris ~- message (O~) nrvű,
:, ,inq (k:lr:.ktmlnc) tipus(i para~~ ,-ár kr. dj:Irb t~ lll. outp\ot ,
·w.. tt-c.e t. "lY .... bdte<br /,.- helyen, ami csak a benne 5ZC1"CPI6 ÚZCOCI I1>f'8ICleni-
t(:sére képel;. 3z outpUt 10= .....g .. kódol h.aszn~IIUk. amelY:l kJmom.1en ~ _ .... \l ..
,'lIltow pillanatnyi bt(:ké\ jelenit; meg

Ahho», ~'meghivjuk aDisplIlY'" ... g.. elpr,\s cun új ,'áltoz;lt!l. 3z .aUbhi


kódol: kelj írnunk

Teh:!! ha mégis ~ ·w.,leome tO my W.,btolt.,· (lzendd s,z",reménk a kl'pemy6n l.lmi.


:.lZ elj.ir:N l'OO$l m<lr ilO' kell mo.ghlvnunk

D I;IlayM~ .".: ·W.. I, _ tC' ~ ... ' U<bn':

Ilozzunk IllOSIló!Ire az új DhplllyH.....,ge( elpr.bru.k 3 ~'d eg)' OkbIt,


enne\(
~lTlel}"nek kunent.'\e 10kélelesen lTICgt.lI)'eZlk II 6.4 po!'k1ílxl.n Litonal, Au.al kezdjolk, hogy
léttd'KlZ\.mk eg)' Út ASP,I\"ET wetXlltbll SubroudneU!non2 .IISP>< riben Ahog)'
a Subr-out ineU!nonl .lI8p>< e5C1~ is tett(lk. hozziauunk "'SY !.Ibe! wdJe$ \'ezérl/ít,
,:output 3ZOOO!ií\Ó\-aJ (ID). ilk~\'C egy gnmbot (&.uoo ,'ez,..'rl6), Ne felqsiik ",l L(uehoUl;
a:t okbJ ....,.,d ~ a gorri> ellek esemrn)'k..~ sem. l-b mlndeuel ,"égezulnk, Itj.lk
be II 6.5_ pékUlxon I.ithatO kódot.

Amlkor ez! n oldali megtekmtiilk egy bOngé5zóben, Ug)-:ln;lZl ~thatjuk, mmt


a 6.4. ábr.\n: a ·w.,l ec.e to ~ web81 t,,' (Izenet rWgysl-"r 'f1C8JClenik. alatta pedig
egy gomb taJ:iJh:otO, lb a gOnDr~ lanimunk. a 6.5. ábr.l. t;lrCllnPt kelJ litnunk n)'okszor
II · wel"... to ~ W.. boit"- üZene!('''I, ilki,...., abU<! II gombot,
148 l t . . • ~I/:ASI'.~"'"

,~: :-la•• SUl>r{>Uti~.....z


Inheriu syn_.w.ob.VI.p"-

"
4, hot.,.,ted filI> raq .. '_dfIlyVal _nÓOtr .... Obj""t. IIyV.al a .....
_ sy.t ..... Ev......... rlJ.1I lI<Irt<ll ... M.'.Load
5, "'tllU•. '!".."t Strl"'l.!avty

"7, uhplayM".~,:'W.l~ _ tI IllY w..... Jt .. <br 1>'1


e, End Sub

",•• Prote<:'e<I SUb 8utt<mlSH.:kIIlyVal ...nder ..... )bj ..... t. 1!IyV51 e "'5
_ lIyn_.Even'Ar9al Handl ... Buttonl.Clid:
UisplayM' ...aq ... ·W,·l' _ t, -V W4t.IIlt&<br h·1
"••
UI
"" ~
HI Privat" SUb r "playM. . . . . [lIyVal _ _ ~" .... ,;trinql
H, Ui. ; .... Int~ar
a, F<)! • • 1Tt>4
11: ""'pue"",,, ,. _ ...
ll, tiex. i
U, End ,b
~O, End Clas"

Az eljárásoknak " IiiggWnytkntk tQYMI több pal"ilrnétan:t is lehel HB több ~.


terrvl rendelbz6 eljir"t IlIIltnénII; Imi. agysltIÚen soroljuk 1111, paramét.r....t és
t1pusubt, va&SlÓV8/ elvMasnv •.

MiOdIn 1lij6rás- és ~terhella"tolik lI!I'f ""uz".


.".jy _sony-
~tan ~ hogy., adjII il • IMI • P«IIl16oo l/: aIjíriSnak vagy Iüggvénynel
Két lehetséges ~ van;, ByVal és. ByR"f. Emek. kit ~1.ksszíNt " hatisul;·
na , ~ nímUt """ könyv kimen. A kŐll'f'l PéId;!iban l/: aIIJ*t..-r-tt
lll'"
Byval (1iOÚIr; SlInI"ItI bcI6Il rn6ds<wt ~~ Mival8l1/: allJ*telmaz6s.
és ~erat ~. ByV~ l t.ulcmót kNgYha~
• V"I$IJIII Web 0eVaI0Per beflaIvannfllllefvattCri:.

~rtékok visszaodása függvinyok sogltS<lgévol


Eddlll ~k eljár~1 Uuunk, ts h~zon)"1ra ki .....i IlCS;ak \':illyunk, VólJOO ["IOIlIOS<ln miben
killönbözneli; a Rlgg.'ényektl'il. '\os. az eI~r:1sok b Rlgg.-bJyek IUlajdonk~ '\ok
m,ndenbnJ h:isonIil3nak eg)'mist:a, Mmdkoen6 O:'I!Y~ fogc'í \'ezlorIbi s.:erko:U'I.
mino:!koen6oek nuJb \dg)·1Qbb p;ltlImflere lehet. ts mmdke!\ÓI. 3m1. tusvulp.1k. IltOII)'
csökkenook ól feleskges kód menn)~, & eg)'Ségekbe z;\fJUk 3 progr.IllIozbi
Iog,k.íl
I. 6ft • 1'1...,., ..... ~"". f

A f6 kü~ az eI.,:if'2jQk és fílgS',tnrek köWC\ u< 1108)';1 fiigg-.,tnyek "l.Ssz;&:Idruk


egy <l"rtékel. núg al. el)JrhOk nem, A 6_,. példiban cg)' 01)'111 :lisplayMeS84111O < >
eI~r:1s k6"ZÍ,6;6 néz,ük ,"cg, amely egy For ciklus <;cgí,~gt,:eI Jelenl,ette mell
négyszer a ka",k,crlo'lnck("'fl( kapott pólr~ml"l.cn M!"eI ~i,ssuatbnd6 (irt(ik!"e nem YQlt
S7.Ilk~, eljir.'ist ha5znJltunk. de mh letl ~oln:l a hclyze1. lu egy olY:1Il prlWanw>z;\51
logiJcll)6l szerellOnk HJlna modult készí'em. amely , ..!amilyen ~úmii:lSi Iu~ v<'gre,

AI ico<;kdJen egy pénlilg)'i ~timológ<'pel kt;szíte1,unk. ~melr be\'ill ad:llokk~l-


a j<'ltiJogkolcsön ~-el. a k"m;l.tl~bb;r.J
sth, _ doIgmoii. és fel:odau az ,-011, hog)'
mqpll:apiiS:l. a hau törlC>.Zt6rédetet, Ezt k .....,e<orilb mml 20 <000'111 émik d. és a kódot
köz"cdenül a webokblon "Ihcl~'ez"'" !Jul1on "c2&16 , " I ek escml-nykezeJ6rélJOe írtuk
Enn<!I modulszerübb megközelí,és lenne. lu a f..'nu progmmlogilcit egy mgg"m)'bc
hel)'C1.Ilénk, majd a ':1 ici c;(:ln('nykczel{ll,>6! ell a fUgg"""'yt hivn3nk '""II

fÚ&g\'/!-n)'ek íris;;,kor ludnunk kelJ. hogya filgg-.-ény"k nych"1:l.rt:I. ná1lileg klIlönhOtik


u elj:1r.l.;okél:61_ El6S2ör ls. a -, It
••. End _ul kuJC5.u.:I, .. k helyett a Fur,ct 1<,;. n f:n<l
Funct ion kJucssz'''"Ju, kell lu.>miJnunk. \li5('O:,",20'. núvel a filgg-...,.,)n iTtdtet
adn:lk ,Í>.Q;I_ meg kdl adnunk ennek" '"lSoSUltré5I éTti:knd<" öpus:;it. végUl pedig
a 1\Igg-.'eny t~ 1e1l)'legöCtl VISSZa IS kell adnunk , .. bm,l)'en ének.... - en'e ~gil
" lIeturn ku~

r.,,,::tl<' FolggvblyN_ I~r ... l al Tfw' , .••. P.r/UN'i ". Tfpu.' ."
_ VjaU.U!rt!aJTfpu.
Ut . .it~d
lItuttss::

I'r •• fr",.n
End Punctic=

A Vi • .".t~résiT{puS ad;:a mcg" flIggvény ~ltal v;,ssuadoo l-nek tipus;ii. AhQKY


:ll: djJ.r:í,;okn3k ug}' ~ flI!(8~i:nycknck ;s nulla "Jg)' IObb benlf:fl/'i par.1mru~T1Jk lehet,
A függ-.<en)'ckCl is ug).. migy hiVJUk meg, mInt az eltlr.1sok~l, aual al eltc",,,-wl,
hogy - Il'Uvd a flIggv,ffi)'dt éní:ket admk "i,ssu -. ~ flI8g.,.,!nyh",~t g}"Jkrafl
kifejezé:5ekbm ha.szn;il",k. p8<.L1ul íg)-:
tl1,. c,.t""r~ntl •• [h"bl.
~~'P~r",-)tl • ""'" __ Ily<::on(p, r, ti

IU:I. C':<I\puteMonthly,- .. t egy olyan fogg-.·én)', ~mcl)' h.~rom bemen6 éneket


fqpd, (,s egy Double hJlU.'U frt(ikei ad "issl:i, A fllgg....~ny :t11..1 \'iSSZól~docl eredményt
rendsl.cnnt eg)' ,",il!ozóhoz rcndcljilk, bir úgy;$ meg/tivhllunk cgy fOgg-.'ény1. hogy
U credmém'Í't nem ltasWIJUk fel-

r:Jllp.ltlM,'~-l.1y( ' alt. ti 'a vi ... ut~r".:i oirt"tet


_ fi~l.en klVlll .... qyj".
ISO II. féR • ""*ked61 II ASP.NEl-Q!
Írjunk mo:;!, egy oIY'1n fOgg\'rn~1. amely egy jelzálogkölCSön h3\'i lörleszt6reszlctt'1
.s1Amílja ki! lIa elkkrilettilk a 4. 6clb:1Jl benlUI:lIOU F imme Ideal c:ulator . asp"
weboldall. ~nnak fOfl':15k6djiiból egysrenlCTl .1tm.lsolh:ujuk a perfonnC"lc_CI ick
escménykezcl6l:" C""",,"t-eKont-hlyCon () neva új fOgg·:ényilnklx>. A függvény kMpl
a 6,6. péld1ha" l:ithat)uk

6.6. jl61118 A ~fI ,"',; I6rlesz/órész.lcM Irt<záfl/UÓ DJmpu/dlmllhJ)OJsl() frlFR',,;,'y


1: Priv .. t~ Puncti"" Coroput"XonthlyCost(P ". Double, r u Ooubl". t"•
.. Doubt~) . . Doubl.
2, 'Allandó érték IOe'lhat'roz' ..
3, Ccn"t INTEREST_CALeB_PER....'tRAll "g lnte<,ter 12
4: Conn PIIYMf.""TS_PEILYEAR .oa Inte<,tH .. 12

"
6, Di .. ut"P"rp"riod .oa Double
_.
7, ratePerPeriod n rIINTEREST_CALCS_PEII,..Y&I\R

9, Di", J'IIoyPeriod" .. a In"-"II"'"


10, PIIyp"riods. t • PIIYMDnS_Pu....yF.I\JI
",
12, Pi.. annualRat .. u Doubl"
13, .onnualrut.te . Ilath.E><pIINTIlREST_CA!.ClLPEIl_YF.I\JI •
.. M.oth.LoqU+ratePerPeriod)) - l
14,
15, Nm intPerp.o~nt aB Double
16, int PHPa~t (""th. Exp I Kath. Loq I ann""lJtat .... ll IpayPeriode I - 1)
_ • payl'eriod8
17,
18, v_o C<l<IIPute the toUI co<ot ot the toan
I" , Dim intperMonth u Doubl ..
20,
21: Di .. coetPenlonth a. Doubl ..
~~: costl'<>rllonth. fl •
_ i ntPerManth/ (l'l!atb . pow (int P<=rMonth. ~ • -PIIyPer .oda) )
23:
24: Return c08tl'erMcmth
2~, inel runction

A COIIIP\IteMonthlycoat l) függ"ény hlirom paramél.<.'It v.1r, amelyek mindegyike


Double tipus(!, és a filggv.my iltal \isszaaooU énék is Double tipusú lesz.. A 4. leck~
"mJék"zJldilnk. hog~- ~ jel:rJlogkökSÖt'l havi lörlesztőrészl{'l<!nek kimmítis:óhoz tl:\rom
adatrJ Van sziiksegünk. ~ jel1J:log!ute!lőkerés2(,re (p). a kam:uJibra (r) és 3 hnel
fUI"midejére (t). A COII'lPUt eMonthl yCo.t () filggo.'ény eX! a h.'irom l:ni'ke! \-!itja.
az !'1'Iékek alapj.1n kts7..'imilja ~ Me] havi lörleszt6n!sool:!. maid az eredmény! "iss1.l1~dja
a IIKUnl ut:lSít'is segitségével (N, sor),

A 6.6. példa k6di'oak 2-22. s<dt k~etlenOl a 4. leckében 4éSlitlln Ftna.ncbl-


Ca Icu t"tor • ""pl< oldal pe~tormCalc_cl iek eseméllyb.lelójéb61 veníik át
6. óra 0l'rogrlmolt ~ ~ ViaIIIII BaK: vazériobi &l8it_ttinl I 151

M<»t, hogy megírtl.lk a CanpuuMontblyCoat () filgg",én}1. meg.hi",haljuk II per-


formC41c_Click escm{,nykezel6b6l. amely akkor fuI le. amikor II felha5zn.i16
a weboldalon I",,'ó gornbrJ kaUillI. Az esemél1)'k,·zelőlJ.<,n az erede!i]{-g ide leu
S~l'Ilíl~SI a Coq>Ut eKanthl yCOBt (l m('ghi",~s;ír.t es<-'1i'ljijk (jj,sd a 6.7. példát).

I, Protected Sub performCalc_Click(Byval aoOnd"r ..... Obj"" •• Byva! a Ae


_ Syn_.EventArl/aj llandleR perto"'::alc.Click
2, 'A fI!lM..nnAló <iltal beírt ért~keket t'roló ,,'ItozÓk léu ..hodaa
3, Ol,. p ..... Douhl" • loanAaount. T"xt

.,
4,
5.

1,
Oill r"R noubl.
Ol .. t as Double
r"t •. TQxt I 100
IIIOrtv.~ .. Loonllt h.T"xt

.esulu.Trxt ~ 'Your IIIOrtllaye pa)llll<!nt p"r ".",th h S' ~


_ compute~onthlycostIP. r, tI
8, End Sub

A 3-5, sorban II felhasznM6 ~It:ll a hi(e)összcg. " kama(l~b b a futamidó mega~ra


srolg;l16 Tt!J[I!:k>x \'ere.-~ bt'ÍI1 l:nékeket beol\":l$SUk, é's II P. r és t helyi dllowkba
irjuk, majd a 7. sorban &.szd'űzzílk a ·Your IIIOnq"ge PIlYJll'!nt per OICIntb i . $.
braktcrlállCOl. illet\'e II COIl1puteHonthlyCo,t (l ~hal v~zaa<k>tl Double énéket. 6
ezt énékoll adjuk II re~ult~ ámk .. T"xt lulatdonság;1nak.

Hu Stri :t=·Tru,,· baállitás van éMlnyben, a 6.7. példában SZ8fepl~ kód hibát
vált ki, men a 3.• 4. és S. sOl'ban r&~&tt t1pusátalakltás tönanik sning--r61
(lOllnAmOunt . ""xt, ~ .. t ". Text fl OICIng-aqeAlllount _Text) Oouble-fll.
Ha a fenti beáHitást használjuk, a String típusú 6nékekllt a Convert . ToOouble ()
filggvénnyel Double tipusúvá kel alakítanun/(, valahogy Igy:
01", P ll8 Double Convert.ToDouble!loanArnounLTex t !

Mi a szerepe az eseménykezel6knek?
Ahogy az ~)Si'gbe fogó vezérlérI szerkezetek: (4forások és fii8IJttl"J'('k dmú r6Wcn
említettük, ~ Vl5ual Ba5i<:ben kétf':::~e egységb.- fogó "'elhll'si szerlcezel:ct talilunk:
~z eI~risokat ~ a fiJgg"o,nyekec Ebbt-n a Ie<.'ktluen ~rrJ l!ittunk pél<Ul, hogy mik&u
hasw:íJhal1Jnk eg)' eljárist egy ASP,,"JET wcboldalon_ v:l!amint megné1.IÜnk egy fOgg-
'-ényt 15_ de egy v:llam! nundktt példában küv;s ''Qlt, lényegében kÖllyvilnk minden
eddigi p(O\d~j~b:in 1=zn.1ltunk CSetIÚ'''ykezelliket. "lern csoda hál, ha ki\"állC5lak
vagyunk. hog)' aZ esemén)"kL'Zclók IX>f'llooan IJOgy.ln ilJcnck az eljárások b fUggvé-nyek
közé. Ahhoz. hogy en megénhessilk. elóször nézzük ~g a Page_Load esemén)'kezeJó
alakját 3 km-elkezd k6dbcln;
152 11. r6sz • Ismerbdá III ASP.NEl·t.!

p r(lt..,~ed
_ Syateoo . Evl!"llt ..... g.,
IlUb p<lge..u>ad IByVal • •m d .. r "" Obj .. c t.
Handl ... M ~.LOood
ByV<Il .. lU!

End Sub

Ahogya pag e J.oad es<'fllffiykezeló forrnljib61l~th:llfuk. az eseménykezelók valójában


elj;irások. és azérllervezték ők('{ íg)·. IneTt soh:l nem a(lIuk vissza "néket. Emellen
az eddig !áto« e5eml'nykezelők - a PilIlfU .oad. ilIe"'e ~ gombok Cik k esen";n)'k.,..
rel6je - kl... panllMerrd rendelkeztek, az egyik Qbj""t. il nl;'isik ~ tArg& típusú _-olt.
Ezeknek a p:lr:>m<:tC1'('knek a po!1tOS jelentése pil13namyibg rx,m fonlo/; ~ sz:\munkn;
a kés6bbi 6clkJxm rrelyebben elmeriilünk ~ velük kapcsolatQ!i részletckb.,n

Végül. megfigyelhetlÖk. hogy az escményke~ elj::lrlisok meghat1ro~s;I


il Handl ., .. . obJ.,kt Ulll. E .. esoény kóddd \'égz6dik. Az objek tll1>l. E$'emo!'ny az adon

eM'rrenykezel6hö z kapcsolódó esen,'::n)'! jelent;. vagy;" amikor erre az eseményre


sor kerill. az adol.1 eseménykezelO: fog elindulni A Handl . . n a kulcsszó, amely,k
gondoskodik az ~flynek n eserrenykezel6höz ,,,,16 kapcsoll'lsir61.

A feml f"jlegetés I("'rege, hogy az eseménykczclők el~1ráwk,


és "gy olyan kódmodul!
biztos't:!nak, amelynek vé8""hall~""rd minden alkaloaunal sor kerill, amikor dindul
a megfelelő esemény, amelyet a l!andl .." úradékban hat:irozunk meg.

Összefoglalás
Ebben n ór:íb'lfl:l Visual Basic '..,zkj(~; v-"rkezeteivcl ismerkedtünk meg, A ""zérlé~;
.;zerkezetek scgí~gfvcl a progr:>mok soros (slehenci~lis) "ég.rehalt<lsi sorrendje
m6d0síthat6. és a soronként; "égrehalU5 hdyelt feltételek,,,, alapuló '~~!lY ,,,,lamil)"en
feltétel tel;esOI~lg ;"métell \"égreha!lá.o;t alkalmazh:tlunk.

A VISual B:.sic feltétel"" 5Zcrkezeteinek alapÍ":lz If UlasMs. Az If ulasitás egy fehe-


teh kl"kel ki. és ha igaznak t:l1~lia. végrch.3jtja a 'rhen kulcssZÓ! kÖ<,'Cl6 ut3Sí~L
Az If utasíl1sban aZ lLTh~n részen kí"ül Ehelt 6; Els e :clradékokJt is alhlm:lZha·
lunk.

A \ r,sual Basicben kűlönf~le ciklusszerkeZ<.'lek is a rendelkezésünkre 111nak; ezek


k<>zül a két leggyakoribb a For 6; II Do ciklus. A For ciklus egy egén éf\~ 1n1 ,'ihozó
segitsé~\'eI mOködik, amdyhez kezd6énéket "",detünk Ennek a öklusv;lhoz6oak
az éltéke a ciklu,l.(öl7.S nunden lefuth:! Ulán nő. és a etkJus addig isntétlődik. amig
a v:!ílt0z6 éf\éke el nem ér egy megadol1 éf\~ket.

A Do ciklus 1ltal!lnosabb, cikJus\-:'lhoz6 alk:drn.u::i;-.. helycu (.'gy~lCnlen addig ismétli


a ciklus töns<!! , amíg egy f"hétel igaznak nem biwn)'UL A Do ciklusokruk két fajl:ii3
létClik aZ oI)':In Do ciklusok, amelyek addig ismétlik a ciklust , anúg egy feltétel
teljesűl , és azok. amel)'l."k addig fUlnak , amig" fellétel nem igaz.
6, ÓI1 • l'rogr1mok HrrYft6A I V..... s.k: VW16Si ~ 1153

II fcjezedxon megi5merlo;cdlilnk az egysfgbe fogó "ezérl6;j swrkezClekkel i5: az el~~


r:isokkal b 3 függvl-nyekkeL MtndkL"I161I'1K'II'i\'é leszi, hogy egységbe z~irlunk egy
3(1on progr:lmlogikai egységei, mindkettőnek null3 vagy löbb parJmélere leJK'i,
és mindkeu61 ugyanabban a formioon hívhatluk meg. II ken6 köZÖlt az 3 kill önb!;ég,
hogya filggvl-nyek mindig vissz:ladrt:lk ,-abmilyen átéket, míg az eJj:ir.bok lOOha.

A kö\"elke7.6 ÓT:l lesz u utolsó, amelyben kifejezetlen a \;"u31 Ba!iic nrel,,- ál jelenlésl,,-
n:I\-a1 foglalkozunk. Ell követ6en flgrelmiinkel az ASP.)\'ET ,,"eboIdalak IffML ré;zére
fordítjuk.

Kérdezz-felelek
K: Mi" InUónbsés "Z djárá.Wk '" "füf!,2/-M,.I" l/Jl...""ÓI/?
v; Az dt:ir:i'iOk k a filggvéf1yek egy:Jn'inl cgysé'gbe fogó vezérlési szerlo;ezetek, ame-
lyek nulh vagy löbb par:unélcrrcl renddk(>"lhetnek, de" filSS"éf1yek mindig
visszaadMk "ab milyen értékel, mig:oz eljár.isok soha
K: Mi (l SZ<'n1JP = d.frlnis- i':$ fiiggl.~'ymcg/,(l/ározá$(). c4!-j<~, ",/áJ/mid Pro/er;Ii!d
~"'8.t' l'riw/e 1n,I=ön(lk! Fdtél/c>IIlI szl1~ Am/koreljárást ~"'8.I'fil&8'~1)1
inll/k, melyi/iCI kl.'lI ilas:málmml.:?
V: Az elj:lr:hok megh:lI:lro11isai a legeg)"'zenlbb formijukban CS3k az elj.id!i nevél
és Ix-men6 paramétereit, míg 3 fUgg'>énYIlIt.'ghm:irocisok a neVei. J paranlélere-
ket és a vissz.~térési énékel is lanalmaz11ik. Ezeken az alapkÖ\'L'Ielméf1yeken
kí\'Ű1 azonban killönfélc to"ábbi kulcsszavaka! 's alkalmazhatunk.
AZ ilyen kulcs.s7.:r.~-ak egyik csoponi~l az e1bésmó<losjrQ kll~(l/y"hlkotpk
Ezeknek a Sub vagy a Funct ion kulcsszó elé kell ken1lniük, b a kővdkezők
lehetnek. Private, Prot.ected, Publ ic, friend 6; protected frlend.
Az el(;r{'"Sm6dositók azt hat.iroz11ik meg. hogy m~s oszt.ilyok. iUcwe az adolt
ooxtMyból sVinnazt:llou O<S.Zt:ilyok hogyan f/)rllNnek hom az adotl el~rjshoz.
illet\"e filSw.ényhez. A könyv kődptldáil».n n ezzel kapcsolalos résZldek
nem érdeke;ek 3 _11irnunkr.l, men a sajil tagfi1gg\"ények lr:ls:tkor nundig
hasznáJh:jljuk a Privatll kull.'5SZÓl.. Ezt az eI~mÓdosíl6t bdn"'lJuk. de ki is
hagyhatjuk, men ez az alapértchnezé5 is. (AZ CSI.'T!lénykezcl6knek azonoon
milllll!/IkVJpJx'f! Protected (v4!'Clcu) elftést1nek kdl kllnillk. A I<,gjobb. ha
hagyjuk, hogy 3 V~u31 Web Developer 007.la It:lre 3 ~:clrnunk"J al. C$Clnényke-
zel6kel, és nem nyúlunk 3zok elérésm6dosítóihoz.)
K: Amikor nU"gllimlJk egy fiiggl«1)1.feltéllemJl 'X"/wltozóhoz ~II n.'ndelmlnk
a dssztlll'rtsi &téki'l'
V: A filSS"énrck mmdig "issz:tadn:lk \"Jlamil~'e11 énék('1, amil állalában \"~gy egy
kifejezésben hasmálunk fel, "ag)' egy változóban t.irolunk, A függ',enyek
"jssza!~ési énékét azonban nem kÖlelez6 fclhasználnunk. Tegy\lk fel pl'!diul,
hogy "an egy s~veCu8t""",rlnfonoation (név, életkor) n(,\'\1 filSS"/)nyünk,
amely bemen6 para ml-terlo;ém egy ügyfél ne"ét és életkocll ,'árja, és ezeket
154 1 LrMZ ' ~ II ASP.NET.-teI

az adatok~t egy adallXizisba menti. A ffiggvény vi.'iSzatéré;i értéke lehe! egy


DateTiJlle IÍpusú dlloz6. amely az ügyftl adat:.linak utolsó frissllésé1 jelzi.
bizonyos ('Sl"tckbcn aJ!OIloon erre az infonn:\ciOO ninc; szilks.'giink. csak annyit
szcfL'tntnk. hogy az ügyfél ad:JW, frissill;cnck. nyen est.1ben egpizt"I'Ik"fl
meghívhatluk :.I fúgg"'''nyt. é!I figyelmen kívill h~gyha(illk annak visszatér6i
"""k&!. Ezt ugy érhetiük el. hogy a fOggvényt Ílgy hívjllk meg, mintha eljár::ls
lenne:

SaveCusr"""'rl n!or.eot iOn ( • Se >t t '. .~ I

Ismétl6 kérdések
l. ..A fe1t~e1e'S vezérlési szerkezetek m6d0:si(i~k a program végrehajtási sorrendjét.'
Igaz vagy hamis?
2. Ib egy üzenetei ötször szeretnénk kiír-dtn;, ha elmult déli 12 óra. milyen
"ezériés, ~zerkezetl'1 használhatunk?
J. AZ al~bbi For ••• N.. xt; ciklus végtelen ciklus?
vi,. 1 as Int~"r
For i _ 10 to 20 lITEP -1

Next i
4• ..A fOggvén)'eknek!!os az eJjlr:lsoknak I"gall!:>b egy bcrncn6 JYdrllméterrel
kell rendclkelniil k. - Igaz \':lS)' hamis?

V~aszok

l . Igaz. A ~mit6gépe:i progt':1mok abpéndmezé:s SZerint sorlYdn hajtják végre


az Uta$ílbokat. a n:zétiési szerkezetek nonb.~n rugalm:ls:lbb végrel"'ltht
leu.nek IehetÓ\·é.
2. K~ vezérlési szerkezetre lesz szükségtink: e8}' feltételes szerkCZl1re. anlCly
megvizsgllja, hogy elmúll-e 1200. é5 egy ciklus .... amely az ü;renet öw.örl
kíír:\s:lr61 gondoskodik A kód ''abhog)' így néme kí:
Oiltt l as Intag .. ~
If Dat .. T!_._.Hou~ 12 then
Fori_ltoS
UbelVe,,"r16.T .. ~~ Io~ 'Thi. la "'y meuaQ'e to you.<:br~'
Ne~t l
End If

3. Igen. A CIklus "égtelen. mert a ciklu.sVlÍlIoro értéke minden ismédOd6nél l-gyel


csökken (a GTEP -I utasiw miM\). és így a \'áltoző . a melynek ke7.dőénéke 10.
soha nem fogja el"rni a 20 :clróénékct. ami azt jelenti. hogy a ciklus 3 "tgtelen-
~gig fog futni.
4. Ibm15 M. elJ:oirhokruk H a ffigg,.-m)'cknek nem CSIk egy \'ag}' több. h,IOem
nuIJ3 p;l1':lInélerilk is lehel. 3 p;:Il'3mt'1erck nem súmítanak elengedhctCllen
kÖ\'Clelrnénynek

l. A matematika; filgs..-ények egyik swk1.-.inyos fJILlj:! a jukJorlOflS fil88'.:"Y,


3me1r egy r, ~ tipuSli bemen/'l JXlf"Irné!.en \'.11'. amely .....k énd!c l I'ag}'
artJdl n:l.8)'Obb. 6 U n' In·l; •...• 2 • l ktples. eredményél sz;lmilf:! ki
A matem:lhka; lcir.boklxln 3 fakloriáh.-t fclki.1ItÓIClld jClölik (nl l.
[<junk egy Factor!all) nevíi filgg'>'én}1, amelynek egyetlen lnt-oer tipusú
jXII1utll:tCn: ~an. o;.; esy sunt.,n Inteqer IIpusú értéket ad vissl;j, amely megfelel
3Z ~13dott p;ll'3méter faktori:1lisárl:l.k! '>egit,,(,gképpom megmutattuk _ körOlbcl!ll
hogyan keU majd ki~wle a filgg\'myOnkn."k
Yllnct. " 'acl 01'101: ,:_ ... Integer . a~ hiteget
.~ :IOn az III .trdltét kl.u.i&oit6 kód
, Itt adjut viasza az n! .trt'k~t
End Punct '"

"" •
,,, • ,, • ,, ,
• • , ,• ,
"" • ,• •• • • , , .• ", • UO
"
•\llUún megírtUk a Pactorl,,1 fil88'-':''II)1, hozzunk létre egy pa,,~ _Load
e.em&Iykczel6t, 3me1y meghh)a a filgg'>·~n),. és It'Ie8If'IenÍll3Z l' h Si köz/lnl
énekek..,,~· ASP NI!T ...'dx>kWoo
Tipp: A Factorlali] filgg\'énynek egy akluSlizerkezetet kelll;ltUlm.nnL:l,
amely 1-161 n·lg ltalJd, éo; minden iSlnt'llé"ll'I.Ill'!:!"ZOfOzz:t egy változ6 értékl!!
a ciklusI'.1l1ow én"kévcl
7. ÓRA

Objektumok a Visual Basicben


II leebe /(ltfalmából-

• Az objektumok l!s "l'. nszt.1lyok kÖZÖlt; különb:;ég


• Objektumok létrehozás>
• Az objektumok tulajdort-<clgainak bdllil~5;I
• AJ. objektumok tagfilgsvénycinek meghí\'3!;:1
• Al objektumok éWményeinck kezelése
• Objektumok Iélrchozás:l :1 .Nh' kert'1renruzcr 05zwlpiból

Az 5. leckl'ben aZl tárg)'lolruk, hogyan haszn~\tl:1tunk váho:rok,u él "ulvelcteket


:I. Visuallh!;;d:>en. a 6. fejezetben pedig a vezérlé:li :;;zerkezctekkel- az rt ula"-';I:<>;5;lI,
a ciklusokk."I1. n eliJr:l50kkaL ille!:vc a Függ\'ényekkel- ismerkedtünk mt.'g. fl. Visual
Basic nyelwel kapcsolatb:Jn nlég egy font06 dol0gr61 említést keltl<-'fmiink , mid6n
mis tén\jkkal foglalkozhatnánk- meg kell vi~gjlnunk, hog)':ln haszn111\alunk objek-
tumoieu a \'lSual Ba~icben.
158 1LrMZ • IInwUd6IIZ ASP.NEr'"

A 2, Ociban. az ob;ektumközpontú programozh abppiook Urgyalb:tkor cmlol~1Itik.


hogy al obtektumkőzpomú n)'elvek kt»:pomi deme at cbjdltllm, :Imet)' egy oszt,j/)'
egy ptkUnp_ Ebben:lZ Or.ib:tn Ú}I:t meg\"l.·.g.dJUk aZ ~mok é5:IJ: O6ll-1t),ok
Iupc"<)bLit, és an is megno!-1.ZIik, rrulyen szerepet lóllenek be .. \;,wl B:15i1:ben,
:I NEl' kert.1reJ1<1szerben, illetl'e u ASP,NEl' ",'el:JOId:dakon.

Akir hSllioon I'agyunk vele, ~k:lr nem, a kor.lbbi fejezetekben tilOU fOfT:1~kódokban
I1lJr löboréle objcklUffi<)( is hasz!1all\l!1k. A:J. ASP,NEr Wl-oes vezC!-rI6l ~Idlul kil'i.1d
l'\l,lkal objI-klUmok 3 fC>rrlsk6dlXIl"l, Amikor bdllilJuk egy ~bel wwrl6 ,-,,,t IUlajdon·
s.1gal, VlIgy "","gírjuk eg)' Bunan "ezlirl6 Cl i c k C:semtn)'kezel6jét. ob,,;klumokk:al
o<>IS<'l'.unk. Az objeklumokal ~w\e<; köfben alblmawk 3 \isuallbsichel hasonló
obtektumközporlllÍ progr.omozjsi n)'eh'ekben, eu'" eZ alénlll IOC-g("; n ab~bb
\"~g;A16dbl

Az osztályok és az objektumok szerepe - még egyszer


A 2, I«kében röviden ~uekuueuak lIZ obiduurnkö<:pontú (oo,ektumonen~h) progr;a.
IIlOds alappil. friMit5ilk fel:t rnem6riink<l1 n objcklurnközpClnllÍ progr~1TlQÚ$ egy
oIy~n progr~JllOÚ'Ii megk:özelités, amdyben a progr-~mozasi nyelv kOl:ponti eleme
n obj.;,klUm. Al. objcklumokn:ok taWllgg.'l"ll)'dk. tulafdonsigaik 6; eso:.,nEIl)'elk \'annak
3 lulaidor\')jgok haurozz:ik n><"8 n objeklUm !íJlapc:dl. 3 ug!Ugg\'C!-nl'ek \l'Jlamllyen
műveletet h.-ojt;look végre, az ~'ffi<.'nyck pcthg ~1t.'-lL1ban ilbpotv:tltoú5<:>k:1t .ibrM.oln:lk.
\':Igy:lll Pt"IZik:, hogy \':Ibmilren mű\'clet llll"lll \('gbe_

EmlékeJ:hetíri. rt hogy. 2, ItI'Z'tben IZ objektumlOlponn'l pI~t IZ lIlIIÓthOZ


lIasonIltottuk. Ew lU'IÓMk O/VIII ~ vamak, mrll • tipus •• mOOeI YI9Y
allin; eseménya a híbm YI9Y IZ Ibleklört6 b·...pcs#n; tagIilggYjnYIi pediv
• gánwIM, I hBtrBrnanel. I ~, " Igy 1Oribb.
AJ. lUIGI leIrÓ ~ tagfiiWrinYIt " ~ ÖSSless6gt II O$lI&y, mig
IZ alt6l19'f lorW't ~ - jMldáJllI9'f 2002-1'.1 mid Honda Accord - IZ obtKlIm,

Az OSztályok oIran elVonl elen~k. ~nlt'lyekb6l konkrl1 objrktumokalllOlUnk~,


Az O!>;t[jlyok és az objt!l«urllok köZÖl!! kapc!lOlalOllobb:on n~ldjük, 1101 qo- wmo-
Iógépre gondolunk, A sZ:lInol6g~pnek olr:llllubjdomágai k'lletnek, minI az ct"m
löllÖnstgi szinljle, a kiJCIz6n q,pen nll."gJClenfletl sZ:.Írn, \':Igy az Uloljil'::l bc\-m m"vek'l.
olyan tagfilsg\'én}'lei. min!:lz ~d;1s \'agy a kwonis. és olyan esemblyci, mint
~Z utOlsó ffiÚvclet l<'Jr1é5e \'lIgy a kikapaolis_ l lJ. leillünk. és leirjuk a 52lrnOIÓgq> összes
lubjdom:ig;ol. tagfilgg.-tnytt es aeménytl, ól kapoa lisu megfelel ""'~ eg)' OSzt;ilytUk.
ank"ly m'Ol1l fon-roban ir)a le, nu az a ~I1'1OI6gql, é< mil <SirU\I '~,h-án\'aló:ln nem
konkli'l ~br:i~ \'lIn '\W, hISZen a 1001 nem h:a$zrUllwjuk ama.
eg)'
hogy lusz;imil9.1k rnor><iJU.k a 195-1 b a ""8 5Z()fZ;I1;U.
1, dA • C!ijekh..... V1MI 8 ,,';,* 1159

Az obiektum ezzel szemben az ~Iy konkret "bdzoLis:. A k<ll1lcret mmol6gép,


amely I't"f'IdelkeZlk ,n ~l)' ,ubt(lons:.ig:.i""J, IlIgfOgg... ~nye"'d éi; esemén>'('I,-eI,
egy ~kt\Jm, amelY;ll; ~Iub ~br,.ízoh osn~ly egy 11&1(111)'0.

ÖUzefc9alva, II osztily agy elvont meg/latárDÜa: I Umogalott tlUfdOndOOk.


~"~ek~". Azobfektr.rn me! $lII~
II OSZtMY -UY ~,,..: kookIit .doIog", ~ ~ ~
~ m'lIhM..~ is 8rTIItYnek -"•• )411. ~

k objKtumok szerepe az ASP.NET wobaIkalrnanIsokban


A kodhbiakb61 cml~k"zhct(\nk, hogya .NEl' ketetrendsttr rengeteg osn~I)1 lan.llmal,
amelyeket mindenféle efl", (t"lhasznilh:llunk. AZ ASI',NI:"T okblakon 1""W\ilh:.tÓ wd~
,'eWióket p&lául k,,'eId '*Ikül egy--qry o,o;uly jdk;;pezi a .NEl" keretrendszert)tt;

A 'I:.T keretrendszerlxo oI}'3n 0&Zd1)'Ok is I:I.Üllur6k, amelyek lehetŐ'> ....Hl:Ik


ekkuonikus I""'e\ek k\lIdé...:.1 a ... etx:.kbbkr61.:oa.;ok klol\":lsU:l. egy a(btbJ.7.1Sb61.
kepek ~t. éi; igy 100';ibb. Az ASP '\n ,,~Llk f~ rész~ben lehJt
a ''"ET keretrend5zer leglcülönféléhb elemeit hllSW.:w;.j{halluk..

ANl'l' ke""rend~~er egy OSlJ.ilyának hasWl3clhoz eI&7.őr lro-." kell homunk


egy oL>,eklUmot a megfdck"i 067.t.átyb6l, :l.IlIely IlUuln\;llla ~zokalll uoJg1lullsokat,
~meJlekre mbég\ink '~n lb mir lTK'8''3n ;l1; ~tumunk, szűks-'g 1eI~ d. hogy
bclllil9.Jk ;lnI1.:l.k egyes tubjClonslg:.il, \'3gy meg kdl hl"nunk biwny06 ,3gfugg....!-nyeil,
~Ietve escmlnykezcl6ket kdllltoehoUlunk:ll; ob,eklum egyes oemmyedK'z,

Ahog)' a 13. (ejeuud kezd6d6 r6dJen Lilni fogjUk, al A."P .... ET D:1I3Source "etM6i
IdM.'l""é lorik, hogy eg)~llrn somyi kód m':g"i~l '*Iköl doIgm;p;uk a(bth;iruokk:o.I.
~h:l awnoon "zulL'iégd progr:unozni is t'8)' ad:I!I:dti5 ~dlt:lin:l.k déréJsl,he~. E~ ul6bOi1
ug)';',n nem d'lW~Jiuk ~ könyvlxn. de nem ~fl. 11:1 ludjuk. hogy ~ .l\'ET keretrendru'rben
:W1l'IOeI adut:d.zi.<;ok kezc:lb(me szolgáló omaly léteZik. p8díul n SqlCc ,ion.
n .sq)L~!>d V3gy:lZ SqlD.!ltaJ ~r,

Amikor oo,ekrumokkaJ doIgo!unk, nfID' feladat Ulr;I 6; ujra felbukk:,":

• l'éldllll)'osilds- Ahhoz, hogy egy objcklUmot h.asznJ.13!OO \'t'I\eSSÖnk. ~re kdl


hoznunk egy I*1di11)" ~ kid.nl ow.á!>u6'- Ez egy olpn.sz(l~ ~, ~mdyet
nundig meg kelllennOnk (egySZCT), anuk.,.. egy ~ktumra \".tn mlb(1jOnk.
I
160 J. rMZ • lImIfkedM IZ ASP.NET'"

• T.. lajdQ.l$ágértékk bffillíllisn - Nem minden objektumnak ''aJUl.1k tubjdons:1gai.


és ha vannak akkor sem bil.lOS, 11ng)' igén}-be ab.rjuk venni awkaL legIöbOször
3wnban »;iiks(oges egy OOicktum ruI3~g,linak lx-.'illítása- ernJ~keVilnk
';"'\SZa, hogy a tulajdons:ígok olyan énl'kck, amelyek al. objektum ~1!apOCit iJjlk
It'<, egy c-nl:lilek kül~ ha$Zl'L.'llhat6 Q5zt!ilynak p<'ltU.ul olyan rulajdons:ígai
I...hetnek, mint:l ~'eg. 3 1Ji'K)'. a ctmzCIt. a feladó, és igy to\':11>b,
• Tusfti88'~II)'f'k mcgl>f~'lÍSll_ Amikor efff obJektununal dolgozunk. rrundJg annak
egy ""gy tóbb !:Igfilgg"ényé1 hi\;uk rTK'g. Le\'dez6 OSZLáJyunknak ~Jcllul lehet
eg}' Seml (: - kill~ - nevú tagfü&8'~}'e, amellyel ",lkiildht'lJÜk az c-nu,lt
T... hát ha le......1et Sl ... relnénk küldenl ...sy ASP NI:T wclXlldalr61 ennek n osztály-
nak a ~í~'d. elöször péld1nyosítanunk k... ll aZ Q5ztalyl, ma",l be k... n
~lIitanunk a szöveg, tárgy. címzeu, feb.d6 és.ms fontos tul:ltdonsi8"i!, \'~gill
pedig meg kell hívnunk a send () t:lgfilggvényé1,
• Esemel1ykczelók l&rellOzdsd - A tulajdons:ígokhoz ha5Of116an az ~yek
smcsenek jelen minden objektumban, és ha igen, akkor sem l>iztos, hOfff
h..$ZI'L.'llni ahlJuk 6Ict'l, \;<'h3 azon\.>;m csak akkor akarunk funatni <.~ adon
utasit:!lsson. ha efff bizonyos ob)eklumnak egy adon e:;emény... bekö,'etk"'ljk.
Ennek ell-r~hez 1é1rc kell h07Jlunk egy c:o;eménykezcl6t, amelyt'l n objektum
megfelel/5 eM'ményfh.:z kapoolunk Erre JruÍr I;juunk példikat 3 kor.lbbi kckfk-
ben. amikor cscrnényke7.el/5kt'l munk egy Bunon vezerl6 Cliek ~mfnyéhez.
ilk1ve n ASP,l\ET oId:!laink Load eseménye szinIára

Az óra IlátrdJe.'Ó r6:2~n;l fenu négy febdat Visual Basic nyelvu ...égrehajtás:\hol
szOk5tges nyelvtannal ismerkedünk meg,

Objektumok létrehozása
EmlékeZZlink \'i~. hogy 3Z osz\j!yok elvon\ megh:u:irol.isok. amelyek az osztály
~1!:I1 nyú~oo 5201g~lta\mkat soroli~k fel. A tubjdo~gokon, tagfúgg ... én)'ekcn és
escmfuyek"n ]Úvilln OSZl,lhok letrehol.ó függvényeket. úgynevezett kt:mslruklorokal
i5 !:Irtalmllznak. A konstruktor egy különleges filgg\'ény, amelye! al'. osztály t'fff
példoinyin3k l&rellóci$ára ~Ulálh3tunk

A fejezet egv későbbi részében pontosftjuk, mik js arok a lagfiillQ'linyet. egyel6fe


azonban elég. ha a tagfiiggvényekre úgy gondolunk, mint egy eljárásra vagy
lüggvényre. A függvénvekhez és eljárásokho.! hasonlóan a tagliiggvények IS
prowamutasftásokat fognak egységbe. nuRa vlIgy több paraméteriik lehel. és
értéket is vismadhatnal:.

A konstruktor neve mmdig megegyezik az o...'I:tályáé\'al. A:l. Sqlco,""",oo. amely egyike


3Z adatbázis-kezdó oszt;'i!)'Oknak, ptlcllul az Sqlco-nd (l nevU konstruktomI
renóclkezik.
Objeklump{:ld:lny létreho~sáhm. a következ6 formájú kódol h3~"Z~lh.1tjuk:
változó New Konstruktor()

A Konstruktor ne\lll konslruk!Of egy Konstruktor o:sztályű objekturno! ad vissza.


Mivel a Visual &!sic erősen tipuSO:l nyel\", a vJl rozd tipusának abba az osn1lyba
kell t;lnoznia. allle!yikn~k a konslruktor.ít mcghf\1uk Az. SqlCWllMnd oszWty
egy példányárulk létrcho2..1sához például el6ször egy SQICc-Mld tipusiJ ~j.ltoZÓI
kelJ ~leu'e hlmunk:

A konstruktor ~haJ "isszaadol1 objektumot alctn ehhez a v~l!0z6hoz rendeljilk,


II(VCo<IIMnd - n..... SqlCoalMnd I)

Az első kód egy my{:oQIa>olnd n<!\-if, SQICoaaand tipusű vMtoZÓI hoz létre. a m~sodik
pedig al. SqlCOImIWOnd (l konstruktor ~lta) vi55zaadoll objckwrno! a myCOIID/Ond
\'áltowhoz rendelI.

ErnIékeuiink vi$WI, hogy aMaZ. hogy egy objei:;tumot h8Sllléíatba vegy("wlk. elóSlÖr
agy ob)e':;tump4ldányt kelléttehoznunk. Ezt 8 műveletet hívják példblyosktJsnBJ:.
Egy objektumot Igy példiinyosfthatunk:
Di .. változó liS tipLI"
változd N".. KonQtruktorU

Iv. illábbi k6dsor ugya!MIzl a tek szolgálja:


Pi,. változóNeve ... tiPLIS Ne ... ~(ln8tru!<tor(]

A fenti SqlcOIIlIIlI.nd-péld6ban tehát a kódot így is felfmanuk volna:

Paraméterezett konstruktorok
Az eliár;i~hoJ: és filgg..·ényekhez ha50fllóan a konstruktorolt:nak is nulla vagy!öbb
p;!.rnmaerilk lehet. sót az O$2;tilyoknak eg)oo több konstruktoruk is Id>el. A p"rnrné-
terrel rendelkez6 komtruktorok: pa~erei ~Ital:íb;m különféle tulajdooságoknak adnak
kezd6értékt.""t. Az. SqlCoamand oswtl}"nak például egy par.lflll-tcr n~!kilU, és egy k"rnkter-
l:inc tipusú par.unélen ,':'író kOOSU\JktOfl'~ltozata ls laezik. kl ds6 az ~kmm egyetlen
m!ajdooságiin3k 5efTl ad kezd6értéket. míg a má.'IOdik az ~t.1c1oo k;J.rJkterlinCQI. az 0b-
jektum C"""",,,,~"I"ext (parnncsszö"eg) tulajdonság;loo írja

Általánosságban. mmn ~agfOWfflnyne~ ((gy a ~onstrukIOma:; is) lelleI


több vákczBla, amelyek mmdegyike I"lIás..más szárnY bl!men6 paramél&rt fogadhat.
A több változilltlll rendeJkezó OSlIáIytagfüggvénY1lket túlterhelt tlJg/üggdfrfeknek
nevelik.
162 11. rMZ ' 1IrneIUcI6I. ASP.NET-tII

Al. tgrnél több pgr.unél:errcl n ..ndelkez6 korntruklorokal 8)-:Jkr:tn hasznil~k JmII.


hogy csökkeni.5&: a rnegir...d6 köd n~)~. ptld:íul "'" Iéire ~ IIOlOi
egy :~lt'.-nd~. és be szeretnénk illit:,"i annak Ccoraoand'l'n;t tul:ltdoo-
'o;Ig1I. cl\lltg:lZ aUbb! hi k<'xbon kellene imunk,
, I. ooyC"...."" a. :~l( -..nel. N..... ,q: uj l
ooy( . . .nd. _on~xt ·val . . !\y~ frt.~ -

A karJkt"r1:1nc tfpus6 ]XlrJnltlcrrcl elljlOu konstruktorv:llt0Z.1Ib:1 II nonoon a kl:l sort


&SZ<."\ '011 ha lIuk:

Dl. ooy( _n(l lia SqIC>MMnd N_ iql _n.cIl'vald,.ily"n fn'l<"


omá/ynak ~ több konftn*.lOII van: egy param.!1ef n6líiIi. n
A legtöbb
SlWnOS másik. ~.. "lY. kttt6. l16fom. niov vagy rMQ több pItIIl16ltfTt1
~ A F*Ifl16t. n6lÚIi ~lJUktOlTll r."elm... t ~
.b:wIstruiJort.enr SlOitat. ~.

Objektum tulajdonságainak beálIrtása


Miu!:ln l~hOllunk eg)' objektun'Kll. soks2.or amt van szükl;l:g, hogr beilIllSUk anIUk
egy(''!llulajdon~gait. Egr oh,cktunl tuIJjllol\$igall'a ~ kővelkez6 formib:ln h!valkm-
halUnk

lu o/Jje,U"",V41 tozt! al:


al: ~kturn \'Jlto;Wp, ''agyis:lZ al:lbbi k6db:óln pl:kUul
alltfC_nd,

I _. ~n.CI . . S<llCor.and
ooyCc.un" _ SI,IIC ond!

A "'J.jdons.f9H~ al: driTli kAin! tul:l~g ~'e_ A IUbjdc:>tW.gok:i1 ugyanúgy


IlilSVIJlh:ltjuk, rrum a \'llloWkal; &léket adl~!unk nekik, tipusok lehel. b kifC!C=ú.-
ockben '" ugyanúgy fc~lh;IlIUk 6kC.>t, milli a v;iI\OZÓlW..

Rendszenn! cs:tk egyszer adunk &Iék<.i <''8)' lul~jdons:lgrulk. majd meghívjuk az oI"e-k·
Ium v;llamelyik t:Igfiiggvény(.ot. 11"",1)' felh3SW~IJiI a lulajdonslg álkk(.ot. 1'é-Id,1ul ha
egy e-mailt =ménk kilkk.-nl <'"8)' ASI''\1:.T oI(L1Iró1. a MailMeollall1! 0I>Z!ll}1 haszn~l-
11.lIJUk Amikor IéIrehozzuk ennek n ~lplltk egy péklán~l. több tult~got is be
kell.:l.LliCUlunk , pé:küul a From (fe\;0d6), ~ 'to (címzett) \-:Jgy a Subj ..n (~) lUlttdoo-
o;jgolt;u. Az alábbi kódrészlet azt 5lernltlten. hogyan hozh:upJk ~ az tmIiten OSZWY
egy p&Un}":lt. ts hogy:In allith:lljuk I.- a !ubjdons:igaj(:
'1'- .... ':""II ... \!. 0II2~61y "'h' ~11A11Y.t. It léueho~u
D-. 1OY"-1lM"....\!e aJ[ .... 11"""... ; • • _ ""11".,.. .....\1'''11
...
'A Fr.,.. To. Subleet •• Body tuhjoionaA • bdllhÁaa
1IYI(a';H"....... g ... Fn,.. • ·v"t.k"pelda. eaao
IlY"" l : Heu.ge . To - • val.Hip" Ida. "OOO·
1IYH411M.,•• ag ... Subje, "A levél tjrgy.·
1IY .... 11!!. ,nge,Fr' "11<>1101"

Nem lTIIIlden tlllltdonsio irható vagy oIvasIIM6. Egva OSZtMYOk c$ak oNWlltff.
ÜtJf YlIII'( C$MC tMt6t1td jeIihk nwg ~ ~iIt, dll l1AetdOn-
"vol ~ tÖbbIégtI matjIi B ~ It. AIrikar új OSZtMYOkbI 'iIgV
tta;cbilillokkll ~ meg.,eIIznI,....1wI ~ C$aI:. otv.hBt6
Y1IIJ1 csak í1Iat6.

Objektum tag!üggvényeinek moghfváse


lu Qh;dnum<;>k ClgIllSsn::'1lyen ugyanúgy hivjuk me,S, mint rlki5 elj;:Ir:isolw ~ fUgg."t-
n)"cket. azz:ol ~ kJv~dld. hogy a1; otJ,ektum ......... &lek, amelynek II ugf0SS"ényél meg
~nénk Iú\'ni. meg kelj dőZIIIC a ugfilgg"'~ny ......... tt Al. objektumok ugfilgg.~
O)'L1f1ek meglU\";ba teh,,1 3 kÜ\-ctkcző abkOl: öltl,
o. ,.Jrr",V",ltozó.r.gt, rgvetlyWvlp.or.... l. p.or~, _, p.ll",• .,m

Al. oSllMvok tagfil~ jelentéstani sumpootból ugyanolyanok, mini II eljirisok


BS a tagtüogvénytt. vagyIS nulla vagy több beme06 PlflllTlétefiik lehet. .. VISIl:I-
térési tlrtti'.bl1S rtndelllhatnek.

A1lO8)' koclbban militcuuk, az SQl -.and Cl5Zb1)1;un ha57.ll!i1ruk. hog)" :><.btOOI


Il}~nk kl C!g)" ~d:lIl~zub6I_ Amikor:lZ SQlO'OfI'WIIOOO om.ill),il dolgozunk. meg kell
3dnunk az :Kb~Z1SI. amelyb61 ~datok::ll szeretnénk It.>kéroemi. iIIet"e mIS. hogy
mdyen Idatokr.J \'2g)'Unk ki,~ncsi.:lk Ez!:I k~ inromclci61 a Cor.necÜ<>fl (klIpciOI.:I.t) fs
~nM=t: tula;ck.>ru4Pon keresztw adhatJUk ~t, A~ SQICo-nd 06Zt~ly wulnll.l
egy Ex\tCUteRellder( J tlCViJ tagR\gg>'én,'t, amely a Coaoo/Ind'rext tul.a~1I ~ll:Il
mcgl~'táruwu ad:l.tokat OIV:I.SSa ki a Connect ion LulJ;donsJgban megadoo adaLb(ill'lll6l

Az emIitC1l. tagtUgg>'ény megluvásihol el6:WK Iétn. kell hoznunk:lz sql! ......,.'ld


o:m.1ly egy péIdin);it, ts be kdl ;illitanunk annak, ",nL,- ,t ion éi C-.ndTOIlCt tubj-
dons;igail Ezt:l k~ ~ kÖ\ct6en meghi\,t\;otJllk az becute~ .... derl) tagI'Ugg.'b1)'t_
A ko-.. ed<elŐ k~ a t:lgfQ8S"oi!'nyek megh'l'ásjn:.k ut:l5it:l5fO!'l'J1;jj<i1 szcmlthctt

, .... SqlC~nd DutAlv ~ p.!ldAnv&",,1t 1.U.. hod""


Dl,. JIIyC."..nd al IIqlC_nd • N.,...- sql' _ndCl

• ~ Conn",,'L,,", •• c:.:-n<n""r tuhjdond,'l'~ boAlllt .....


lIIYC_nd.Corul<IC,ioa ••••
,""c_nd.C--ndnxt • "
164 11. 1Mz • 1....n.d61 ai ASP.NEJ·tIII

• I\ ~EXecute Rea d<,r I I t .. g{ag gv ~y ..... hív'.a


Diao my R"',,<ler aa Sqlo..taReader
IO)' Reader myCO!1OMnd.lO<ecuteReader II

Ahogy a femi k6dlJ611~tII:lt6. az Ex ecu teRe .. <le r [ lagfilggveny egy Sqlm>tllReader


típusU ~ktunl(ll 3d viSllZ:l.

Al. SQlPataRea der OSltMyt IIITlterveztét. hOQY egy itdatbázisb61 kmyert


adatokat t6ro1ion.

Az értéket ,·issz:.ad6tagfiiggvenrek ha50016:m múködn<.'k. mint a filggvé-nyek, míg amk,


amel)-eknek nmCS vissZ:llfr6i o<nék~k. ~Z eljárlsokhoz hasonlitanak A ugfilggv6>yek-
nek - mond az ('f!éket vÍSS2..1adókn::.k, mind a ,'isszal"rési (:nékk(,1 nem rendelkez6knek
_<"mdlcu nulla vagy több bemen6 para~erilk il; lehet..

Eseménykezelók létrehozása az objektumok eseményeihez


A ugfilggvények & tulajdonsjgok mdleu aZ objektumoknak t.':5eményeik is lehelnek .
Az események jellem7.6en V'Jlamilycn ~llapotv~lto7.ást fejr::mek ki. "'SY azt jelzik. hogy
,-:damilren mcrvdetre kerillt sor. Az ASP. ro·:}:.' " Bunon webes , ... lérl6;e példlul rendelkt'zik
egy C11c k ~nn,·d. amely akkor megy végbe, amikor a fe1ha.szn!i16 \-égrchajt '"Jla~
milp:n mü,... letet, konk,.{,tan egy vissz:ljdz& elindító gombra bmint a böngész6j8>en
Az ~ll:.poIviltoz:i5t jelző eseményekre jó P(>lda a Tcxtllox \'ezbl6k Tex tChang....:l <.'se-
mé-nye, amelyn' akkor kerül sor, ha a szövegmezó 131talma meg-.·:\Itolik.

Gpkran azt szeretnénk. hogy egy adott k6<\réS.JO; akkor fusson le. amikor egybiwnyos
esem61y történik. I:lihez egy esc",éI~)~ kdllfuehoD'lUnk, amely egy oIran egy<=nl
elp.r.is, amelynek OC'l11L-n6 paranK:terei egr adon eseményhez kapcs<.llódnak. Az
~kapcsolh (vagy "Ö6S2edr6lolás" ) - amelynek módját hamaro/Oan megv~iuk­
~odik az ~}'kel.el0'5 végrehajl:í.s:l.r61, amikor az adou e:semény bckö'''Clke~ik.

A_ Ner progran-.oll minden eiernénykelelőjé1 eljárisként kelllruehoznunk. és


[X>nlos:m két par:.m(1errd kell rendelkezniük az dso'!uek Obje"t úpu.unak kelj k'11.nie.
míg" misodlknak egy al. Even l Arg a (eseményp.:tramél:erek) típush61.9..1rmazuuolI
faj(;ljt'i pararnét<...-nek ABunon vezl-rl6 n i ck eso;ményl-·nek kClelo'5je (amelyet a Vi~••ul
Web Dc\'cloper autOll),~tiku5.an lL'l.nchoz a sz:,.munkru) aZ al.1bbi k~~J (ugynt:vezett
"al.1iclss:!I ") ncndelke z.ik-
P.oU<:tood Sub Butt an l _Cl1ck IByV .. l sender AB Ob;ect , ByVal .. Ils
_ Sy st_ . EVentArgsl Hand le. 8u t tonl.Click

End Sub
7. 611 • Objektumot. ViIUII e.1eben 1165

A fenti uusitis egy Buttonl_CIick nevú elpr:i$l hat.1roz meg, amely a Butt o n l
objektum Click ~Dl~rft kezeli. Amim láthatjuk, az esel"l16lykezcl6nck .1ladott el56
p;ir~t~er egy <.">bjI<klum (Ob j ltCt), a n}jsodik tipuS:! po:dig I;;vent/l.rq s. Ez utóbbi
kieg6z.it6 inforrnjciók:ll i5 tart:llm2Zh:ll:lz ~ml'nnrd kapcsolatban. A fenti esemerlr-
kczel60en (ahogy az oldal Lo.\Icl eseményének kezel6ja>l>n) nem adunk ~I ktegészít6
inform~d6IGt1. de II kl's6bbi 6r:ikban olyan esernén)'k"zel6kre js Ijtunk maid péld.1kat,
~mdyek ezen a núsod,k bemer16 p"r;lméwren keres<::tül tov:Ibbi adatol<:at adn;!k ~t.

A nernen6 parJm...1erekcn kivül ~z e51;:n~ykezd6 m,,!~hat.irotása l.:In.:drnazza


a Handlee kulCSS7.6t ls. Ez:l. kulc$zó kOi; az e:-;eménrkezcl6l '"'gy adati e51;:ményhez.
A But tonl_Clic k c:s...mmyk ... z...1ó esetében az elli!\1~ aZ oldal Ji"Th1l ....... zt:ben Bu ttonl
al.Ol">(k;ih'W:d (ro) meghatlrowtt l.Iuuon \·... zérl6objektum.:I. Buttonl Clid.
esemén)'éh.ez k1pcso16dik.

A Visual Basicben SUlét keztíleg is Imatunk esamányllllZ8l6kal, de ~ Visual web


Oeveloper ell szükségtelenné teSli. hiszen lIlltomatilusan el~'sdtr III es&ménykeN-
l6k v4zát. Ah.ogy • korábbi leckékben láttu\:;, ha tervero nézetbef! duplén katl!ntunlr.
IIIJY webes V9lérlőra, a vezár16 ~Imezett esaményéhez létreloo az esemény·
kazaló, de bármikO! ánlÍltNltiinlr. fOffésk6d nézetre, és • lent látható lenyíló ~stlÍkb6I
is kiválastthaijllk a megieHlló objektumot és es8rMnyt.

Összefoglalás
Ehben IIZ 6r:\oon ismét az objektumok.::s aZ O:'izt!iJyok mtIköd~s(-...el foglaJkollunk
Egy objektumot cs:.k 3kkor ...... hen1nk hann;ibtba. lu ..16bb Il:trehozzuk. ~mdy"t
e-g)' konstruktol"r.ll.::s a Visual Bas,e N...... kulcssZll ... ~val tehetünk meg. AJ1Q8Y I:lttuk.
,. konstruktor ol~.. n ugfllgg'''<5ny, ~mclrnek f1e\"e rnegegyez.ik az o:sn:ilyáéval. á
az oszt.1ty egy p(-Idany~t adrJ vissl.:ól. Az SqlC<»=;snd c.sZlály egy példinyát példiul
így hozh.atjuk ll:tre:

DUt myCamwmd as Sql C~ nd


tl\YCOI ... nd N' .... Sq lC(l1I'IIIand ()

1\1lut..1n Il:treholtunk egy ob;cklUmot. be:111ithatjuk ann, k tuLajdon...:igait. meghívhatjuk


a Illgfilgg>myeit . .::s CS('nll'nykezeI6ket lm:.tunk hozz:!. Egy objektum v:,Jamelyik tulaj-
dons.1g1t úgy "rh~jíik cl, ha megadjuk al objektum nc..-l"t, majd kitL'S.Zünk "gy pontot.
k utlnaí'luk a luLajdom:;lg n,"'"I·ét. A 1II)'C00000000nd objektum C~ndText tub~g::;t
ptldluJ így érhetjük ek
myC,.......nd. . C"-'Ind'l"""t

A tuLajdonságok ugyanugy visclkednek. mim a S7.Dkványc.s \.altoz6k, \"1' típu'>Uk.


8t<5k rendelhető hozz:lJuk. ",,5 kif... jezt<sekben is felll:l~1lhat6k
166 1 Lráz • lStneIkId6S IZ ASP.NET-III

11a egy ~k!Um valamelyik l<lgfiigg,",~ny~t 5Z<'1ctnffik meghivnL az objeklum ne\'él,


egy ponlO{, majd a ugfüSS"ény ne~'1'I kel! megadnunk. A lagfilggv&lyek hasonJit~nak
n d)lr:.bol<f"J ts II fügsv(11yekre, null~ \"agy több par:tmé1.erilk lehel. és énéket is
visszaadh.1tnak.

kL ~ktumoknllk különféle eseményeik ;s lehetnek, amelyek kolönböz6 id6pontban


kö,."etkezhctnek be. Egy esemény bekö\"etkeztekor :1l!~11ban '"lIlamilyen kódol
szeretnénk v~grehaI13Ini; n cserrWnykezd6k olyan kfllönlegeli cljjrnwk. amelyek
egy adotl {'5{>ményhez kapcsolódnak, és akkor kerl1l sor a \"tgr'ehaJwukrn. amikor
az adot! esemény bekövetkeZJk. Az escm&lykezcl6knek mindig kl'l bem.::n6
JXlr:tméterilk \"an, és a I14ndle. kulcsszó adja mes, hogy melyik e;eményre v:ila!jzul
indulnak eL Esemtnykezcl6kt."t s.oj:\t kezűleg is irhalunk , de II Visual Web Developer
boldogan elkészít; hel)·(:I.IOnk a megfdel6 esclI"-""'ykezcl6 ,,!iÚI, csak meg kell adnunk
aT. objekturrlOl ob; " ki\"lm esemén)'"! at ASP.N~:r oldal fom"iskód néleIében lalálható
lenyiló !i~k :;egi!Ségével.

Ezzel a kckl:vel "('gére 6tQnk a \"l5Ual Basic rejtélye,t felfl!d6 résznek. A kÖ\"elkez6
rejoe1.elben kel oly:m ASPSET \eZ<'r\őI_ II bbel h a Wer:tl wl'!>eS \'ClC!-ri6l- vizsg:llunk
meg, amelyekkel5.lö\'egeI jelenílhenlnk ITI<:g, al. ez(. kövel6 néldny fejeret<.1 pedig
a felhaszn11ó 11131 bevin adatok ősszegyO"jlésmt>k 6; (eldolgozi~nak $7,enteljük.

Kérdezz-felelek
K: Ebb6I az ómból """81"<lI,,,IIIIR. hogyan haszmílhaljlik a ,,\'I:.T ktn·fn.'llds.u'1"
OSZUiI)l"'iI. rk lehetséges saját osztáJ){Jkill is Il'trelroztl/?
v: A VI5U;I] Basichel. h:J:;onl6 objektumkö<:pomú progr:mlOZási nreh-ekben lehe..
'6ség ,'an sali' O6Z!:l.lyok k6,tit6;ére is, de ennek módj,\( nem úrSr:lljuk, men
cz n>CSQC túlmut:1( könyvOnk kercIcin. A könyvren :l .1'1]", k("retrendszer
,;.ok ..wk osruily1t fogjuk igénybe ,·enni. de sajit osLl.!ilyok ll'lreh():w<dr~ nem lesz
$7,Ú~.
K: Tá'1J)"('lja a ""II)". hogy m/ké.u IdIldhet,lnk Nek/nm/kus ler e/eket ''&1' ASP:NET
1,~>boIdalról!

V: S~I!lO$ az e-m:"lek küldésénH mikentjt'1 ke1l6 id6 h11:1.n nem ill módunkban
~rgyalnj. de ennek a .szokdnyas feladainak U clv<'"g1:<'sl:r6l rengeteg cikk(.1
találharunk az Interneten
kL ASP.NET 2.(~"ban az elcluroníkus k"wlek küldés&.-, haszn~lha(6 kél OSZt1ly
a MailM"......ge és az SmtpCl tent, míg 3l ASP,NET cl6z6 változata ~ Mai 1-
Musage él al. Smtl*lal1 O<iallyokat Ixlc:sjtotta a rendelkeresünkre em::l d~lrd.
lla:az Internden tal:l.ll cikkekre t1ma$Zkodunk. amikor egr ASPNET 2.o-t
haszn11ó w("holdalról e-lTl3ih sZ<:relntnk kiJldeni. ilg}-eljiJnk ro, hogy az elavult
SmtpHail OSZlály helyett az SlntpClient aszúl}, lusználjuk..
7. 6ra • objetturnok a Vu e.k:btn 1167

IsméU6 kérdések
1. Melyik 'u; a '*ID' fdadat, amdyet szinte mindig el kell \'~ge'znünk, amikor
egy ohjcktumnul dolgozunk?
2, .A .t-.'ET keretrendszer egyes oszlllya;t rel rogjuk használn! aZ ASI'.t\'h"T
weboldalainkOfl,' Igaz vagy hamis?
3. Az el6m kL'!. leck&.:n alapvet.'! programotis; fogalmakkal k elemekkd
ismerkl-dttink meg, ebben ~7. órában pedig az objt:klumolM Vi7.sg!ihuk,
amelyekrn.-k tul:.jdons:Igaik, !3g1uggvl'nyeik <':; e;eménrt"ik vannak, Milyen
alapvet.'! programozási dem feld meg egy ob;t:ktum mlajdonságinak?
4, Mdyik progr.m>o:cl$i fogalom fdel meg egy objektum \;Igfilggvl'nyl'nek?
5, A Visual Basicben az djlr.15ok meghatiro~b3n melyik kulcsszó jelzi, h<:>gy
az elj~rásI akkor kell meghívni, amikor egy biWflyOS esemény lxköH:l.kezik>

Vél8S2Ilk
l, Miel611 egy objektumol hasznlilaloo ,'ehetnénk, először péld;\nyosllanunk kelL
Ha az objektumpéld1ny m~r létezik, !ilulálxltl be kell állilanunk az oIJFktum
megfelel.'! tulajdons!igad, majd mcg kell hi\'nunk a tagfl1ggvényeit. Arra is
szOks{-g lell<.'I , hogy esen*nykezel.'!kct hozzunk I('tn', hogy az objektum
~-e~ eseményeinek bekövctkezl.,kor adott k6d~szekct hajclllus.sunk vl'gre,
2, Jgn. \'al6jJoon az ASPNET minden ",ebe!; \'ezl:rt6jé! a.VET k~zer
o;.zt~lpi valósítják mcg.
3, A tubjdo~gok a ~lto1Ókhoz hasonlóak.
4, A tagfüg&\'ényck olyanok, mini al. djár:'lsok és a fi.lgg"ények.
5, A H.. ndles kulcsszó.

Gyakorlatok
Ehhez:lZ 6r:\hoz nem tartoznak gyakol'btok.
4
- 6. 5.
8. ÓRA

Az ASP.NET
szöveg megjelenítő vezérlői

.ot 1«.. turtolnUiból:

• <;lÖ\'~ IllI'gJt'leni!ol'se a l.ilet:ll ~ L:l1)c,1 vn('Tlők 1iC.'gI~'eI


• It. LUeT1Il ,'('1.("1ió h;u;m1bI3
• A label \"e~&16 h:l.sWbu
• It. 1~lbel é; a IJler-Jl "cztrl6 különl~8c,
• It. L:lbelvezkrl6k megjt'lcn6l:nek megvj l107.t.:I~$;I

Az c:lmúlt Idrom 6r.iban 3 Visual Basic nyelv- & jr:'~16;brui"31 foglalkoztunk. '":Im'is
nzal II pn:l8I'am(>7..bi fl)'et..,-eI. ~1)'t'I. A$I'Sli weboldabink forris,k6d ~
h.asuulnln fogunk. Ezt II három 6r:it ~ n ASI':>'Uabpj:lil tcJ,ameuuk ;il,
p&ilul mq;tudluk. hogy minden ASP .... ET ,,'eboId..l1 egy forr.iskód és~' tmlL reszll6I
tpul fd. AIT.I IS emIéIcl"Z.hetünk. hogy II !-IDll n:u 1fP,ll k(x\o( b "tt.e. ,'ez6i6k<."t i>
l;lrulm:II:I",\
110 , I. "'-z • 1ImIIbd6t. ASP.NEl·...

A ....dIes ,-en..,.lóket II 5Wk...;inros HTML-dmk~khez lusonl6;on ~ ImlL rt.·szben


helyezzük el. Amikor II lXIfIgéSZŐ lek6- egy ASP.NET .... ebokbl!. a ,,'ebe!..-ez<:rl6k
II nekik rfK'g(dd('l!HML-k6dokká alakulnak JI, de a \'''7.Mókl az okbl (orr:1sk6d
rts7.é~n le\'6 pr'O!.Ir.unb61 ;s dérlu:ljuk, A w<.'l:>eS vczérl6k teMt köz..-etít6kénl
~zolg:llnak az ASP,NIIT <>kbl forr.ísk6<J é5 IITMl rC5~ közöK

1\ ~ fejezetben !.ilun I*nzüg)'l 'lLimnl6gép ptkUpban ASP:-'U okb]unk töhb \,ezéri('ll


ill :lllalmaZOlI \bll h;lrum ~zónk (Tcxt8w: "czérl6), amely... k mindegYike
3D II etil 5Wlg;l.It:o. !1OtI)' II fel~J6 :adalobt \'d~ be, egy gombunlo: (Buuon
.",út'16), 3me1yn: lalUnt ... a fdhuWló U adalol< beinsa ullin ki5zam,n~lhaua
U eredmén)', 6 cgy cil'l1kl:... k (l.o.be! "cztrltn, ~melyben II stiimÍLis eredmtn~
ielenilettOk meg

A kón)" folpn~n ook(élc " .. <.'hes vczérlŐ\'el fogunk mc.'gismer1<:edni, ~l'I1dyek killön-
bOm csoponol<ba !IOI'I:>Ih,"6k, vannak ptkUul ,'ez~. amelyek qö.'egmegtelen'l~
'!ZOIg:lln:ok. 'cn:rl6k, amelyekkel II fell1a$ZfÚ16 ~It:o] 1Je..'1II adatobi 8}'Üjlht'tjök &sze,
,-czfrl6k.. amelydc ~gil~'gt·..eI egy adalbázu :adat:oit jdenithetjo1k meg, &. igy 1000bb,

Szövegmegjelenft6 vezérl6k
Az ASP.NET-ben két vczérl6t Ic,.veztek amo, hogy sZÖ\'eget jeJen{!5Ünk rl\('g ~ ~gít:sé­
gökkel II Utc",] k a I.llbeL H'Zérl6krt. Ez II kéll'czfrló rn;!is-rnh HTML-kódot e=l-
mtnyez. amikor .'égkhajtIUk lU; ASPSET ...."bokJ.:1h A 4. fl"jl'zetb61 (.'fTIlcke~)C."fÜnk "',
hogy amikor egy böngbz('lben mcgtekintunk eg)' ASP "ET oldali, az ASP r-;I;:T-t1'I<ltOC
,~~p azt. &. ImlL-k6dot állil dll, amelyet :;\tad II ",'ebkUlwlgJ,l6Nk. &. a .... ebki-
$zoI~16 czta ~mlL-k6dot küldi ,~ a feJhilsmoil6 böngész6jenek

Al. ASP "''ET wdlokbbk IITML-k6djilleltil kl't forr:lsb61 származik

• a tITML r6zhcn '>lerepl6 SI:uikus 1m U"clltalomb61, illetve


• a w~ ,'e~M('lk ~talakít:ts::ib61 sz:lrmalÓ l fT'.IL-k6db6l.

A Imll ti:uben !e-.'6 $buku$ HTML-kód pontos:m ugy kertll a ~ allOg)'


an megimJk, a ",dlCll '~zérl6k :1talakí~ k01:ben d611liton HTML az.ont,;,n aszennt
~~ltozik.. hog)' az egyes \'ezérl6k m>l)'en tulatdonsJ-gtnékekkel rendelkeznek

A uteral és ll. ubel \'ezCrl6 abban killönbOZlk, arrulyen HTML-kód iön Il'tre !:>előlük
A [Jle",1 vez!:rII"I!rrML-mcgfcLcl6je eg)'!zcnlen ~ "ezérl6 Text tul:oidonságjnak ér!,ske:
c/:lX1 szemben II l.o.bel \'Nl...t6 SzálllOS fon"h~~llu13jdons;igg:l1 bIr (Backc"lor.
ForeColor, Font SIbi, ~mdyek rncghatlro7,7.;ik. hogy:," kell ITIl"gjelen,tcnl II "el&l6
Text tulajdoos1g:Ol
a. 6A • Al. ASP.NEl azt'IIJMJi t lied \ fi Ili 1171

Ebben az ór.iban megnéUilk. hog)"n lehd huznllnl en:l kb. \..,~: megIlInU1lUk.
l1(8)':ln helyezJletjilk el6k('\ egy ASI' "ET webOokbloo. ilk1\"e 311. hOogy mikffil
;illul\J1tjuk ~:I luI3fdons;1g~ik;u

A literal vezérl6 használata


A luer.l] n:ztrl6 egyike::l kgegysu-nilX, ,,-ebe5 \n..'fI6knek. :I neki megfelek'i HTMl,.
kOd u~':llUS nem m.i.s. mIfll:l \..,-l.éri6 Text ruL:..,dons1gir1llk h\cl;::e. A vezért6 ...!leIked.!--
$l,...,k ~let..:S.:-re houunk I(:m, egy új ASP"'l" webokbll LiuralC'onlrol .ut»<
oé\=. ame1)= nujd elhel)"eWnk egy uleral \-.:cltr\6l: Mml mUl(tig, ~ i~ üg)"djt.nk r:1,
hogy n oldal n)"dvc \1'"131 &uic legyen, él hogy bejclülj(lk:l Place rOCIC ln ~ l<.1"'rnle
filc jclöl6n(:gyzctct. 12 uWn hÜ7zunk egy U1L'f"~1 \""zt,rl~ :I TooIl>ox p:ól1L11jr6!3Z oIdalrn
A II I .ibcln !~th:lljuk. hOogy;m rest u oldal tt."f'o·N6 ~zClh.," a l.il('f'"~1 n,~ hOu:\;Kli5:t
ucln.

.....

-_ ... _------
" - _ • • • _ _ ._.~ -~ .. - ___ o .-).;

---
•. '~IoI" .!'!l"l~'

._..... ..__ - - . 1.1. 610


U/i'mlloedrllJ /tonáaM'"
I ..... ~ "údbct,

Gr6USdjunk meg ról:t. hogy 3~ imént felvt1tutcI:II \czM6 van Iu;elölve, ...,. viz.."IIJljuk
mcg:l jobb :d5Ó s:lrokban lóIIJIII'l16 Propenie!o 3bl3kOl: Megfigyelhetjük. hOogy:l Uier.ll
"C'lffI6nek mmc!ll.cQ" h:u tulajdonsig:l. \':In. Ez:l. ruot tul3Jdor1.!-ig bhogy 3 Propcllle$
ahlakban me-gjelenikl:l kO'l'elkC'zó:

• T= • \"isible
• Er1llbleV K!'Io'Sl.;ite • (E:o;preo;"lOn~l
• M""" • 00)

!'.bben az 6r:ib:m csak az IC ~:I 'l"ext lulajdons;i!(g:ll doIsozunk majd. AllOg)' ~ 4 Icckt-
born W'JePIÓ penzug); $7..1rno16gépe pékWxin Liuuk, az ID tula~81:g)·ed; nev-."CI
Ul", el a \"e.ttn6t, hogy az A$I'.t>.'ET ...-eOOkb1 forr.bk6d ~ hm~nk
a lubjdons:ígair.l, :l Lileral vcz1:ri6 Tex~ wb~g:l pedlg:lZ az &lék. ami nlqlderuk
aZ ASP :-''ET oldalon, arrukor a;( M~ lekq,e~ a V«bI6t.
172 I. rW:' ~ Ilf ASP.NEl"'"

I-Ia a LlI<.>ra1 vewr!6 Text rulajdonsi~1 n<.'1n .illitjuk be, a ter...e.t6ben így jelenik meg;
[UtHai '~zc>n ll"itó')

Itt aZ l!lZonositó 3 vererl6 ID tuL.fdortS.lgának énéke A 8.1 :1br.in 3 I.Jteral ,..,zérll!


tehát a7.én látható [LJ teraI ' LiteralI ' I forrn.1lxm, men az ID rulajdomáglnak
énáe Litenl1, és a Text rulafdonsigot még nem adtuk mcg, Ha azonoon II Text
tulajdol1.'<\gnak adunk valamilyen értékt.'!., a t~..,..,ez6 ezt jeleníti meg a H'zérl6 helyén.
M6do:sitsuk most eZt II tulajdonsigot lIello, world! ·re. és nézzük meg II 8.2, .1br.it.
amely ut mUl'ltia. hogpn \o1lto,ik meg ez után II terve7.11, L:'ithatjuk. hogy II Uteral
vezérlI! helyén II Hello, Worl<ll szöveg jelenik meg,

......
"

y
-
'*~~_
"""""~.~'~',,,-,,"-,~,,

. . . , ... " .

u..;.,.;.... -;--
... _ - - - - -
1'-f "::~ ~ ---

-.
.

,' m',;,:::" •
~'),

- ..
!ooo, Wd .. : ol 'It

-_-..._.
_ ;oj'''!--
....--".
JiJl!
-
'-- -- 8.2. jin
A Utcrn/ ,~rltf
a ,,/Ici/o. World!'

- $1:6<"8,,*'1 J<.*"ik
a Icn't'ZÓbl'>,
meg

Most. hogy lll. oldalhoz adtunk egy Uteral vezérlIII. és be.1l1iloouk II Text IUJajdons;igll.
tekintsük mcg az ASP.NIc' wcboldalt II böngés2:6bt"ll a Debug menü Stan ~1lhOllt
Debugging pomjár1:lk segItséghel. A 8.3. :\br:ín l.ithatjuk. h08yan fesl a Llteral-
Control. aspx oldal II böngé05ben, II kimenet egyszeruen II Hello. WOrld! m-'eg

... "" ...


, · 11 _ _~-~
- ......, }- -
l '''"'''_ ... _. ,••• _,,,....

·-e
_ - k

••
-,--
_ _ _ _ ,. 1:]"

8.3.6brI

.- II ll'era/Ccollrol.flS{l.~
a u~, '''''1J'ck1lm:e

Miut;1n betöltÖltük az oldalt a böng6z6nkbc. \1!SSOnk eg)' pil\ant.i5t a böngészII.1ltaJ


k<lpoll HTML fords ... A 8.1, pl:!(ljoon Játll<ltjuk. milr~"Il kódol IGlpott II ~zcrz6 böngé-
sz6je. amikor kiproMhll aZ oldalI.
<l~ otlal PUBLIC "- ./ WJC!I'DTr XIfno!L " A -...., ltlonalJ/!tI'
_ Ont"" 1 _ . .,). 1"9f'l'R/xhtlall D'":'i Ixhtlall-U 'umal.dt,s°>

j , <hta\ _lnar " l1U", 1 _ ... l.or<,ltlU9/xhU01" >


4, <he.,s~.tltle>
~, Untit .. d Pa~ ..
6, </tjtle~ bead~
7. dlod;y»
l. <fo . . ..,...." fonll" _thod- °p»t' .cti"n""l.lten.lControl •• sl>I<·
_ 1<'1~"fonol'~
9, <,siv~
10, dnp\l~ type."hid,s",," ......,. "__vn."WSTATt;:· Id." __vn:wSTATE"
_ va lu. .. "I ..EP!MJ1QfJ'YyNzC'XNlJY4_XQIIII.IIG~"Ko9<Nb9J101pCp7Cr,,"," I ~
ll. <Id ......
]l,

U, HeUo, WOr'd!</dlV>
H, < "no~
16, </body,
n, <,tit.. !»

A I.it~1 ,-"'~ J--tn1L-k6dJ:.o II 8.1. p<'lcb H $Oriban tlIlálh;uó. és n~ mis, mU'll


a n=a-rl6rex~ tula~l:I-'nak éni:kc, A In'Ml-kód tObb., ,.e.;ze Olrlln mdlékternlék.
~mi aIJb61 a IfT.\!L t:lr\alomból ~zjm\llz,k. amc-lyt.'1 II lel"\-'cz6 akkor 11t,1<X1 0:16. amikor
l~hoZ1:il ~ \t'cl> Malrix 1'1'OfC.'CI Lipw.ú ASP NET "'eUoIcbll

A 8.1 . példa 3-7.. ikM 1&-17. SOflÍban tal6lhat6 <M' ,<head> " <body:.
.meket • VISl.III web 0WII0Per Idja IZ OId.tm. Imitor ú! web Form t/P.JW
w,t-.....ént lélnlholll*" r.." t r<Ol .asp> ASP.NET aIdIII. il. VISUal
web 0eVeI0Pef iIeSZti bt" lJ. és 14 mart taláht6 <dl v~ elemet JS.
A 8·11. sOfokboo &gy <form>, illetve &gy hidd. n 11puSUI1I (ty~) Mlton
< InrlUt,. elem lalht6. Ez a HTMlta-talom a webes ilr\aphoz (Web Form) 1a1ozik.
A 4.IfI,mtb6I ~ rá, hogy. webes ÚBIIPOt HTMl. ~ ~i." •
~ II118Iyak n6mi ~ inform6t:i6t ~ tgy rejtett <, r f>ut>

-.mben. ASP.NET WtbOIdakri: lZ'Iirt IIIi1IImaz 'M!bts i.riIPOt, mert I ViSUII web
DeVtIOP&r alapirtllmem szennt houúd 1III'fIIt. amikor létrahol egy új ASP.NET
w&bolclalt. A webes ílr\aPOI:; réslletervall köwtkez6 6r1ibtn 'ovIaiOlUllk majd.
Ami I 13. sorban hld5d6, is. 14. sorban VégZÓdCS div) elemet ilet!, wgyük
u., hogy ezt liliiii I l.itD webes ~ ~ IZ OIdaIm.. Erre adt! hIYOm lel
• ~il8t. 1lWJI.novv ~ 116ni, l6tni Iogp.a, hogy Ileotobb wtbft VerirIG
hOZZ1Iad valamil'fln kilo'szftó ta-talmat IZ oldal HTMl~16hoz; a Label vezérió
péliUul <SP<lrl> elefTW;ént képerodik Ili I k6dbM!. A Utllf.t vezériób611Z01'1b1n IIIIm
Itu HTMl·eIem, CSurMn megie1eillti a Tut ~ az "'~Ut.
A lit8!Ol _ Te,. tulajdonsógánek beáIftáSa programból
Ammt Unuk. 3 LIler.] ,-ni:rll'l Too ot mla~i" bdUim:1I6:1. PropertlC5 ~blaktxm_ és
amíg POnl(l5:rn tudjuk. nul)'en &I~kd kell bpn;;!;I tuJajdons;lgnak. ezzel:l. megközclí-
(essel nino;s Wmnu gond. lia awnl.xln ali surcménk, hogy:l. Text lula~1I
I!'n~kc dil1:1.milrusan v:lhOllOf1, u bt"'kft az ASI''Il''T oldal forr.lskód ~én kcre'Zlill
kell megadnunk.

Tcg)'Ok fcl plildául. l.osy a.n s."eCretoenk. ha a Utcr:l1 "czl!rl6 az aktu:llis ualUnlOl h
íJaI jeleníteM lIleg_ Egy progTlIml>;ln cn a 04teTl ..,. N" ... tulajdon.lJgon keresztlil
ktAA"7.h•.1jiik le. A J.,{e!1Il ''ezérló ,.,,~, tulatdof1s:;ig:i1 pl'ogr.unból II fombkódba in
aUbbl fomujÚ uw.iú'<iSólllJhdulluk be-

lu a LJCer.olVezérl6rr:>a L1cr.d '-czérl6 ID tubjdons;l.g!irulk ení:ke. az ~n"k ~


n a ur.kterUnc. amelyet:l 'czc.'rl6 "'eX! tubjdons:i.g!ihoz szerem<.'nk ~ni

KhZllSilnk egy ASPS!:, "ehokbh. amely egy Ulcr.J '-czérlo segilséghcl ;elcnn; meg
al aktulhs dlturIJQI és id6!l Kewliik au.a!. hogy létrehozunk egy új A5I'NI:.! wclx>kbh
Llter.t 'ti_.uP" néven. nlilit! húuunk egy Uter.1I vczéli61 az oheLdrn ICrv~"t6 ~
l.l1hc". NillQ Qükség arra, hogy ~ Text lulajOon"jg!lt ~ I'ropenics ~bbkban llht...1Jk
be. llIen Cll a tul~tdoosigol3 progr~ml~n fOSJuk módosítani A ,'e1.~d6 ID lulajdon,j·
JfoLlloIk értékt1 mindazonáltal 1TIÓdO'I,t...uk a M'nurutmondó Lit era 11·n51 \!lIl~milyen
1lt'S<:~ :u:ono:siIór.:r., J*ltUul a currentTiDl! bkn.I~Ii.'! id6) énekre

."t.wn a ,"<,u-rl6t 31. okbUI<Q :><tuk. és Ul tubj(.lons;ig;it eurrentTl __ 11I m6doI;ÜOl!uk.

__
."t'Ó6Uk ~ 3 k:lpou ~mén)' 3 8.1 <ibr:ln l:illl:lló kepemy6képpd
n
....... _... __ .........
. . . . . . _ •• ~~'" • _ _ .'_ • • r •
.
- - .. _-

..- •
..... ~­

---_.._...
.....
--~ .. .

-
-
-. . __ -. --
..
U . 1Itn
A wrvnó a l./J(OrP/ ,fth16
,7r=k1fr' h<uIDIU.Ia~
bMUrJdw má ..
8, 6ra • lu ASP,HET smrijjlll8Ujel:anh6 VdrI6i 1175

Miut1n" vezérlŐI az olcblhoz adlUk , 6 ID tula;donságát =rrentTime-", m~ítouuk,


k6z....n ~1IU1lk ci. hogy megírjuk a szükséges forr:isk6dot. E16ször egy csenl&1ykezel6I.
keU k':uehoznunk aZ oldal Lo<td esernl-ny(,hez: ehhez kallinl5Unk duplán tervelŐ
n<oz<-'1ben 3>; oldal",. ''''gy v:\l(:<.l.,nk fom'iskM nézdre. és ~ baj old.~1i lenyil61i5tlból
,':!laSS1.uk ~ ( bge E"ents) elemet, a jobb oldaliil6l pedig a !.o:td-ot:. Ennek aZ ASI' :"lET
oklalrutk n CS<.'t\.'ben azt szen.1nénk, hogy 3 Liter:l.l '-ez{,r!6 '!'ext tula~1P aZ old~1
m,nden betölt(,sekor az ~ktu;ilis dltumrd (,S id6n: , ... Itozzon. ezl:n az ezt \,ez{,rl6 kódot
a Pa\l,,_t.oad eseménybo..'Tl kell elhclyewünk

currentTI_.Text ~ oateTlooe.N"'"
Miut,1n beirtuk a kóOOt. menl5lik az ASPSET okblt, 6; nhzuk meg a böngész6ben
A 8.5. ;ib", mutatja. hogyan kell "kkor megjck'tUl.ic a Ll t."ra.lTime . aspx oldalnak .

. /- -"
_,'...,JoJ/. 8.5. ""
AZ u/dmi/iS ddllllll és
/dó megjc/etll'/est>

MelK/'(ÓZÓ!ll&tünk róla, hogy III oldal valóban az aktuális dátumot n tOOl mutatja,
ha néhány másodpercenként lrissltjük (üjratöltjílklaz oldah a oongolsz6b&n, és
meg11gyeljük, hogyan váhOlik 8 ~Irás.

Súnjunk ci egy pt"IU"I, 6; "ilA~gjjjl,k mcg a webl>öngész6 ~I!al kapoc! H'P.>1L-k6clot


(\:isd a 6.2. p(,kUtl.

' .2. "'Ida ti U1emlTrm,,-<upx ~'('/)cItk'/ dlUlI <öJ1/"OI/ In'ML-«'id


l, ~IOOCT'lPE html PUBLIC '-II\(Jetll1m XH~ 1.0 TrilIlBitlo"",lttEN'
_ 'ht tp, J t>NW . .,3 . or'l/"ffitxht .. ll/DTllI xht",ll-tran .. i t 10"",1 . dtd' ~

"
3, <html xmln ... ·http,t/www . .,3.orIlI1999Ixhtml· :>
4, <h",ad><tHl,,~
5, Untitled Pa9"
6, <ttJ.t1e~<t_>
7, "body>
8, <rom na .... _' roml' _tho';!. 'po8t'
.. a"tion~·Lit"ralTi ..... a&px' idv'fonol'>

10, <input type~'hi&l~n' "..-e_ VIEW'l'I'A'l'E' id.,,' _VIEIOSTM'e'


_ value~ ·t wE~yNz"xNOY'N\l9kY'lICAw9kP'lIC~8~4EVGV(dAUVOS8KNC8
.. JIl'!I.lAl tDExOjltOOjAII ~FNW'l'ww"Tq/l i nu60\1iYaOGH9vv~wlsn=,' I ~
ll , </<liv>
12,
176 11. r6a' ~ RASf'.NET-teI

13, <dl,..,.
14, g/1412005 lt,34,05 f<.II
tS, <Idiv>
16, <Horm:.
17, </body~
18, </hUlb

Az ~ sor, amelyikre killönösl1gyelmet kell fordit;lnunk, a 14. sor, men el. az a HTML-
kód, amelyt.'! a Ulerdl \'ed:rló állít dó. Amikor" böngész61ckéri ~ LitculTiJDe .... apx
old.~lt. az AS!',Nf..T-moIor végrell:jjtja azt. Ekkor elindula Page_Load esem.;nykezel6.
h leful II benne 1",,6 kód, Ez az egyetlen sorn}i kód ~lIílla n aktu:il~ d:itulnra h id6re
a ülem] ved:r16 Text rubidof1&igát.

MiutJn végrehajloo~ a plI.ge_Load esemffiykezel6c. az ASP.J'\"ET-nIOIor leképen a HTMl.


részben Icv6 wcbes vezérl6ket. h ezen a ponlon a l.iternl vez&l6 Text rulajdo""ágának
bt':ke már aZ aklu;.ll.s d:ttum és idő. II liler.d "ezl'r16h61 tehit Cl. az "n"'k jön ](,tre
a HTMl.-lé alakíLískor. ~ a webbönghz6 elj bpj:1 IlK'g" \iSU31 'M:b D<_'veloper áltll
az oldalho.z 300ct kiegésnt6 Slatiklls IIT),!L WrIlllommal.,gyiltL

Ha frissíljük al. okbh 3 böngész6ben, a fenti foly~m"t ujr~ végbemegy, és 3 höng&lz6


ismét: 3 megfelelő d:ttum· ts id6énékeket k~pja meg ~ "",ki elküldőll HTML·ben .

Pr6MljlKlk rájönni, mi lesz ll. Liter.. l Ti"", ...... px weboldal kimenete, ha


il Page_Load esaménykezelOOen SlIIf9IlIÖ currentTi_, Text Oate'l';me .Now
kódot :urrentTi .... Text _ 'The current tim, iR' . .. OoteTi_ . NOW-fil
m6d0sItJuk. IPróbllljuk ki ezt ll. lódot, és figveljO~ meg, hogyan vflltoOk meg
I kimenet)

1\ Uleral ",elles vezérlónek nincs egyetlen oly,ln tulajdomdga *"" amellyel ~


kimenetet formázhalnánk. lia ily~m're van 5Z.Ü~nk, ezt csak úgy tehetjük meg, ha
saját kewlcg be5zUrjuk a megfclell'i HTML-kódol a vezérl6 Text rubjdonságáoo. Ha al
id& p.:1<Uul félklh'':'-r Ix'!úvel s:reretnl'nk megjeleníteni, al et"TC szolgáló <b> JITML-
dmk';l kifejezetten meg kel! adnunk.
current'l'i_,'l'ext '<b,," " Date'l'a...llow " '<Ib~ '

I\}il\'ánvaló, hogya literaJ \ .... z6"!6 nem ~ IcgalkalmaSlbb arra, hOID' fomLíWIl szöveget
jeienilSÜnk meg - a köv(1kez6 I'é:szl>en benllll.:il.:indól.abc! ,·el..&i6t ,.zonban SO!1imos
rulajdonsággal ruh.1zt1k fel. amel)'ek segits.:g{'vel a vezér16 '::'I1ék(1 nmdkívül egyszen1en
form.1zhatluk. A Utcr~] vez':..-l6Ieginlclhb ~kl«x ha~. amikor ponlo:san meghat:lro--
Wil HTML-! kell mt.-gjelenitenünk, a label vezérl6 ~lt~1 elóillílOtl 11no1L-kód azonban
mind ~ Text tubidonsig~t6[, nünd a fonná;ctsi tulajdonsigait61 filgg. A Uter.tl vell-r!6
ugy"""kkor pontOl5abban It1Liirozz> meg" kimen('!l'!, Iusl.en mindig azt adil VJSSZ:I, anU
a Text rulajdonsig:íoon '>lerepel.
a. Óf1I • Al. ASP.NEr tz6vegl!le9ieold6 VelIWI6i I m

A Label vezérlő használata


ALIbei vezérll'l "bban kíllönbo."Jzik a !.itt'rJI vezérl6l.61. hogy V"Jnrntk fOl'lll!izhi tulajdon-
ság;;oi ;~, ~melyekl'l be:\lIiwa megh:lL1rozhatjuk, hogyan jelenj<.'n ml'g a Text tulajdonság
ért(:ke ll. felha .. vcll6 böngkz~. A dmke sz/heg""- ~Id:<ul félkövér bt.tü"el jelenít-
hetjilk meg, lu a vezérlő Font tulajdoru;:jig:irntk BOld res-Llulajdon.'óágát True-r.I Mlitjuk.
Kbzít.<íink is n>O<;t "ID' új ASP./l.TI webold:th, ~mely szemlélt('{l a !.:Ibel "ezérl6
h::m:n.ilatátJ

Kel,<.!jílk azzal, hogy létrehozuok egy l.4belControl . aspx oev\l ASP.NEl' oldalI. maid
esy l.:Ibel "ezl-rl6t húzuok az oldalra. Jelöljük ki ezt a '·ezédÓ!. és oézzük meg a lulai-
dons;!igaiL a Propen.ies ablakooo. Uthatjuk, IlO!!}' ióval több lubjdonság jelenik m<.1I iu.
"unt 3 Ute ....1 ,"ezérl6 ,,*,-ében.

E16ször áJlitsuk a dmk" Text tulajdons.1gjt Hello, Worldl-re. I~a euel me8'dgyunk,
a k(,pernyoo valami olyasmi! kellljtnunk. mint a 8.6. jbr1n.

- ._- -
8.6. 6I:n
AZ OJdiU 'ID' wbr!( wzérl(i I=tii.dása CS Text mk'JdI:m-SAsá"ak b<.'<ilhr<ls<. "Ill"

"Iiután bdllí!oouk a Text tulajdon~got. azt kelJ eJ(:münk. hogy a tartalma félkövér""
jelenjen meg. Ellhez kaninlSunk a vezérl6re, amível megjelenitjOk a tulajdonságait
a I'Toperties ablakb:m. Az egyIk fl'lsorolt tulajdonslg a Font, amelynek n""ét61 balrJ
egy pluszjelet J;:ith:uunk Ez jelzi, hogy a tulJ~gnak résztulajdons.1gai ;", vannak,
amelyeket a plll54:jelre btlintv .. bonthatunk ki. A Font tul3jdonság résztulaldomiJ8<~it
a 8.1. tábl:izatban láthatjuk. E rb1:lulajdons;!igok egyike a Bold, amelynek alapénelmt"-
Zett énéke 3 False. M6dosílSUk ezt T.-ue-r:I a leny06 lista segít,;(:gé\'eI: ennek hat:i$.1ra
a címke s..zöv.,ge félkö\'éren jelenik meg a tervez6ben. A 8.7. ~br:'in I:lthatjllk, hogyan
fest 3 "czér16, miután a Bold résnul~jdon~got True-ra illitottuk
m i l ráz • llmen:edú.lZ ASP.NET-UI

too ..... _ ... _ _ _ ... _ _ ....


.. ·.·IoIOóIjo

_.-
~
, ...•

~- .......
,--_o.--'
.- .
. __ . --
_
- - D

-~-

8.1. jin
A fAbeI ,~"Zo!rl6l1oJd réuwtajdons4gár Tn,.,.,.,. dllíron".
8.1. IM- ... ~ , ~Jhnl I~~
Leíris

r:lbb;;.n I . belulÍpu50k u Ari.:l.l, a lIelve'lic:l b; ~ \'~n~.


Be!\1lÍpusnevek listája, lia U oldalt n>egl~!ogat6 böngéiző
nem tjmog'llj;l akiválasztou \)(.'I(Jtipust, a li.o;t~IyJn szerepl6
kóvctkez6 bell1lÍpussal pr6hilkoz.ik.
OVerline Logikai &ték, amely ali adp meg, hogy a 'l'e"t tulajdoru;:\g
é~kél egy fölé- hÚZOlI vonallal kcll-e megjek·níleni.
Si ze A Text lulajdon~g megj<'leflilési ml'rete. Olyan szöveg"*"
retek kótiiJ \-;lla!<ZlhaIUnk, mini a Smaller (Kicsi). a Medllun
( K&epes) Y:Igy ~ Larger (Nagy), de poménékel ~ beírlulunk
(ptküul UPt),
Strikeout Logikai érték. amely:tZl adia meg, hogy a Text lula~g
értéké! álhíizással kell-e megjelenileni
underline Logikai érték. ~mely azt adja m~g, hogy a Text tulajdonság
értéké! al~húzáSS:l.1 kell-e megjeleníteni

Nl'UiIk nll'g a !.oabelControl.lOSp>< ASI'Jo,'ET oldali a 1>öngb;z6ben. éi a Kello. World!


szöveget félkövén.'n f<JgJUk 131m. ~k{jrcsak ~ lervez6ben.
8. 611 • N ASP.NEl 111"5"''',,1 ' iIII1 ""'*II5i I IN

A l.abeI vozérl6 által .16á1I~olt HTMl-l<6d


A Ulcral ",ebe:. vN['1'I6 ~SI..'1ébcn a bl'mgéQ:6nek cIkOkiölI IlTML-k6d ~ vereni'! T."t
tubjdon.s;ig;inak éltCke \·oh. a labd "cz&i61'e"t tuIJ~g:I azonban kieg67.i11
a fOfllÚ;rjsi irúomúdók kiegeszl!l'i IITMI.-k6dj,h,lI. De mit~'en IlTMl-kOd<x ils kllld
\lI~b3n:l. lllbel \"t';cbl6 a bOn~ ~k~ módon ez anól függ. mU~n
btIn~'d tdnnuk meg az adotl ASP.~"ET webokl.:ili

Annkor '1IY böngész<'! Ic.>ké1" egy webokbll. elküldi a Cser-Agenl jf.'jIéc:JA.-"" ilSmeIt
infonn:lCÍÓl, ami UOIlO5ltja a bOng6lli tipus:il

Ha f!'I( verirl/llHlonyot: tulajdonságart I b6n~ oem ISmeri, I nem "mogatott


kódok aotOlllltikuNn tMSdnet I ~tb6I. Al ASP.NET I U-·Agent ,.jIk
wsgáIat6v1ll miii \UdjII Map/tllli, ilO9V I k6felmtl6 böI'lI6szd HTMl- vagy XHTMt-
képes bJJ"g6sz6. •.

Kcrihl>rol ernl&ezhcl:Onk ri, hogy amikor u AS"NET·m<Xor "égrril:lltl":IZ AS .....'"


... d,Jokblt, II kUJönféle " ..:be>. \czérl6ket HTML-k6dolcJcl képezi Ic.>_ Ehhel filO'elembe
veszi a User-Agent fejUln"l, b ~l aclon böngé:sz6nck megfelel<"! HTML-t ~Iliti'l dó.

A 8,~. pékbkód példlul an a IlTMl-k6dot mutal"'. amelyet egy fi'JklII:>ő,~k~p, ha


,",..,gllloS::!!? a LabelControl ,ISP" ,,'eboIdJlt (Az ASP.NEr fejlett - uplt.... -cI- bOngé-
m5nek tekinti azokőlt a ~">lliket. ~mdyek t~rnog:Itl'ik U i1gyfNoklali p;tI"Jncsk6-
cIok;at, a 5Iilusbpokat é a IIDIl ·Uk. Ebbe a OiOpOftl>;l \;I1'(<)ln:l\,: péld::iul :I.lln~
Exp4o«T 4,().s l5 úpbb , .. /t~I:I.'. a Mozilla fin:fox, \'lI!.anWll.::a 'etxape 6,0--5 b k"-"6bbl
'-lltoz;ot;lL)

i.'W3CI/I7l'll
• • hnp' 1/.....w. w) • org I'M!.Ixhtm.! llD'I1l1 "ht .. ll - t ranatt tona l . dtd " >

.: ~ht.1 XAln.c "http,f{www.").org/1999Ixh,.I" >


4, <hoo .. d><tin.,.
~" 1J:1' ,eled P~
" c/tHI.><lbNd,.

9, ~di,,>
10, <inpu~ type."hidden" ~." __VIEWSTATE· td"" __VIEWSTATE"
• val uo>." I'oIEP!lw\lJOOExKl'JI~N~'(~lIGII~~ YF1J1l: ·WY.t.S1{40Z~hllFf "YQ_ • I>
\I.cdiv>
U,
l. <div>-
180 ILIMZ • ~tzASE'.NET....

]4,
_ <lspanH.
I~, <If,..,.
16, <Ib<>dy~
11, <IM .. !>

A l.abe! velérlő kódja,. 14 sor/.xIn ~1J.lh~tÓ Megfigyelheqilk. hog)'" klxl "gy upan>
IIT\tI..clernel ha~zn:\J. ,.mel~nck i<j jcllCflllÓjC megegyezik 3 Label vel'.d!(I ID tulaj-
donsj,pn l 1\7.1 15 kue\'ehetluk, hogy ,. fellcn böngbz6koc"1\ ,. tIeile, . W.-,r l<j I !lZÖVcg
"<Sparl> elelll .. tyl .. jdk~nck kÖSZÖflh..'1őcn mlkóvh betű"'" jeknik meg.

A IH t*1dll»n euel "lemben ut ~ IITML·kódot UlhlllJUk, amelyet egy 4-es v:.iltor.atú.


~ IIT\tL 40-t nem lSml.'f'Ó ",,,,,,,h "ct.o;o.~fX' böngb.z6 k>p ,. Y-bo., nt rol •• !IP"
megLuog:ow.:.kor. Az ehlleZ hasonló bong...-nók ..1 n('\"ClJk fi'.jIefJm bdr~ll'It
fdo" ..nJ('\d bro9,'SeI').

1: <I!'"<'X'TYN hr..l PUBt~C ' UW1-'ID'I'D KInlfr. 1.0 Tr..-.;t\C/NII'II':!I'

,, _ 'httP"IWWW.WJ n"rnt.xht_1 D'l'D/><I ".II-tr..,..iL"...l l'~

l, <hu.l -.lns.·Mtp: !www.wl.orq.lU91l<ht .. l· >


4, <hea4~<tltle>
5, lJntltl..:l P.. ge
6, <Iti tle></head>

tI don. _ . · f o n l ' _'hodo'pc."


_ .ction··LabeKont ."I ....p"· ld- 'lorIl">
9, < Input t~ ·".lMen" ........ _VIEW,;'TAtt· 1c1.," _Vlar< "1ITIt·
_ .... 1 ..... • /vEPIlwUJ ~'.s.Y~~I'm2YT}.rurWV.I..SIl'G;l:zhXFtAVO"· I»
0'
« Iv>

Ih <,fona>
l', <'body>
IS, <,htllll>

A ti 4 ~Ida ll. 500). kfilönböz,k a 8,j, t*1dt II .sor:ltól. A Ife Ilo. worlt! I ~T.ÖV"g
f~lkö\-'crre lft<:,I(lr6! in nem a <.pall> elem nyle jclk'fTlZ6je gondoskodik. h~rn:m
~ <b~ elem, men a f<'jletlen böngbiz6k. c.""k Nl ismerik.

Annak elenéra, hogy .,.jIett" t fejletlen ~k más·nm HTMl·k6dot kap-


nel:. mO:I:.ett6 ugyanazt. kmtnetet «tdményezi - a II. '10. wQrldl lIlÖY8II
I~ jIIri:; ~ Al ASP.NET webes VMri6i teh6t ~.-nII.1Iogy
llItépezutt m..t lI1I'I'(R lIISOnItSOn • IljIItt .. fejletl." böog6sz6kban.
IfTI8iIIJ1l1l csal W.tségtl.
A Label vezérl6 !onnázási tulajdonság';
A label \'e~&l6 több formáz1si tulajdonsiggalis ",ndelkeZik M~r Ianuk.IXlg}ö1" teheljük
cm' donk" QÖ\'~ fclkövcrre, de 3 label "l'zL-rl6nek sz:imos má~ formáZási tula~gát
is érdemes 'no..ogvizsg~lnunl( Ezek ll. formizlsi lubjdon'l;igok a kő\'(.1kc"-Ó GOpOI1okb:!
sorolhatók, Q.ifUulaj<l<:>m:igok, .~Iitulatducu.!lgok. beultulajdonságok, illen'" egp'b
tulajdonságok. A követkeWkben mind ll. ~ . .. m1itef\ ~OI 13'!n",lni fogjuk

S:zfntulajdonságok
A Label " ..;,;&16 kttlulajdonslgon h'I"C'zlQ[ t~':Ui l...h('16\'é, hogy meghalfirouuk a
kiír~nd6 $ZÖ'-eg 5zinél: az egyik a ForeColor (,zöveg~zín). il m1$ik" BiickColor
(hJuérszin), A ForeColor ll. szöveg 5zíoo, mig ll. &ockColor a lultért.'t ad(;l meg.

KéUílSOnk egy új ASP_l\'l:."T webokblt. hogy kipr6báljuk ll. ke! s.zímu13jdonsigOl!


Kczdj\lk 3Uljl. hogy IéIrehozunk efW új ASP_,,'I!T olda!! ColorUobel .asp,. néven. és
húzzunk ('gy labd vcz&l61 az oldalra. A címke hozúad;Ísa ulfin lTIÓdO/;ílSllk a "cwil>
Text lulajdonsig:lt Thi6 is .. test of the color properti""·,,, (Szöveg a színtulai"
do=igok lameJbéhez),

MOSl :llJítsuk ~ llacl<Color mlaJdonságot N'avy-rc (tenS"részkék) ~ Por..color-t pedig


\X"h'IC-1':'I (fehér). Ehhez gy6z6djiink meg r613. hogy a label veZérlő van kijclöh..." hogy
11ssuk a lulajdonsigail a J'ropenies abbkb:m, majd keressük mt.'g ou a llacl<Color
lulajdonsigtl(. A tula~g ki,elöl6e egy h.'lrom lapb61- CU$lom (EgyénI), Web
(Weocs) b; S}'$Iem (Rembzer) - :1116 palettát jdenít meg_ Ahogy a 8.8. ,,00 mutalja,
a Cu-"orn Iapon 64 színltal:\llJflk, amclyek közül ki\';Ilasz!h:ujuk a BackColor tulajdon-
.ság én."ko,,;_
c- _ l"':;'_
n-rrrrrr
~r.r -- ••
r •• rr-;- ••
••••••••
••••••••
••••••••
I""""
Irrrrrrrr
8.8, 'In
ri CIlstom u.po .. ItItható s;ú.U!k

Ha fooás nézetben választ juk ki a 8.1ckColor Ilbidonságot a Properties ablakban,


nem logjuk l6tru 8 8.8. ábrán ~1hiII6 ~nát. csak Ggv listál, amefyboo a szlnek
nevei található!:. Ha látni szeretnénk ft színplllenát. ell'(SZGfÚen vá/t&W1k e Design
oézetre,
182 1Lr6IZ • lImIIted6S IZ ASP.NEH"

Ha megt:'lL1huk a kív:1nt h~n&szím. CS3k k:lltin!.>'Unk cl; ha pedIg nem t:I.l1lunk ked-
,i1nkn> v-al6t. kattintsunk az egér jobb gombji''31 az ('gYik üres színnJeZ6re az ~156 két
1IO!'Ixtn Ezzel megny'tjuk a Define Color (.~zín meghat.1roz:lsa) p;'irt:.eszbd:oblakOl: (L1sd
~ 8.9 ~bcl(). ahol kiV;lilasZlhatjuk a kAánt szín!. Miut;ln ez megtörtém, k:'Iuintsunlc n
Add Color (Szín hozz:l:Kl.1sa) gombrJ. és a szlm, amelyre jobb gombbal kalumouunlc
a Custom lapon, (el\'~llj" az újonrum megh:nározou szín, és ~ Bac kColor lulajdonság
en n újonnan megh:náJ'QZOO szím kapj;! é"ékül

. ...... , .~ , 'Ic

.:.

_.""..
- ... ", ~

l /1" .... I(
.....
po-
8.9. ...
Á D<!j111P color pdrluzéd(lbklk/"'"
<'8).m1 SZlni ~htll"". /él""

Egy színi úgy is kiv~lasz(halU!lk. ha a \'(cb fUlrc kauimunk Ezen" L1pon is olyan
sl.incket tal~lunk. amelyek közlll v;l,laszth;nunk

A System lapon a 'Irlndov>'S rends>:erW.inei( t:I.l!iljuk. amelyeket olpn rend"zenula,ldon-


.$ágok ha~roznak meg. mim az ACl;\,eC"plÍOll (az ~klív dnlllOrok ,zine). a Desktop
(az Asml szlne) V3gy a Window'feXl (n abbkolloon mcgjekffi szöveg szlne). Ezek
a nevek különböz6 relhasználó ;I]wl megadható színeket jclölnck a >,t"mdows opcnkiós
n>rKbZl.Wt.'11 Ca Dc:.klop !*IcUul a \t~mdow!i As=!~""k h:lu('JSZÍne). Ha úg), c\öntOnk ,
hogy ezeket a színne,'ekct alkalnuzzuk, a l:ítogatÖk böngés>.6jében olyan színnel
jelenik meg ~ ".-bold,1 szövcg<.". antilycl a gl'pükön be:lllilOluk a \\"indow's sZlin~r'd

A Windows uínbeáUításalnal:; megváltozatá&át!ol kattimsunk az e!léf jobb gombjával


az AsztaIriI, és válasm* I Properties flLiajdonságok) meniiponlot. maid a megie!e,ws
párbeszl\dablakban az AppaMllllC8 IMegjekloosllapol.

Állitsuk JÚt:1 B4ckCo l o r lUlajd<::oruJgot Na"Y·re; ezt ~ szint 3 Web bp<;>n találjuk

A l:Ibel \'ed'rl6 Fo r eColo r lulajdon.~ga a n>egj<:knílct( <wvcg színét állítja be.


Amikor en a tulafdoru::1.gOl ",Iöljük ki. ugy:ona1. a I~romlapos JXlJetta jelenik n-.eg. mmt
mncJyet az imént 1:lullnlc. Ehhez a tllb;donsjgl\O~ dJ:lsszuk 3 \"(11;te szint 3 web lapról,
B. ln • IUASP.NEl szöv8\ll,..wllm,'t6 VeDrI6i 1183

Eddig a Label ve~ér\6 három tulajdot'ls1g:'lt :lllilonuk be: a Text tul~jdons1go1


Thi" la
a tnt of the color propertie.-re, a 8a<:kColor-t NaV}'-re, a ForeColo~·1 pedig
White-ra m6d05ltottuk. A tervezőben ekkor a This l B a test o f the color
properties szövegct keIl11'nunk, fehér szöveg- és tcngcrés<:kék h:íul"J'SZfnnd, ahogy
a 8.10. ~br:ín isll1th:jtjuk.

....
""",~.

-_
.. _'.01".
... "., ..,_
_----_
,._W~.~._

-II
_-..
... '_"~'.

. : ..

_.
-----
,- I' ,..

B.l0.
Cimwfollér sWt.-g- és ~
Mllbttim,l'I" tN1<'Z"Óbl'1,

M"nlSOk u AS I'./'.'1:' oldalt, és néUOk meg a \.Jöngészdnkben, lia fejlett böngésZŐI.


hasznijunk. ugy:maz, a kiment.1~'1. fogjuk l~tni, mint az :lbr..in: a This is .. tellt ot the
color properties szövege!. kék abpon fehér betűkkel. Ha aWfloon a weboldah
egy f~'ilctlcn bóng6>7.6bcn tekintjük meg, péld:lul a Netsc:lpe ·LO-!YJn ..• akkor 5elnm,t
nem látunk! NézzQk meg a 8.11. 1boolt. hogy 11ssuk, hogyan is fest a ColorLabel , aopx
a ","el5Cape 4.0-00n.

B,l'.
lia az oIdnl, egy frjk1WII
""1Igész6bc>' teki"tjük m'8-
....'",mlly,m """"8<'/
""Jn lá'llI,k " 1<I-"/:rny6,,

Ahhoz. hogy megl"llhes.sfik, mim ncm látunk st'mmit. meg k('!J vizsg:'ilnunk
a J\el5Clpt' 4.0 6; a többi fejletlen böngé5z('\ ~I.al kapol( m"tl -k6dol.. amelyet
a 11.5. ~1(L1 mUla!
184 11. r6a: • lSrnMUd6S IlASP.NET.-I

_ "ht tp, 11""",_,,3 • or; lTP ,,,!\tool 1 {DTD/"lIt.. ll- nan"i t io",,! . eltel' >

"],
4:
<lItml xmlns."lIttp, ;"""",,3.or;1199!1lxlltml"
~lIeael><t! t l e :.
>

S, Untitled Pali"
6, </titl~><lhead>
7: ~bocly~

8, <for" naJ'll<l' " fom.l" ""'thod. "po\It"


_ Ilct!on,"COlorLabel.a.px" id. "forntl",
9, <input tYP"='hidd"n' """, . · ~V1EWS'T ... '!'ti" iel~'~ViEWS'!''''TE"
_ va l ti'" "i ...
EP~ODEJ<Mm:SN.Y5ZGR5 P!l2YFjJU"WVal,sH40Zd,XFf "yQ •• ' I:.

12: <_n i/lr'Labell'~<:font color="Wh1t .. ">Thil ls a test of the


_ color prOP<'~tle"<lfont,.~I.pan>
13: .."/liv>
1(: <{fort0>
lS, "Ibocly~
16, <Ihtml>

Ahogya I 2. sotf.,;,n láthatjuk. 3 !.:Ibe! vt<~rl6 l'oreColor lubj<loru:íg:\.nak It<képe;resekor


egy <fonn elem;ön INre, 3melyrK'k color jdlenw5jo: a White ~~kCl kapj;!. De mllÖf-
lénik a BackColor lub](lon.s.lggal? Ahogya 85. példábólláthatjuk, ez a tulajd<.>mJ.g
nem képez6dik Ic.legaljbbis 3 fejk'llen ~bc:n nenl. Ennek oka az. hogy stílus-
13pok n(,lkül csak ügy 3dllalunk lúu&s<t!m ~'gy szö':eglX"z, ha a szö,-eget egy <table:.
!ITMl-dembe hely<'llilk. él a l~blául bqcolor jeUt'fTIZl'ijá. ~llitJuk a kívjm színre.

A SlÖveoek Il6ttéfszlnét stlkJslapok hasmálatalr.or a bo.ck9round -color


stíktslapjlll\emz6 sagítségévellllflaljuk meg. A aackco lor tulajdonság llflnek
segftségéYlII képl:ll6dik le il fejlett böngés..!Ókben.

A l~nyeg az. hogy II label vererlG BackColor tubjdoru;:;g:.I nem képezOdik le II fejiCIlen
böngész6kben. Ezt mindig tllrtsuk bzben. amikor egy label ve~érió színtulajdon'iág:.l,t
álHtjUk be.

A fejlCll bön~ •.6kbeo II label vezérl6kben megjclenít~'ll $ZÖ'<eg köré szt"~lyt is


lchClönk. (A fejICIlen böngészőkbc:n a szej#l)lUlai<Jons:1gok be!ílHtls:. nincs hatással
II Label "ezérlób6l el6iUitott HTML-k6drn,)

Kh~ítsUnk oIy:1.n ASP."'ET webold:J.lt. amely ~l},


jelenít mcS cgy label vt<zérl6ben
megjelenített szöveg könlL Kezdjük lIU.l11. hogy lé!rehQzunk egy üj ASP,)\1:, oldalt
Borelert.abel. a9pK néven. egy Label \'ezérlót hütunk.-:l. éla Text tula~g::it
a. 6ra • Al ASP.NEl 1lÖ~..,negiII, rfttI 't'8ZM5i 1185

~ Tellting th" border properties (A szeg('lylulajdon.s:igok teS>1te16e) Mékre 1lliljuk.


Ez ul:in k:minlSUnk;,1 ,=érl6 BorderStyle (szeg«I~'S\í1us) tulajdondg;ím. Ezzel egy
lenyfl6 !ist;lt jelcníliink meg, amely külöobö:d> !chd6>kgckd urulma~ a label ...",zt,rl6
köK h",lyezend6 szegély Sli1~val kapcsolatban. Ezekd;,1 !chet~kd;,1 8.2. tib/izat·
oon lt'kinth(>!jOk meg.

Szeg6lystílUI Leír.
NotSet Ez az abpéttelmezb A label vezérlő szegélyét ekkor kü1s6

MO'iI ,~I~k;,1 Solid beálliLÍSl- ekkor 3 lerve;OC!ben egy folyt<)f'lOl\: szegay jelenik
meg;,1 emke köriil. b kq,em)'Ól"lkön valami ol}'~nlll kelJ l:imunk, mim a 8.12. ~br:1n.
Megfi~eJheljilk, hogy az ~br:1n J~lhat6 SZO!gi'ly fekete, de a színt módosith;,1ljuk;,1 Bor
dert:olor (""egéJyszin) lula~8on kcrcs2lüJ. Ehhez 3 lulajdonsighoz ugyam,gy
vlilaszthatunk szint. mlnt;,1 BackCOlor vagy a f"orecolor tulajdomághw.. legren label
vezérlőnk színe rnOSI \..xos, vagyis Vl1lasszuk a Red szint a ~eb lapról.

8.12.
liJb<:f l'Cu'rl6 foIyamalO$ $.U"f<'I/yt'I
1815 II. I'-z o ~ II ASP.NET·t.j

A Bo.-duStyl" és Bo.-dect:olo~ lul~jdon~gokon kivüllt'lezik egy Bo~de~idth


(szeg~Jyv3S1:1gs!í8) ne\'I1lula;dons:\.g is. Ennek &1Hekénl írjunk be 2-1, amellrel
2 kC,pporu s~les szeg.'cl}, hozunk I('tn'.

A 8.13. ~Inán Ulhaliuk. köliilbelül hogy~n fest a lef\'ez6 nézetben a k~pemr6. nliUl~n
ezeket a n,lajdon..:igokal beál!ítoouk


.---
__
." 0'-

...... . - 8.13.
.~ ÚJbeI ,,,,,,hMfo{l•.,,"'tos,
,} klppcmt S#Ier t<'lnk sz~lyd

MOM stiin;unk ~ egy percei.. hogy megnézzÜk u oldal( a bön~n is lb u oldal!


fejlett böngén6ben lekintjük meg. a "I'estlng the b:>~d..r propj'!rtte.. szöveg
2. képpont sz~lei. VÖfÖS. fol}101101l sregéllrel jelenik meg, ak.1rcsak a lerve1.6ben.
l ia azonban az oldalt egy fejletlen böngész6be töltjük be. csak a $zöveg les~ l~tI"'16.
a szegély nent.

Ahogy ~ leckében kori\.lb:m l:ínuk. 3 label vez~rl6nek ,"Jn <'gy Font lULa~, amelr
löbb résZl\llajdon~gg:" (Boi d, Ita II c'. Un<lerline. Name stb.) is rendelkezik. és azt il.
megtudlUk. hogy a Bold résnuhjdonl;.;íg bclopcsolis.ival hog}"Jn ~lIíthatunk el6 fHkÖl.ér
m..·~'Set, Most folytassuk a Font tulajdonsig résztuJaporu:igaivlIl ,"dió ismerk~-désl:
hOWlnk létre egy III ASI'r->ET oldal! LabelFont .aspx néven. ~ hlIWlnk r.I egy label
vezérl6t 3 ter...,zéOt.'fl. A vezérlő Text 1I.>1a~~nak adjuk a worktng w\th th .. font
propert 1,," tA l:>elűlI.>laj<;\oru;;jge>k kerelése) fnéket. majd a font wb;doru;lgnév lxii
oIcbl1n taJ;ílhaló plu~zjelre Iotlínl\'~ bontsuk ki ~ résztullljclonságolCll, (A font tullljdon,
~g resztulajdonslgainak teljes list<iját a 8.1. [jbl~z:Hban lithatlUk.)

ÁJJitsunk be néhin}"J1 a Font tula;oon<;ág résZtulaic\ons.1g:l1 kö.,;ü! EIC>szÖf az naUc


rému lajdons.1gOl ~mtsuk True' r:I; e kkor a d!llke szövegének d6!t betiI\'cI keU megje-
lennie a l('r\'ez6ben. Ez ul1in ~ Jol ....... lub~g alan v~lasszuk az Arial be(alípuSl.
a. tlI1 • kt.».HET a.iiw@1!_ ' rIIr1 VMrkti 1111

MU.lt:ln ell kitclóhiJk, a Label \'eZi'Ti6nd: ~ tt.'r\"czlíbcn friS5\llnie kdl. b; UÖ\'~ ,mlTÚr
Ari:,1belíilipu~1 kdl btnunk_ vtg<ll ~lIitSuk,. She resZlub_jdonságot ll. 22pt ~"~kre!
íg}- ll. címke!QÓ\-ege 22 pootOS Ix."úméretre n:lgyrt,"~ jelen,k meg II tCf\eZl5lx.'n.

li 8, l-l ~br.ln ~z.I~jűk, hog)öln f..'>ll eZt"n II ponton \'1Sl.L:I:1 Web f)e:.-elopeo-
ll.

II~ kÖ':"t"ttuk II fenti léptscket. ktpcmyőnknek III :.ibnn ~lh.1t6hw: kell h;asonli"'mll.

.... ..,--_ . .,
"~","

. ,.._.~

"~~ --
.. ~,~. --.,.

'Worldng wllh the


Font fXOP6(fIeS

8.14, MInt
UJM ,nt'rlrf Q Font ~
. _...J7" ItiHlUn)' n'Utula}donslWlJna •
bedJllI,15Q "',,"

Ahogya korábbl ~kL1kban tot tl'!lllk, most is szinjunk r.l1d6t. hogy ~nílk n okblt
ll. böngés7611C1I, & mcgv.~!fuk II kapott HTML-kOdot. Ib az okbit fejlett 1:röogésW.'e(

t"k'nlJÜk meg, a Label \-cztri6b61 cl6áIlÍlOtlI-fnIL-k6d II ~UMsok:ot II styl.


jeIlemZ&m adj::! meg, A Font rub~g fenti bdUíthai n>elleu egy fejku böngbző
a kö....:tkezó I IDll-ködot kapp a Label ,-ezérl6I)ÖZ;
up .. n ld~·!.abe 11· .tyle.·! ont ! .... ly: ..... 1a l , font - ai u, 22pt ,
_ font-Olyledullc,'~W<>rklnQ" \:IitI> the Font pr""",rtie.~I.p.o.n>

lia az oldalt llzooh:ln egy fejletlen ~ tóltrflk ,-"" II Label vez&l6l~ k6zit~
HTML-kód rg)"Uen1lf1Ml-.c:lemckkd adp. meg II SlilU5bd.lht.i.wkat, vabhog)' Igyo

_ pn>perlieUlf',,'></;HJ pan~

li Label vez61l5nek nok II tub~i, amd)-d<r6I rJqj nem brszeIrunk, Wg)'es


aoportot alkQtnllk, \'m például cg)' ';.<,itip nev\! tub~g. amelyrX'k éntIr:(:(lj
Vlll;uni/yen ~ (egy Iw:r.kterUnroI:) lI.dll:ltunk. Amikor II fcl~16 3 dmke
szőv<:gt: fölé yi$Zj u t"gérmUt:l!ÓI ~ ~z6tében, egy lehegő 5:Írg:I bubottk jelenik
meg. 3rndyhen 3 1'0<:>1 t ip rulajdons.lgna.k ~(:kül adott .l.Ö\-"egcr b\thatluk. A 8.1 S. ~br.\n
Lltll:lljuk, hogylln f~ egy ASP_"'ET ,,'eboIdat 3melpw ,..., ,1 t ip rul:lJdons;og:a II ,"ü. i •
.. t, ,ltip (Ez egy swvegbulxlta:l m-.~ I:lJUlnl:lUll
I. I L_ · ~.ASP.te-tll

--
ISan example af a
I L',b,,1 Web contral with its
8,15, "
Am;"'" <lZ tg&mUUUÓI a <"" ..fiJM ''Ilu,lJr,
• <t/.I' ~"'1lhu00n* jNmlt ""'JI

A t:.bd ,~ZII!rl6 qo-(:b lul:itdon-~8:U k~ L:lno1,ik a lieloht (.\Ugas:s;1g) t$ II Width


(SZO:Ies.q> is, Eooek a ~ IUbjdon.~g.uk II ~ abbkban ;odh:;JoIUnk kankn:,
éndcoel. de ligy is módo6ilh:ólljUk (ikoel, lu to..,,",-~ ~zro.x.n á~ II cinlk&.
A,~ a!mkel:~ úgy IOOL'nik, hogy Jl: l'gi'rb:.oJ gombj:1\':1IICilltmn';l qJ)~
kqdolrok a \....zérl6I. hog)-lú.rom kiesi. 0= ntgyzl:t ;e1enJCf' meg a \.~ kOrüI-
egy alul. rgy a tobb:al.ió ~rokhan. qJ)' pedig ~ jobb.szélen -, n... jd ,..l:imelylk négytetn:
IwUtnl\" CS U f.'gér gonilipl IeIl)'Qln ... lam1l ll1olg:lljuk az cgereI:. Ha a vezl1i6l; a ki.-ant
ntm:tre :ilhlouok, engedjük fel u ~ A Heloht és Width rubjdon.'>:igolc auto-
malikusan al: lij ,""I'\.,re
,'állozn~k,

A VI ,ib1. (litható) ktgi!ui rula~g, amely a1;l határou.a meg, hogya b bel vez61l'l
n>egjdenik~ a bllongész<'íben. I b e1;l J IUt.;doosJ.got True-r:I :IlJiljuk C"l: at ahpértcl-
metés), a böngésző ~pj::o a Labd ''C"zérl6b:'iI cl6oillitou Ifl'ML-kódot. ha alOnb:ln
I'al. . éntkd adunk ndti, a labcl "mrl6lektpc~ nem km:il.or. ezéft a bön,gtsz6
rK'Ol!up annak megfelelo."i H1'Ml.-kódot,

Kr.aOC>.lak lehoetünk. '1Ijon mi ola len ..... b4rim~k 1S:>mI, hogy módosi!5:ll"Z1 a
tubjdons:igot - ha nem ak:..;:. ..... iJ<'I""il""i a dmkét, mltrl hozn.:i Iéue. csak azm,
hogy aztln a Vidbl<' tul.:l;dom;ig;;ll vat .... ra állii$a?:"em "8)'"SZa1Ibb, ha nem '" ~d)a
hom II , ..,ze,rl6l; lll: ASI'."fET oI<blhnlJ

A kÖ\-'"kező no:;lúny 6r.íban, amikor a felhaszoJI6 <iltal megadou adatok wel:>eS arla-
pokon Y"Jló ~~·cI fogl~lkmunk. I~lnl fogunk olyan ptkUk:Il, amikor éppen
arr:1 >r.In szükség, hogy lé1:rehouunk "f(f ubel vczérl6t. és a Vi .. ib1. lul~jdon.-.Jgál
k<'zMben Fal.,..·r-d :illílSUk. TegyQk fel ptld!.ul. hogy van eg)' ASP,r-1:' \....... lOkblunk.
amely a fo:!ha.=úlótól ll. ne-.'& és:a ;elsz:l\'~1 km. és amennyix:n:a fdhaWdIó én':''fl)''
Iden f"IO!'\o'd ' ..gy ~ ad mcs, meg keU jderutenOnk ll. megfcldlS hibaOzenetet Ekkor
clhelyezlldjlik az ~ urtalmuó dmJ,:~ az OIdalOO, és kezddlx:n clfqd~JUk
a Vhible tulajdons1g Fah"r:I 1Ihúdl'al. m:.apd ha a felh:w:ni16 heI)1e1en je\S2:ÓI
adoa l1"qJ, a PrOgranD':t TrUe-f':II óillilhaljUk II tuhjdons1got. és end ~úk
al(l~.
.... • NASI.NET iidiu. . u ' M'; r111 1189

A label ~ leMmIrad6 ~ _ k .. ,.AI<."'Y. u...,."l.tedC ontrolID.


;8&<:1 ..... Enabled. !n4bl..11.... 1nll. '''",bleVieo..-St.te, !Elqlre doni I ,
SkinlD n Tab!ndex - túlmutatnak könyvünk k~lItllin, dIIBlIIkIll a tulaJ(lonúgokat
nem 1$ fogjuk ~ I könyv péküiban.

Összefoglalás
Ebben a leck&en lIZ ASPSET ~.egcs kimenelck 'rot'8/Clcnilé5é're scil" kd .... dJOe:s
,e~eI ismerlI.edtilnk nrg: a ltl~ k 3 Labd \'cz.-r\6o,-d, Ez a két \'eu'fi6 a leké-
pel,;,wkkor előallilQU IfTNl,.k6dban küli:\nl:lözlk

1\ Ulc ..~1 vezérl6lckl'pelbckor CSólk a \'clbl6 TeKt luJajtlonSlg" al:ikul HTML-ié


I'onn.i.dsr:> nem kcnll §OI". bo k,cgbizil6 t-rn.U.-clemek 5e1Tl 3d6dnak al okblhol. Ezzel
"lCtnl>m 3 Label \....,zérl6 form;,j;wn SZÖ\'eg IlK'8JClcni(~ is alkalmas; Iusznilluljuk
pa.,uul :m:I., hogy ~lk""Cr bmJn'l út '"'lJ)' S;Í'1P hoin&relI'LU«J{[ SZ,Ö1.'eget I"unk kl
I'.hho:;p; ~ label \'ezérl6 killonftle mC'gI"ierutÓltubjtk>OSóigobl \xlao\t ~ n:nddkl'~nk­
~ (I" ","c·:or. Foree'llor, ront, Border<:olor. Bor<lerStyle sID.). A Label \'ezerl<l:
k'k ...~kor nem csak a -r.xt tub)donság fTlC8II'Icnlt~ kfflllsor, h;....em egy
~ .. pe.n> 1fJi\-ll--clcm is Ittre;ön. 1ImeIy meg.dp ~ flllTll.iz.h. lubjtk>ns.lgol< én~kl'bl'n
me8h~ldfoZOU iellem1.6kct

MOS!, hogy l1íuuk . hog)':In h:'5ZJdllUllUk 3 Ute!':d él 11 !.:Ibel \'eU'r\6I:. k~ jllunk ~rr~,
hog)' fllJ)'elmünkct nok f~ a ..-d>o \'C'léMk felé: fordi~k, amclr':kct a fellu.~16
..11:ll megado« a.wok ~~6ére tl'n'atek_ II)-etl \'I'l'i'rl6 p&l;\uI a TatBw:.
a I>ropDownli$l V~ 3 IbdioBunon. M>d6u:uonb;an ~ednmk «ekk~, meg
kell \·izsgWlunk.llOIJ)'1In gytl~enek :adatokat n ASI'SI:.,. ..-.ebokbbk a ~10fPI6k161. éri
hog)':In acJpk at a1:<JOIat a w~liur;zoIg:il6nak. &ul a lém:I\':I1 fogl:ilkonk a kln-etkczó 00,

Kérdezz-felelek
l: Mds 1IDII...JI6dot lIup ti /JrJ,rgész{J Q Ü1cml ~ Q UIbd 1I'f!bes t'f!U!rlóll
megJeU:oli/ésCha!
v'. ~ta flgyelmvnd kOl'ettük nórA. megtudluuuk. hog)' amikor az ASP'"'I:,"·lIlQ(or
v'-'greh:a~ egy ASP :'\"'1:,,, okbll. a .... ereHeú.'fI6kct I ITMl-kMU képeZI le. Az..
hogy pont~n fllllyalIIT\ll,.k6d jön Ittre. a ",ebe!; \'ez&ló rul:i)dons;ig:.tl6I fOgg.
A leckl':ben kél. különbö~ veztr\6l'd i.sn1er\tcdtOnk meg. a !.lleTal és a Label
veZl:rl6kkd. Ib k67.ítUnk egy ..... eboldall, :l11>c1)-etl egy lite,," és~' ~bel
\'ezérl6;5 tal:ílh:Lt6. 61nlndh'l.11'i Text tul~,doru::i8:ít a This il a te.t s~'egre
olJJilfuk, a~ ASP:\"ET oldal b/)ngés~ tÖl1t'n6 rnegtcltinll!sekor úgy tanht.'I.,
hogy a kél. \'eZl"l'l6 UIJ)-:uu.ll a t-rlN!.·lmner".'l.ct ~nye1.i. Mindamnlital
lényeges. hogy ÓZl'e\t'8)'Ük, hogy a két n~z('fi6 ~kg különlJW6 IIDII,.k6dot
.illi( dó.
l
110 LIC· ~m:ASP.HET_

W1hallUk, 1108)':0 lite1.iI \'.,z&16 l mll-kódj:l. nem mh, fillll J \'czbt15 '!'ext tub,..
OOm;Ig::1lt:1k értl:kc_ A Label \'c;ebi(l ezzel ~bco egy <"PoU» ,rrM lrcl,(,m
.M."l!ItXghel jeleníti meg a 'text tul;tjOOns;ig.:l1. \':Ig)';' példánkb:IIl:O l:o!x:! \'cu:r\(I
HTML-kódja ez lesz;

ALJbe! vezér16 tehil egy <IOp.an~ IIThIL-clembe burkolja :o '!'ext lu!ajdon,<;;igJl,


hogy ft.lllNzha.ssa a SZÖ\cg<.'1; példau! h" a ,-.,z,:ri6 Font rulajdon.dgjnak &old
~ubjdons:ig.:ll Trut-n i!hl!Uk, egy fejlet! böngész6 az a!jhlJi Imll-k6dul.
fagp k:lpm:
<span ,.tyla~ -f , ,e "',II,',bold,-,Thla la. te~t"-I 'VI'"

K; AzASF~\'ET-nKJ#Or~I"pezl ka umcs,~. hafo.jlctll..,g)'lw


frik-'tkl, bl»lJJész6tri /ein/lilII meg ar oItklll- d .. mem/)"" ftletjedlNt CX)l6/l<Ikill
rI.fo.jkfkn bónpfozóltJ
v: Az ASPl'o'\:.'-1I'IOWI' az utóbbi nl:hiny (",ben kiadott modem ~eI fl-jlcu
~ tekimi. A fe,1etJcn böngé$z6k megJchct(\sen n'glck; olyan d~\'\I!t
bö!~r6I van szó, milli" I\etx-..Ipe ,i-es b koclbbl dlt07.atd, I"'~g)' az Inte1noet
Explorer 3-as b ~>i v....á6i. A1lOIIY ebb.on" fejezetben l~nuk, a fejl,-'!!
böngé:sz6kben helyesen megjelenO' ",-..-bes vcz&l6k nem hinO$.11Og) " fe,lclJcn
~bco is megfclcl6en,ek-nnek meg. Ib biztositani su:fCtntnk, hogy
"'cbokbJ:omk mInd a fqlctl, mend a fejlcUen ~bcn múköd6kc:.~
leg)'COC.'k. az oI<lalak3t nundkél aJZL\1)'ÍI ~ ki kell ptóbálnunk
"~azonban gyQf$On letöhenénk a S~pe 4--d, gondoI;.ck vl:gog, hogy
mcg..'11-e a fir.od.dgol. Ilin)"n laaszn;lllt:lk m;11t:1~g cl:l.\'\I11 ~<:t?
Van el~ fcltwzrdló ahhoz, hogy ~ leg)'en idI5r tölteni a .....:\>hely megje-
lCné:Imek finomhangol;isj\':I1 qno apró ~ ~ra~
Az Interneten több wcbhelyt:t is taWunk, ~hol ~jl:km6dh:uunk .utól. hogy
n 3dotl helyet milyen böng~kel Jjtogat~k meg 3Z utóbbi od6ben
Az egyIk iI)'en hely a TIleCoumer.cocn, amelynek ~1"'<1,k~J.Ít
a http,II"","".thflCOunt.r •• '_/nat., clffi<.'11 tal:iljuk. 2005 novembe...:u..on
II TI!eCoum ..... com több mim 75 millió k{-n,:11l1(.1 jegyzetl fd egy h6nap abu,
amclyb61 körillbelül 63 OOO (O,()!N;) sárrnJZOIt fejleIkon bOngtsz6nek tckinlllCl6
pn;tgramI6l. Ez nyiili.nv:;al6an C$Upin apro tötedt'kc II tel;es forg;olonuuk
A kl:relmek túln)-un6 tObbsoegc az ImCTTlCl Explorer 5_O 61 6,0.:0 11tdox, aSIfari,
a Netscape 7.0 61 az clper.l ~t6I mezeu
IIcllwn nl:zve, \':IlóIQimlleg nem kelJ aggódnunk II Iusso! ~ ~
rrn;&U, hacsak nem oly;on ...·ebhdy'et üzemchctűnk, amelynek boulrrut oI)':Inokru.k
$WI, akik lehet, hogy elavult mmit6g<:peke! hll:iZNllt:lk (ptld-.íul ~ f.:jl&lo5
orsdgokban fl6knek),
Ismét16 kérdések
l. Hogyan jelenuhctOnk meg fonn:ízou szöveg.:..1 egy iJlenl vezt.-rl6l:ocn'
2. H~"~n jck'flilhetünk meg form!i:roll SZövegei egy LaI:lC'I veZérl6ben?
3. .A Llen] "ez.. rt6nek C&lk egyctlen lul~,donI;Jg;t ' .. n." Te7Ot_"lg:Iz ";lIfT hamis?
4. .fl. L:Ii;od "~~k cs:Ik egyetlen lul3jdon.sjga v~n." Text,· 19;oz "~gl' h..IlfUlJ
5. EmI&euünk nssu, hogy amikor U A."PSI:"·lT1oOIor ~jt eg}' A."" XET
..~11. ann<lk ....ebc:$ \'eUrl6." nekik megldd6lmtl-kódd1 al:lknp
'illyen tényez6k h"Urozúk meg. hogy mdyen /lnll-kód jön [~<1O':Idol1
'-N6i6höz?
6. Mire s.zoI8~1 a ÜIC",' <':=s" Ulbcl vezérlő?
7. Mit" mondh"IJuk, hogy a wd>es \'cz&l6k IGlp(;soliJ.k össze az ASI',!\'l"
webold:tIIITMl él fombk6d re,z/!t?
8. .A bbel "ezM6 .' -l n' " ,l, , tuJatdons;lg:it a fejletlen 1>öngkUIk fil.lydmen kivill
h:ogyj:ik. '":agri!; mmden fejletJm böngéYi'l ftokefe i!.Zinnd jeleniu meg <e.reknek
a \'eUrlőknek" Tellt tubtdons;lg:11. fOggetk'nill a ForllOColor lub,clnns<lg ~é­
~: Igaz >-agy h"mW

Vál8SZDk
l. A I..ileral vezérl60ck nincsenek fOl1nizisllubjdonsigai. ezért ennek" \'czerl6""k
:ll e5etax-n a W'trqo>-6 HTMl.·kód eg)'szeriicn" -:'ex! rulajdons.ig ~.,ke!oz.
lb ~ l..iler.1I vez('f161 (OI'TIl;Í:na.szen.>tnmk mC8/CIcn;teni.,. megfeld6 HTML-
demekel,. Text IUbjdonsagb;o keU imunk.
2. A Ubel ,..,zérl6ntk!öbb f~ IUbjdonsj.g;. IS ~.,.n. amel)'ek .!oe"8;~·d
form;izh:lIJuk,. SZő\egct. cs;ak "nn~'i a dolgunk. hogy bclIJitjuk,. megfdell'l
tu 1,.;cklru:Ig6t~kekel.
3. Hamis. A l.i\er.;ll \'e:rerk'>n<-k többek klkött V"~n egy tD tulajdonság;!
4. Hamis. A Text lulajdonslig tndlen,. lolbel \'eztirlO" WU>O!i form:iU.l tulajdon-
sliggal. egy ID luLojdonsiggaJ ~ eg)'é\} lul:ljdon$ólgokkal is renddkel.ik
5. Az.. hogy mil)'en JITML-kód jön Iéire egy adon \·ezérl6höz. ket tto)..,lö"I:05l fOgg'
a "eltriO" IUbjdoM.1g:l1r\3k bt"két61 k a fdru.svUJó bÖngéSZ6iétO"I
6. A Ulmll b a label "ezérlő w.ó\~IIOn: l~ló.
7. A ...·ebes "eúrl6k kö:n·etit6ként swlgáln..,k:lz ASI' ''ET "'eboldd IHML k
fom1sk6d ri-ne kól.öll. mm:l HTML r6zben helyeUilk el6ket, é-s IITMJ...kód
jön létre belőlük. de ~ fomlsk6d ri=b6l. progJlUT>Ofl ken":SnÜI vezmlhel6k
8. Il3m;$. A fejlellen böngbzO"k a ~bel "ezérlO" BlIckColol" \Ulajdon$ólg.11 h:l.8)·i.1k
figyelmeu kh"Ol
lal I L riIIIZ • 1Im.ted6I.u MP.NEToCIII

l . Kf,szítsank olyan ASP,NEr weboldah. ~Ille!y egy Uler".d vezérl6 K'gilSl'gl·... e!


mqdek-ní', az okb! URL-if!., Ne rögiliOk al l'Rl-t a ve1.érl6 T.,,,t tu12jdonsá-
~n. h.>.ne111 a tuJajdons:1got ll. pa\j .. _Looad e5e!1li:nykczd6ben. progr:unk6don
kcn:sztOJ áUlblJk be. Egy okb! ltRL-1í1 az ~Ubbi. kóddal Japh.llJUk mqt.

ASP ''ET "ebokb'unkon ,ffi;;.,


el kelj hdyeznl1nk egy l.!teral ,.:ebe! ~zérl6!.
amelynek ID lul,jdon~gá' bclUiljuk ":l!amilY<"1l i'rté~ (~cUul urlDi8play).
flUj<! J PaQ' _!.Qad esemomykclet6hO~ kell adnunk ll. kO\'~ke1.6 kódol
udDhVldY.'!''''''' _ R<!QUe .t .Url."oltrlng-()

2. Houunk k"\1'(' tg)' ASPSEr okbh. b ;adjunk houa~' ~beI \'C'zérl6r.. Állítsuk
a n'rerl6 "'"t tu12jdonsigál a What P~.ttY U,,,t! ~'<'gre. n\:ltd adjuk meg
nélliny f()llll..1z:bo lub;donsíg:iI T~ Rennt \-iJog:Ith:mmk kOwuOk, de
leg:o.libb 0U1ek aJjlJnk \'lIbmil)"ffl ~ék~, 1'f6I:dljlJnk ki olyan form1úsi
tulatdonsJgob, IS. amd)"ek~ a feJezetllen 0t;Ill "Izsgál!unk meg kOzdt.obbr6I.
3, KészilSÖnk oI)"lIn ASI'J..U ",·ebokblt. amely egy J.abe1 \'e7.erl6 s..-gitso'gé\'d
meg;c.lerud II lllog:uö IP dmft. (Al II' eim oi'gy wmból ~!I. é$ am< ~roIgál.
hogy alOllOSilSll a számitógépt."\ n Imt.'fnt:!cn lb oz ASI'NEr oId:.Jakat sapt
gépilnkr61 SZolg:iJluk ki. az IP dm 12""1,0.0.1 Iesz.)
A fdl=n116 ~ IP címe ~ ltaQu.. st. ';""rHos!;AddrNs uusillss:il kbdez-
~ le. A g)"lIkorbt d>'~.j>eZ !dú':ll okblhoz kdJ adnunk egy bbel
\-eztrI6t. meg kelJ adnunk sUm.ir:l ..abm,tyen altlrlO!>itót {ID 1U1.:I.~. m:otd
az ASP_''ET Okb.I forráskód I~I k:lne kell homunk qo' P~ ..J.oMI ~y.
k~~ ami" kÓ\"<'lke~ kódot l;Iru.lmazza'
II. RÉSZ

Felhasználói adatok
összegyűjtése és feldolgozása

9. 6nI A wa. ilrIIPOt llapjar


10. ÓIlI AdIl(jYÚjtés uövegmezőkkel
1L ÓI'8 Adatgyűjtés lenyIló listákkal,
v61aszt600mbokkal és jelöl6uégYllllatktl
IZ. órt A ftIIeSZrIM6i adatok eIen6rZMe
4
6 ~.
9. ÓRA

A webes űrlapok alapjai


.-1 h!cltt: fart'llm(i/}6l-

• l'eUu"lJ'\;llút ..a..tok g)VltOc IIDIL-en k<.'l'C1oZtül


• \t"cl>es tlrlallOk
• A w"ri>e\ úrlapok h:os;oI.11;;\I;;I:u ASI' SET wclx~..b.bkon
• A ....ebe:<. Ilrbpok tuJ"f(I"n~g;oiNk megh;ltJrotisa
• I'clh.:uzn.llói awtok ,OlSSZCgy':l"tt6<' n ASI'.:-'"}:T webokblJkon
• A ",ebe!; \'ezerl& ~IIJpoIjlklk megól7.é:.w ~ ",ebes Ilrbpokon

AhItOL ltog)" ha.<.VW.1& webollulmaz:áSl k~. k~ ken lennünk llfr.I. 00g)'


\-alahn8Y ~g}'ÚI.sük II fdh",'>ZnJ1ók ~UlaJ IlIcgJOOt adatoka!. ('5" I""",u adatokt61
filgg6en mas-mas L:lrtalIl'LilL )clcrutsiink meg a feUusmolJ6k ~nur:l, A:J. oly:.n ken:s6ml)...
torokn:lk. nunt a GoogIe. péld..., ~6oségct keU ;adniuk ami. hog)- a fclllaSZná1ó
rneg;;adp II kere,eu kúq<.-zi'sI, n.... td meg kdJ )dm~('muk a kere.b en:Urntnp:t t;lru\m;l-
lÓ wcbl.3pot. az AllL'ZOO,ccm-hoz ha.\Ol'lló wcl>he1reknek pedIS k(-pöIlCk kclllcnnlük
arrJ. hogy bcoI\'J~k a \<lsárió lIitelldny-~",n:lk Wn"'l. hogy dkn:tithcssd< a stiml.:il
196 111. rész • r~ adatok ~ lb ftIMIp&.

A HTML-t ezekre n igényekre való tekintettel tern:ul!k, amit a felha$Wlilói adatok


beol"a~1t segítő különféle tITMl..elemek léte bizonyiL Az <input> elem példiul
beviteli sZÖ"egmez6l<, jelölőn~etek, \'lilamógombok ts Ienyíl6 li~k megjelenítésé-
re ha,'izn~lhat6, amelyek scgil5égével a felhasználó adaIokaI adhat meg, adonn> clcm
pedig nreghatiroz1.a, melyik weboldalnak kell elkilldeni n ad:tLok:u fcldolgoz5sra

Al: ASP.'TI-ben nem kell rncgimunk a fenI említett HTMl..elemek kódját , Ehelyett
kOlönféle wehes "czCrlőkct helyczhetOnk az ok!alakr~, arnclyekbG fddolgOl.hkor
létrejönnek a megfelelő Iíl'Ml..,le1nek Például 11:1 aZl szeretnénk, ~ egy Sl:Ö''Cgme~
jelenjen meg a~ oldalOfI, "gy <input> IITI>U,-elem hou.áadi"" helyett egy TenBox
,'ezhi6t IUSZ!lllhatunk, a dorm> helycu pedig webes I1rlapot. A wcl"" I1r1aJX>k mtl)Cfl -
1{1('<6l és has>'rulatuW a f~;e7.<.-1ben részk'le;en beszé-lCink

J la doIgoZ!unk már HTML I1rlaJX>kk:.l,ts gyi!jtÖl.tünk fl'lha5ZlliH6i adatokat dinamikus


webokJalakon olyan tedmol6gi~k.segil5égévd, mim aZ ASP, a I'HI' vagy:l JSP, az
ASI'.~ET fdhaszn~Jő; adatok gyl1jtélére tervezeu nlOdclljét meglehetőscn idegennck
tal~lhatiuk, az óra "égére awnoon val6szímllcg r:ijő\'Űnk rrujd, hogy az ASp,NEl'
megoldlsa (a wcbes tlrlapok) cgyszcrffi:>b (,s könnyebben haszmlha!ő a dinamikus
weOOldalak régi módszercin",t

Felhasználói adatok összegyűjtése HTML weboldalakon


Tegyük fel, hogy egy ol}"~n w~-boldalt S7.ert.1né-n k kbzítcni, amely kis7.ámítja a L1togat6
te.;uömegindexét (BMI, Body "'1ass Indt:x),

A tess\Ömegindex a magasság és 8 testsúly .;ínya, és "talában ami NiSZ!láljál


hogy 1IY0fSat'l ~iWlapíthas~k, hOlI'( ill adott szemely lúlsUlyos, egjszséges súlyú,
molett ViIIIY túllottan sovány-e, A le-sttömeg!nOexr61 a htt,,: II"""", ede, aov,
nccdphpJdnpa/trni f elmen olvashatunk bóvebben,

Ahhoz, hogy m"gh.1tlrozha$$Uk ""lakinek a t'$lIÖ'negindelí~, IlKInunk keila magassá·


g:it és a tesI$Úl}':iL Eg)'elm tétekUiik fel. hogy "z! a weboldalt aZ ASP.NEl' haszn11a1:!.
nélkül k6z;tjiik el, és IITML-k6ddalállttunk eI6 két sZÖ\'egnrez61, amelyekben a felha5Z-
n~16 megadh:l!ja az emlílC!l ad:uoIGH.

A l-rrML-ben két elem ~II rendelkezésre a be"IU ad:ttok &s7.cgyU~ésérc, a donn> és


az < i npUt~, Ahh()~, hogy egy ASI',I'ET oldalon feihaSZll:ílói adaloka! g)'\Jjtsilnk össze,
nem kell pontQ5.'1rl ismernünk ezeknek az elcmeknek a ré$;detell, dc aZ adatgyl1jtk
mak~sénck alapjai\'al tiszúban kell k'1U1ünk, C1.1'1'1 IfI051 röviden áttekintjOk az
<lnput~ és <form> elemeket, illet,'e au, hogy ezek miként mt1ködnek egyilu, hogy
a webolda!akon adltokat gyUjth~nk a feJluszn,i1ókt6L
t . " • A _ _ .. 1ItU t6IpjII l ltl

Az <input> elem
AI- <Input> címk" :;eg,~...1SzöI'(,gmez61. I'"I~~lt6sombot, jdöl6nl'g}OZL1.<'t Vlg)"
gomboe hom~tunk létn:, A:t <.'Icm l y~ ;ellem~ adl'l """1:1.
milyen típu~' he:''''leli
\'e:renOnek ken mcgJCJenme II feltl:lSm:l.ló böogc:o\z6;ében_ P"'ldiul ha egy clpn lron
...'ebokbll ~zen:!.nénk k6zltenl, ~n",lyt'1> egy 'IZÖIegmew wlilh:l1ó.:u ~loibbi IrolL...
kódol ,m:.t",k:

A fellasmi6óo a toll. HT ML·kóddaI tört4n6 6su&gyQIIWt nem lárqyaljuk


részletesefl I kÖ!'rfVl*l. Ka többet !UIIIlItnénI tucn I tMníról, 1Btogasslri: el
I bttp: ,,,,- . .,l . _I't' Iht f' . sp c&nnr,YlI!I'(
olvassuk el • s.m. THeh JObCneI HTML and XHTML ft 14 Houn Cm:I kOnyvtlt
(ISBN: 0612320762).

MlI'eI webolthlunkon ket benIC.'11 s&'>\~Uin: Ies:t "'IQkM'g - egy II Ilug;assJg hüvelyk-
!Jen eiJrtl'n6~. egy pedig 3 te:SlSÚty meg;ad.1sJr~ fontban -, k<.'1 <input> elemet
fogunk Illl'iZIlální. és mindkL1.t6 tipusat • text · -re jllitJuk.

Touönleg-kl5dmitó webok\;l/unk eI.S6 IITML--I.,.zb,ul a 9, I példa mutujlI ('Ile fdo:dtiik.


hogy ez :uokbl még UI"OI jll ~UÓI, hog)' befqev:unek nYlld.nitsuk!)

), dItIIl>
",oo,.
l: <hl>BHt C.lcul.tor<lh1>
.: <p>Your He,ght (in (nchu), <input typ ... ·t.l<t · n ...... =·h .. 'ght· I><IP>

"6, <p>Your Welght ln pöI.<Ilds), <Input type-·t..,t· 1\4M>-· ..... ivh'· ><Ip>
" </body>
8: </hta1~

A 9_I ptkbk6d qn"$Zellkn nle8lC'Jenit két 5Wvegmez6t, egyet 3 nu~g. egyet pedl8
~ lotsúly scimil1l, Ahog) ~ ~ 6; 6,.$OIb;In Lim..tjuk, II k6dll:ln O;;ZerePII5 rmllÚkd
<Input> elemnek '<In egy name luJaJdoru,ága, ~mel)'re az <inP'Ot> elem t'g)'ed,
nonosilois,1hw: I':In szOk,.{,g, Ahogy ~ kön!tkew részben lleni fogjuk. az dnput
elem... k n .... jel~ ~kkor ha$2.00Sitjuk, amikor ~ kQ({)nf<'le <input> elemek
1.;lJulnút ('Ikllldjilk a ,,'d>ki$ZOlgjlón;!k.

A 9_1 jWn n>egtclunthctJÜk. hogpn jelenik meg ~ 9.1 pékbk6d <'BY böng<.",when
~"-'-""- •
--
_..-
BI\" C>l.lcullltOl·
,...
.... • "1, •.• ..--
9.1. iIbnrO
"fi'lIJI.sz,,(!/(j l.éI ~mn6I /Ol

A kl.1l.>t:v,teli mez6n kivill arrA ls s:luks(:günk lesz, hogy ,",,!.ahogy jelezzilk .. böngé-
szőnek. hogy ~ feltusznl16 befejezte az ~da!ok megacl..hjt. Ehhez ~ ellnl/tló gombot
h:lsznllh.nunk. ami ~ olyan gomb. amelyre bnont\"a a felhasználó véglegesíti a meg-
adoll adatokat. Az elküldő gomb! ITML-k6dja igy fest:
dnput type . ·submit" value,"Az elJnlld6 gomban -.,jelenÚendd ucveg',

A 9.2. p<:-Idában a 9.1. pékl.ak6d elkOId6 gomI:>b;Il kJegészítl"'\! ,~Itoz:ll:lt l~lh,l(juk,


a 9.2. áMn pedig megtekmth<!ljOk az eredmén)"t ís a böngész6ben.

I, <htm.b
2, <body>
l: <hbllMl Calculator</hl~
(: <p>Your lIelqht (in inches), <input type< "Uxt" """",,'heiqht' IH/p>

"6, <p,Your wslqht (In \X>UI'Idsl, dnpu' type= " t<lxt' n.a/MT· .... lqht· IH/p,

"g,
8, <p><input type,"sublolt" value. ·Calcul .. t
<Ibody>
.. BMI" I></p>

10, </html>

BilU Calruh,lor

9.2. iIbnrO
Az oldal ar dlnlld6 80mb
1Iorr<lDMs<J lll""
9, ÓfII • A wa. ~ lIIP;Ii 1199

A bemenet átadása a webkiszolgál6nak a <fonn> elem segftségével


lU l. fqezetb61 cmlo!::kezhetOnk r.1., hogy amikor a felhasznil6lekt'r egy \\'clXlld'lll
egy webkismJg:iI6r6J, a kis.zolg:i16 ~tadia az oldal HTML-k6djóit,. böngész/'!nek, és
a böngbz/'! ezt,. kódol kép.ni le gr:lflkusan. Ahhoz, hogy a böngts.W 'negk,.p~
a HTML-kódol, kapcsolatb.! kell Jo!::pnie II kisz.olgáJóvaJ. de a HTML fogadás:> utin
a ti=lg:ís a ken/'! közOO vl!get ér.

Az im('flli ft.;tt.'gt.'\és lény<'g<', hog)' a I\'ebkiszoIgáló és a böngbz/'l közl\(I ideigJer>e5<'fl


megszakad a Oz,kai (::s a k>gikai kapc;o!at. A ,,"ebkJ~.oIg:iJÖnak tehá! fogalma sincs arról,
hogy II feU,a~16 mit ir be a böngész/'ljlf>e. A kislOJg.11ó csup:!n annyit tesz, IlO!!}' vár
a bejöv6 kt'rclmt.-kre, és Yi:!sz:lad~1 a mcgfclcJ6 HTML-k6dot.

A kiszolgáló "" a bönges.z6 közÖtti kapcsolat l11<'gsz:lkadlsa miau II b6n~k képes-


nek kell lennie arra, hogy :it:ldj:l a feJhaszni16 ~Jt:ll megado« adatOOl a kiszolg.116nak
Ezt a cél! szolg:1lja II ..:fcrm> HTML..-elcm. A -<fontr> elemnek kell t:lJulm:oznia a feUmsz-
nflói adnak ÖS$7.egrú~ésére haslrdJt <input> elemeket, (::s az dkúldó gombol. is.
Amikor a felhaszn:iló a <foml> elemben található t'lkúldó gomln kattint. elküldi az
lirlapol. /Iz űrlap clkúldésekor II böng&.z/'l egy mcg!utiroZűIt webolcblt kt.,. a kiszol-
gáJótól.. (::s artnak adj.il át a <fOnIl> elem kOlörúéle <input> elemeibe in adatokat.

A dorm> elem fenti leír.ó5a k~ khdési. megvábszolatlanuJ hagy:

• Amikor aZ ürlapot elkQldjílk, honrum cler(jl ki. melyik wdJOldalnak kell át:ldni
aZ ..:input> elemek (anaImi\:?
• POnlQ:5:ln hogyan kt'rill n <input> elemek tartalma az em!í!('{! weboldaJhoz?

Ezt 3 kél kt'rdést úgy "jlasrolhatluk meg, ha mego.'jlSg:1IJuk:l. <torm> elem !letion (:s
..ethod fellemz/'lil. Az action jellemző h~t~roZZll meg azl ~Z l.:RL-t. amelyre a ~
sz6i irlnyiwni kell, miután a relhaszn.116 aZ lIr1ap elk1:lld6 gombjira kalUnlOU. Telt.1t
aZ action jellemző éTtéke adja meg, hogy melyik weboJdah kell betölteni az lIr1ap
elküldése ut~n

Az <Input.> elemek t:Ioulmlt 3 böng(:sz6 egyetlen IGlmklerláncba tömöriti, (:s ~z aljbbi


fOfll1áoon küldI el:

ht az IllPutNo!vl az el5Ő <input> elem name jellemz6jének éTto!::ke. az rnpuctrtékl


n el56 dnput> elem (::rtl!ke. az lnputNév2 a második <input> elem name jeUernző.
jtnek értéke. az lnl'Jl1ttt't~1<2 pedig 3 második -<input> elem értéke, (:s igy t{)'o";bb.
Mcgfigyelllt.1jük. hogy minden dnput> elem ne"éI "" éTtékl:! egyenl&l!gjd (~) vála5ztj;l
d. a ""'·....bu'k p:!rokat pedig egy _6;- jel (4.).
A ..ethod jcllemz6 ~nMk rlIegluliiroz~s:lm szol~l, hogy az .:input" elemek nL'\'<':-b6I
és l:rtl:kl.-b6l dő:llliloU karnklerl:incot hog}~Jn kel! ('lküldcni a webkkiszol.g~l6nak
Ennek a ;el!em«mek kél {."éke Icht.1, GET ,'agy POST. lia a jel!('rnz6nek a GET éTtékCl
adjuk. n <input> ('i<'fllCk t'l!tllm~ egy l"k('1"<I"zó kart.!."rná"co" kcn"QIül JUI el
a kiswlg.1lóhoL- A lekérdcz6 kamkterl:inc eg)' ol)"'n kiegéslíl6 karnklerllnc, amely
~ webokl.:J.] LIRL-jének végéhez csatolh,nó. Ha egy webhely URI.--jébcn kérd6jeICl ( 1)
hilunk. tudha1juk. hogy az ut:ina követke7,Ő rész egy lekérdcz6 karnkterl;lnc. Bizony" ....
lilnunk m:lr ilyen W(.>\)Címeket:
ht tp, I /W'oIW. kiuoll/;o.IO. c< loldft l . ht,.?Name. ScottVg.. ~21

A kiszolgáló ldlál a kéru5jelut1in llló résZI lekl'rdf'z5 karn.klerlilncnak lekinti.

lIa a ,·-,·thod jellemz6t a POST értékr... ilUit)uk, az dnput" elemek I3nalma a IrTn'-
fcjlécelKJt, keresZIUl kenil a ki~wlg:\lóhol. leldt ebben az f'SCIben nincs Ickl'rdez6
karakterllnc aZ URL '-égén

Amr.:or egy böngé$lÓ lek'r egy mboldalt, II kárt URt-hez melléu~ a tffiP-fejléuket
amelyek egY$leI'Ö SlÖveges karal:terláncol:;_ Al eg;ii:. HTfp·fejhk (amelyet az elólÓ
6rilban ismert.edtíi!i. meg). User-Agent, Imely II kérelmelÓ ~ tfpustWJI
szolgáltat infOllTláci6tat
Ha a _thod JIIHemz6t I POST értéltIlI éIIitjuk. II böngésro az <input> elemet
tartalma melkttt a Post tffiP-fejlkllt küldi el. Iv. adatok ebbe keriilook. 6s niocs
szükség hosszú lekérdezó karalderláncra.

Eg~\tsúk mo:;!. ki a 9l. péld;!1 egy <form> elemmel, 3mel)' Tl"nddkezik action {:s
..ethod jellemrovel is. A kiegészített J--ITI-1L oldal k6dpit • 9.3. ~Ida mUI.tp.

9,3. "Ida M oId<lllló<fja a <for",> ~.", IwnAadli.s.o ,.rá"


l, <ht ••l>
,,
l, <body>

4, < fo.-. ...,thod= "(lf:T' Act Ion. 'someP"\I~ . ht,.O >


5, ~hl>HMI Celeulator</hl>
6, ",,:>'lour Height (in Inch.. ), <Input
_ t"",,_'text " name~"hel\lht' IHIP>

"8: <p>Your Welght (In peunda) , <input


_ type~"text" nama.'""IVht" ></1'>

"
10:
ll:
<p>dnput
<!fo...,~
tY",,~".ubo.lt' v;o.luer"Cftl=lete BHI" 1>-</1'>

12 :
13, </body>
14, </html>
9. 6ra • A weba 0r\ep0t. 1IIIpjIi 1201

A 4-l l. sorok közöttt:Jlálható <fona>- elem körülz:llja a két <inpuo elemet, :Jmelyek
l~rehazz:lk ::I ko11 bevitel! szövegmezÓI, illetve az elkUld6 gomb <input~ elenwl
Az l'irbpelem act ion jcUemz6jének l:rtl:ke 501110'1'Ig-e. ht ... 3 ",ethod jelletnzÓl pedig
GET-re <1111lolluk.

Anlikor a felh:i$Ul:lló megLllOg:1l1" a 9.3. J*ldlban ~t1\at6 I-ITML oldali. ko11 $ZÖ\-,.,gmeZÓI
l:5 egy elkOld6 gombollál, JI~' a 92. ábcln ~ttuk. Miután beírt;!. a mag;o.~gát é:s
:I lestsúl~l. majd az clkOld6 gonlbra k:.Illinloo, a wcbböngész6 JI következ6 fOflTlában
lek&; a tm-gadott Wt-boldalt:
S"""' p"g-... h tm" h .. 1 g-h t ~AFG 1 IM 'urun dÁI t.lll &lIrtHa g.ll " .. 4 gIO _I qh t T

_ AF" IMB"n4láAltdl 9<>1 rtTe6t ",Uy

A 93. :lbcln 3 böngésUi clmsá...ptl:!thatJuk. rniu~n::l f.. lhasználó betöltötte JI 9.3, Iwk\;!-
kód :Iltal elő:illítotl HTML oldalt. 6; megadta a kIvárn adatok:lt (mag.,ss5g: 12 hűvelyk,
testsúly: 155 font).

.... -- _....
l',"" m.,,, ."~, '. "~' ., ~"" ,"'o .... '" ••

- . .. •
9.3. 'ln
A magaS:SOW é> a lC>tslily oncgadá.>ám ~ mczökbe beirt m&kl
a /da!rdt>z6 kartllllcrt.l,,~ lar/<I[man<l

A SOIIIO!Pag-e. ht .. feladata, hogy II lekérdeZIl ~araklerláncb!ll1 kilpOtt értékeket


beolvassa, számrtá'sokat végezzen ~elúk, maJd az 811!drrM!nyt visszaadja II fel-
használónak. A felhasmá16 ánal megadott adatok feldolgozását az ASP.NET
oldalako!! a fejezetben késóbb tárgyaljok.

Visszacsatoló és átirényft6 OrlllflOk


Ha a 9.3. po.'lda 4, .sor:1oon 1l...·6 do=~ elem .... thod jellem7.őjo11 POST-ra vál{O);oatjuk,
~kkor az űrlap elkilldb;ekor a felltaSZl1~16 ke~detben todbbr:i is ~ S""""P"!lI!. hUll
oldalra kenll, ezúlUl Jlzonoo.n nem adódik át mfomlki6 a lek~rdcz6 k3rakterl:íncb.1n.
Az adatok rt"Jtve marndnak ~ felhasznál6 el6cl. 6; a HliP·fejlkckben to\"!ibbítódnak.

Ahogy Ulluk. ~ do<'1ll> elem "ction jellemWje adja OlCg az a webQldah, amelyre
~ böngbzŐ!. ir:1nyít:ml kell, miut:!n az IlrlafXll elkilldlék. A 9.3, példiban ez a weboldal
a SomePage . htm volt. Az ilren űrlapokat <11\31100n ál/rá")1/Ó rirlapoklUlb hívjjk. men
a fe!ha~.iI6c egy másik webokl.:il ..~ ir:lnyítpk
;o.tllldazonilal k~zcli\lk cl. mi tönénne, la at "ct Ion ~1IenZ6t ufn";irulllltak az oldal-
nak az URL-Jére ~lIiarcink, amelpk a doOl> elemet altalmaWl_ Teg)ilk fcl példiul.
hogy egy P<,ttbackponnExa.aiple .ht.. neVll ASI'NeT weboldih k6lltOnk. amelynek
IITMJ...kOClj;o a k6ve1kez6:
dtt .. b
<>,.",
dOrlll ... ,hoc!- " !'OJT" ... ·_1on.·Po.tt".á .... ~ le.ht:Jo"~
<P~_ 1. your &ge? <input typeoo·text· "-"""ge" help.
<,,~o(l,;ou' tYI __ ·!Nbo't· v;ol ..... ·"ll<"k t< ,nt ,nu .. • 'HI I>~

Amikor a fell=~16 clőRör ,,,ved a Po"tbackPo .... I?><0q:>le.htm okbl,.~, egy ~b,..t.-g-
men'í. fog 1111'1; a Whn i n VOl/r 1'(/091 S1.Ö'I--.:-ggeI. a ~z6 al:m pedig '1!y elkúld6
gombot, amel)'o:r'I a aid< lU Conunue felirlll oIv;i$I ... tó, Ml történik, miuLln a feUla$Zn1I6
beuu a kélt ad>1OI: laz tletk<rlt) a .m1I'egrroeiulbe, 6 eIkO<le:u űrbpol? \I,,'cl a "",<bod
)d1enu6 énéke III j'm, ;u: <' 'flP\I~> '>ZÖ\'qpllC:'dJe itt aduok dkolJé.o.o a po\!: IfITP--fe;.-
!«en keJe5zt(l11~ Az.etloD ~a Il»tboockFomh'Pl'l •• h •• okbJl
:ittuk meg. ezi'fl a fdlWoDl1l6lUs:wken11a P<,~ttw.ckF" . .F"'~I ... hl I (Jkblra (csak
e;etnal aZ ad:nok is belöll6dnek a l'ost Irm)-f~ keremull,

Az ilyen ürbpOkal lo/.ssz(/C5(,roIri I1rlapokmlJJ hivl;lk. mivd a rosr cliir:li~1 ~1I(]lIma7.z:ik.


ts aZ ürlap dkil1~kor ~ fdhasználöl. ul!)'analT~ al; oIdaln killdlk vim~

-- NIdO .,.., ........... WtIJn

-- -
__ "'",
"'~~"""._I

'?
_Kll'I',
.... i
11._,__ . . .
ACI1ON,. F: • • _ _ _ ....... " ' _
'.1'
"",_1000 _
9.4. Mn
II ,....7QCJlIIt?I6 urlopolt ~16 ..bdali.'•
I _ _ ol ,u ,fmum'ild o1rlapo1t1ó1
9./in • A _ _ 1i1IPOk alapjai 1203

"9.4. 1br.ín nIind U Iitir.ínyít6. m'nd a visszacsatoló Clrlapokr3 lIitunk egy-egy pel(lIil.
Fig}ocljilk meg, hogyan kGldi ~.~ :I '"iss:tac~:nol6 űrlap a~ ugyanazon n oldalon levő
<Ín~ut> elemek urtalmát oonugá.nak. nIlg II szokványos Il"rbpok:l tllrtalm:l1 egy másik
weboidIInak továbbít~1k

Az ASP.NEr webes úriapok működése


Az. ASI'.NEl" oIdJI~kon:l fdhasznál6i adnok ÖSSzegyűjti."$e ookbJ egyszenlbb. minI
a fem emlitt1t módszerek ~ében . Felhaszo;Í16 álul be\>il( adatok Ö55zc:gyü"jt~hez
n ASP,l\TI weboldalnak tartalmazn,a kell egy u.'C!bes arlapot(~'d~ Fom!). A ",<!bo
Clrlap oIpn welx:s \'e7.trl6, amelynek fomúja a kövl:1kez(l,

<I torm>

Am,kor:l Vi5U~1 Web Developerben hozunk létre egy új ASP.NET weboldah, a program
aUlo!1llHikus:ln hozz:lad egy webes Clrlapol. lia lTI05I\éfrehomnk egy ASPXET oldalt.
megbiwn}'osodh:uunk errdI. Szü~g is lesz r.i. men fejezetünk h~trakv6 I'Í!SZC erre
II mos! elktszitendCl AS I'.t\1::T oldalrJ épül. Új ASP,NIo.T oJdaJunknak adjuk a BMICal-
,ulator .aapx nt....·eI. ts ezúttal se feledkeuúnk meg aITÓl. hog)' a language
beáUítás~l a ViMlaJ Basic lehe!Cls{,get kelJ v:ilasnanunk, 61 be kell jelöl nünk II Place
code in 3 separatc file jclólool'g}'ze!e\.

... __ ....
-_.-
,.....----.......'.'-,-..._-,._'-_.,
.-,,- <me ""

_~=--.,
."".,-"
"""'.-= ",'-'
- ".,,~­

- 'i -O ..
"..
1,-- . _
.. ..-
---
.-
.1 ... ,

.-.
A " 0 , , " . _ ,• • • • • , . . , . , lAO!

9.5. ibra
A Usu,d Wd> Ikt,'<:kiper tilt(lllem,howlI uj ASP.NET t..,boIdall,1I "mom,,/iJnlS(m lartal" j(Q,wk
uoebes l'rlaptJI
Miul"n l&",hozmk a~ új f::ljlt. \"álU;unk Source nézetn"" (ha '"'*g nem l~"{tiik "olna meg),
és vil.sgáliuk meg n ASPNET oI(~il auton",likuS:ln elkl':$titett IITML-k6djál. Ahogy
a 9.5. ábr.> n\Ut~lia, a J-fr.I.IL rész núr ["ru Inl.~Z egy ",ebe!; iirlapol (I:bd ~ <fornI
run.oC~ • se~ve~' > kÓ<Jol a 10. wm:..n).

Must né1.ZŰk meg az oldalt a [ervezO: nézelben is. Ennek a n~z~1nek mos! iiremek keU
lennie, men meg nem adtunk egyeden wcbes "ez"n6t ""m aZ ASP.NET oIdalho~.
AbpértehJ1("zt.-s bzerim a tervezO: grafikus mffi<ö(\l--,;ií, ""ID'is csak awkat a ''''lé-rt6ket.
illetve stalikus HTML-t mUt:llJa, amelyet akkor ]~tnánk. ha aZ ASP.r-U oldalt egy bön-
gészőben tekime-n,;nk Ill<..'g ~Ii'·el a ",(!\)es !Irlapoknak ninc< kep; megfelel6jUk
" weboldaJon, a te.vez6lJen nem látunk wmmit.

Webes vezért6k a felhasználói adatok összegylljtésére


A In'Ml weboldalakon :I felh"szn~ló ~haJ bevitt ad:l\okal <input>- elemek scgí~g",'eI
gyű}tjük &--'1.e,a,nelyek \öbbfl:lék l.. hetnek: bevileli szövegmez6k. jclöl6nl'gyzetek,
\"álaszl6g0mbok. és igy tOVl\bb. Ezenkivül aZ <input> elemeket egy dorm> elembe
kell tirnunk,l':$ bt: kell áUit:lnunk anrulk _thod és "ct ion jellemz6i\.

Az ASPNIT oldalakon a feUl:lS1.llál6 :~Jt:ll bt.'V'U adatok össz.'gy\ljtése sokkal könnyebb.


Ahogy kor::;bb:m láttuk, egy ~ ürb]>,.. lesz szüksl.giInk, amely~'1 awnbóin a Vi,..... :1I
Web Developer k,;rés n"'Jküllctreool. helYl.1Iünk. A webes ürlapoo kivül n .... hány 1>C\1(di
'·ez.... rl6 5ZÜk5égeltetik. amelrc:kbc: a felhasználó beírhat? n adatokat.

Ilo ptld!iul nl szeretnénk. hogy a felh:l.5ln1i1ö e~· SZÖ','egmez6be in,asson ~d1tOl,


a TextBox webes vt'zérJ6t kell h:I5málnunk. Ha ~'1re a célra inldibb váb=6g0mb0kat
bizt.o;.itaMnk, a RadioBuuon vel.érI6n:: lesz. uiikségűnk. Ezeket a különféle wcbes
vczérl6kt1 a webc-s űnapon belill kell elhdy~'znOnk.

A leck.. kor1bbi ...."".ében megnéztiink '-'SY IITMl weboldal(. amelyen ~ felhas.m:lló


3(btoka( adhatou meg ~ les(tÖffi<.'gindexl--nek 3 kiszimítisJhOl.. A sl1mitiSl "ég:z6 prog-
r-~mnak k& adatr"~ volt Stilksége: a felhaszn:\16 magass:\g:lra és t;suúlyára. Ell a k«
adatOl szővegnJelőkön keI"CSztül ~dhaliuk meg, ezén lt)QI;l adjunk k« TextBox ....cbes
"eztrl6t BM"tC<llculator. "spx nevü ASP.NEr oldalunkhol.

Mlel6tt :lzonlYdn az oldaJho~ adnánk az els6 TCXlBox vezérJ6t. írjuk be azt a szövegel.,
amelynek meg kell el6m'" a $lÖvegmeZ6t· Your height (in inches) '. vagyis A~ on
"",g"adg" Ihtlvelykben) :. Ezt a sZÖVegei egyszeruen beírhatjuk a tervel6bcn,
c:;ak a ter.-ez6ablakba kell heJycmünk a kurzort. 1':$ Jtm ..... gépelhetOnk. I b SZükséges,
az E.,""Ttlt billentyű lenyorruis:,,"-:al t&k&t i~ beiktathatunk.
8. tn • A..... on.pot !iIPj!! 1205
~ll\.l..;1n
lrinuk a QÖ\~. húuunk egy TextHox ,~"I16t a TooI>ox p:Ue!W61 a ~
be. ó helyezzük cl kÖZ\-eUenul az imént beiJt QÖ\"t.'g utan. A 9.6. ~brJn IJtlutjuk. hogpn
o.l'z ki I VisUal \J,eI:! ne-,'c!osx""l", nuuÚJl n els6 T.-xtllox \"ettrl6t aZ oIdalh•.>z adtuk

..... __ ....-...... - .. _-".


n " .•• ""'." ._ •• ". '" _ • • •'. • _'"

--- -- .. ...
• • ... 0#.·40 ~

- u.i:n

-
-.. . - _ _ _o

• Az oldal 0% ris6 T"-,,Bax


....url6 /Ion""·/otro W"n

"10S1 adjuk azoldalhoz a masodik Texllk>x wU·rl61. \'S)ilk az egénnutatót az lménl


fel\"ett TcxtBox \"edrll'l~. k k:lUl/ll5l1nk u qr..'r lxal gon\bpv:!oI. Ekkor ljllulÓ'.":i ,":ihk
a kurzor a ICrvez6ben, él beirtlaijuk a rnisodik :;ZÖ\"(.1!lncU! fclir.nál. El a '\7.Ö\-eg legyen
~ W.. Jqht I in pcUDda) '. \"a8l'L~ Az on t.est s ,llye (fontban ) ,.~' n cl6bb I!I
I<:uOk, a SZÖ·.eg beidsa ~n !n\zzunk egy Tt:XI.lJoJt \"ed-rl<51 a TooIbox p:ilcnárOl
a tCT\'elO>e. ts heI)-eUOk el u tmrnI betn Uö<-qj uW!.. EIlen6nzzOk. hogy
k~len\il

_... __ ._._---
ugr.lnu1 lit;uk-e a kq,cmy6nkön. nUnI a 9,- 1br.in

........
.. ,"fil'
...
4'"

l _ _ "_ ~

- , ..
..-- _ _ _ _ o
~

--- -- ,-

'-
"- - _.... . ;;;;;.---
_ 8.1.i:n
/IZ OI4m" "'''J<1<1J1t Tt..'u&~
,'l"'%Crl<l" ho=á4<fást, "'ilII

~:ddJ8 k~ slö\"c:gmez6t adtunk u ASP.NU okblhoz. dc "*s rrún<hg h1Oi.n}"llk


egy \"ezerk'l. Kor-ábbr61 emkkCllw.'{t1nk, hoog)- a böng67.6nek tudnia kell, mikor
fqcZle be a fcl~1ó al a<.blok be.... telét, ts el:! a tIDll ...-ebokb1on egy elklild6
gombWl oIdoouk mea (Ibd a 92. pékUt),
206 1_.ráz • FIIIIIml6I6i .... !\t,~ " feIdoIgo) • •
lu. ASP.NET olddon is sztlk~gOnk le5z egy elkűld6 gombra, fogjunk n>eg hát egy Bunon
ve7.éri61 a 'Toolbox pat...l~, huzzuk a lervez6be, és ejtsük a két TextBox "ezérlő 31~_
A 9,8. ~bcin megteklOthetjük. hogyan fe9. al okbl;l Buuon vezérl6 houJ:ad:isa ul~n.

9.B. ...

. ~.
_. A: 0/<1,,1 az woUil
,>edrló- <'gl' p'b-
1w=At.<I'utJ ",,J ..
~~.....

MO<iI milr megvan mInden \'ezérlónk. am; ahhoz ~tOkséga;, hogy ÖS$Z~-ajlsilk a fel·
hasm:il6cól al aduok:u. A következ6lépb a különhöz6 vezérl6\< tulajdonsága;""k
beillitá5.il. A Buuon vezl-rl6n például jelenleg II SUtton fehral 0Iv3$h316, amd),et
ugy cseti'lhctünk 'Ollamilyen ~bb szövegre. ha rnódoliítjuk a vezl..-l6 Tex~
lu13jdons:;jg.1nak érlékét. Ezen kívül a három webe!; vezérlő lD tubfdonsiga szint ....
az alapénelmt"zt1t 61fken ~ll. amely<'k sz.inttn nem IIlOIldanak túlIlOkat.

SZ<lnjunk IllI ni egy ki!; id6t.. l"S mc'xIo5ítsuk a ,'en"';6\.; tulajc:lonsJgaiLI EI6ször k:ulintsunk
aButton ,-ezérl(ire. hogy I:1s:ruk,. 1U1a~gaÍl a propc-rtieo; ablakban. k dltozt"-'>SUk
az 10 tulajdonságot btnSUl:cni t·r~, ,. Text tulajdonság« r<--d!g a calculate illU (Te;;;.tő­
lJX'8in<lex kiszimíl:Ísa) ,.;zö\--cgre. Miután módositouuk a Text lubjdonsjgot. a gonm
feHI'3t:i1 a Il'1\'ez6bert is meg\'~hozik.

El. után btwu$Unk al et..(i Te)[!Box ,'ezérl6re, arr:!, ;Imelyik a '{O\l~ heiqht (in in·
chen I , szö\"eg u~1n ~U, Módosil5\!k,. '-ezérl6 ID tulajdon:'Oágát height·ra. végill pedig
buintsunk,. rIllsodik T"'XtBox veztrl6re, és adjuk 10 tu"'~!!<1rutk a wight érlékd.

A BMICalculator.aspx ASP.NEl oldal tesztelése


MOS!.. hogy az oldal hoz 3<.huk a stOksl-ges ",ebe!; vezérl6kct, tö!ts(i.k be a Inllc .. lr;u-
lator .aspx okbh,. böngfsz6be:l. [)ebug menü Slan Wilhout Debugging plIr.lI'lc5áv:d.
Ekkor elindul a webböngbz6, b; betölti :I. &!lCalcul .. t or .anpx oldalt. A Itimcne1nek
a 9.8. :lbr1n UtOlthoz kell ha5Of1liuni:l..
9, óra • A WebSI ~ liIPjai 1207

M;uú n megl"kin leuíik a'l: ASP.NET wd>old~ h egy tebz6legl"!i böngésl~, vessíink
egy piJI~ntiSl a böngé:5z6 <illal kapot! I n'ML rOt'T:Í.'lk6dl'll , ~n>elret ~ 9,4. péld:! mutal,

[, <1~PE htlLl roEl!.l!" '-!IW~ClfDTO XH'1l!L 1.0 Tnutdtionill//EN'

,. _ "ht tp" 1>NW ...1. orgi T~ Ixhl.llIO'l1)/ ~hl .. ll ,t ran81 t lona l ,dtd" ~

<ht, l _ln'~'httP'. /www.wj.or\l/199~l x hU.. l" ~


4 , <h"ad>-<t itI",.
5, Untitled Pa'l"
6, <ltitl"Hlh"",b
7, <l>od:y~
8, < form ~.' fonal.' _thock' po_t· ," t ion. "lIMICa lClIlat or . <lapx'
_ Id.·forml',.
g, <dlv:>
10, <input t.yp<>L·tti<ld<>n· ,...,..' VlEWST"'TE' id . ' VIDfST... '!'E·
_ v .. lu .. ~· /wEPDw!Jl.!.TExNTc;;N'l'13OTlkZJ<J.JNpB&llkPdrOZ'p/q;n\TJ ~~" I>
ll, </div~
12,
]3, <dive>
H: Your heighl (ln inch.. ),
15: dnput naIM.'hei'1hl' type.'t~xt' id='hei~ht' I><i>r I>
16, <br I>
17, W<>i~h lln pounds),
lB, <iopUt =-~'_i\lht' type."te-x~' id.·_I\lht' IHbr ,~
19: <br I>
20, <Inpul type='8uboit' """",."btnSubolt· valu .. ~'Calculat., BMl'
_ id.·btnSuboolt" 1><ldiv>
2},
22, <div>
~J ,
2~, <inpu~
typek'tticS~,'n' na.e.·_!:VEN'l'V... LIIlllTlON·
_ 1d~ '_EVENTVAL1DATlOO' valuek' J'o'EWBJI.UoULCKDg-KTiPDX1oQ!.Oh t
_ DJtAOLCI9re,MaPcHod9PMvnJV6xHFHOCRNB' ("
25: </div><tform>
26: </body>
27: dht ..h

Az els6. amit észrevehetünk a 9.4 p{:kW):;lo. hogya " 'l."bes űrlap és ~ ,,'t'be:; .'ezbi6k
rl:I8>'jából ugyarl:lzt ~ I-ITM L,k6dot eredmblre~ k. mmt a 9,3. példáoon 'i3j;'it kezűleg
megín oldat El! azért örvcndcl:cs. men nekllnk az ASI',/I,'ET-fejlesn6knek 6 u ASP.NET
oIdl lt lekéf6 bOng(!sz6nek i:s ez 3 )egk~}'elJtlC"5ebb. lusa"" nem kell agg6dnunk
a I-ITM L,k6d miatL Egy~ttruen a'l: ASP.!'.'ET oIdalrJ hf<lhat]uk a ,,-cl>&< \<c7krl6h1. és
amI kor betöltjíl k U oldali ~ böngész6bc, az ASP_"''ET-motor a megfelelő I-ITM L--elemekké
~lakílja:il uob t. pontosan Ú8>-. Jhogy a böng(Q6v:irja

Al ASP.NET webes wzérlóiook modenjll szükségtelenné 1!!Sli, hDgY I lejleSll!Ít


tisztában legyeook 8 HTML réS2krleival. Az ASP.NET-lejlesrt6k ehelyett I fe!hlsmillói
felúlal kialakításá-I összponloslthatn. !amit e vezérlőlr.ook az oldalra hCIZé~
Dltllatnak meg), iletve az ASP.NET webDldaIIDm!sk6d részének rMgalkolására.
'kg holtom fonros dologról kell SZÓl ~munk a 9" ~ példk., bpcsobtban. mld6u
rO\'a~pMnI<. Az eIs6. hog}' II IJo.mOl'L webes ,,,Ztrl6b6I
110- dkilld6 gomb jön ~
(20 $Of). anll aZl )denu. hog}' aRUkor a fd~1ó a gombra brun!. elküldi al okblon
1t'\'6 (l.bpol

A rru,;odik. hogy ASP'it..T okblunk \\"~~:>e'> o.lrbpj:jból II fddolgozó ,...."z.tQ.JloIó


< I,' .... > ele,"", keszit (8 <;Of), (Emll'k.;,zhelllnk. hogy a ViSSZllCloodOIó o.lrtJpok _thod
jt"llemz6je a POm' é n':'kt:! kapi:!, ,,·t ioo Idlemz6jil klx-n pedig JZ lIrtapot t~ rt.11maz6
oI<J;Il URl-~ l:Ll~ljuk.) Tdcit amikor ~ fdh".zn.11ó a Buuon ""zért6,,, kattinl, elküldi
al Grlapot, ami újr.uölli n 01.1,,11

H-gOI, fig}'eljilk meg a 10. b 24 sor!);," kw <, ~put,. demeke'! EJ:ek az elemek
Iqeuek (~·ehe'!iilk. hog)" t~ ,cllemzőji.lk énéke tI1dde.~I. ami aZt,dcnli. hogy
nem ~k....... k m.-g a böngé'5zO"'fI. Ezek a TC'IIe'!1 < input.> demek a wc:bes alUp
Idte-p.,zr:.e-kor jönnek k'U'e. és at A..<'P 'ET-lHOlOIT1:lk smlgjlutnak ,nf~t
a '·l,,~.....I<)I:b kezdéséhez. \lűkÖ<b\ik pontOS i.~mene'!e.e $aj:n<:1:5 rullTlUul k6npilnk
ken1em

Afelhasználó álml megadott értékolue emlékez6 woi>es Ortepok


MLU!:!n belOII(lUOk ~ BI'IlCaleuhtor .aAPX okblt a höngészónkhe, (<'junk be V'J la,ml}'cn
fnl'ke'! a kél SZÖ\,egmt'"z6be, és k:nlmr.sunk a Calcuble R'>!! gombr~ " I>IJ lóne,nik? EIs6
pill:uu""r~ 6gy dJnI.er.. hog}' 5Cfllmi l:~"an:lZ lI ....eboIdaJ ;deo.k meg. fs a s:c<,;·..qvo .... :rok
alolC:1I n "nékeke'! nlUlal):1k. amel)'eket bei.nunk

\',113,", nonh.on t~ tört6lt - rnegpedtg az. hogy lImIkor az e1kuld6 gombn


k:mIllLotrunk. dkúkkilk a.z Iltbpot . .\ll\'cl a;t lIr1~p ~ nSSZlIcs:noló arbp. ujJy~ru~
az okbllöh6dik új:r:l (ezm.l:lrjuk ~ hoosrsz6brn ujJ)'an:m). de a bön~6 llul bpon
Imil-kód meg>'ik<MJk. még lu CMJp.in kl!l menékben iS.. H~ megtelontlLik a ~
~hal az adocok beírisa b az úriap dkilklo2-:w /Ill;" k:tpon IIT\ll-k6dol:. ~chetfllk.
hog}' a TextBox vezérl6k Ickcpat.1t <hl ''''-> demei ll1()Q mir t:ln:dllUznak ~ valu ..
jocllerm6l is, llml.'lynek &teke ml'geg)-"z,k aZZliL :mUl a sZÖ\egn1t'z6be inunk,

\t.'""!lOnk egy p,lIa ntisc ~ 99, ~hf"~r:o. IK'gy ;obl>:trL ,Jl(.'génht-'SSOk. po!llOSiln ml b lön~1
EJ::tz ;ibm:t BMIC41eulator. ~AP" oIdoll az ul:!n mUlalia. hogya mas:.l!;I<"g & a lests6!y
megad;ls.,ra .szolgáló sZ[>\'<'gflll"z6khen n~dtuk a 70 és 155 énekeke1. és Jl cikül<16
sombr~ luumlOltlmk.

A 9.9 ~bcln '" hOngész61 aZ \Íj IID1L-k6<J fog'wU ... utin látlulll'k. m;ljpl a k6d<x pedig
~ 9 5. pé\d:i.b;ln teltinthet,uk meg E.zre·..dle'lll'k, hog)' a 9A és a 9-'5 ptkb I ml1.-k6dja
SZInte uonos: az qo1!tlm Iu,o.'tdt az ~lenl.J. hogy a 9.5,pdda 15, b 11:1 ..or:iwn 1~t1\;ltó
< nput> eIt.-rnek. kU~k II 9,-i p&b:QOl105 soraib:Ulle...ő eIemdCt6I A k~";
1. 6ra· A _ _ ~. I 208

pflcUban az c:1c,,~knek '-an c:g"). VIIlu. &kkl.lk, alTl!:l~"'!"Iek Méke IIlq1eg)'e;W; a mc:gfc:-
lC:I6 SZÖ'\eg",eld>o; ín énekekke:! oisd '" 99. ~Irit). A Tc:xtBoll ''e~ ~Jlallektpeun
IrrMl-1tód !c:I,;j( m;is '" 9.5- példlban. nun! a 9.>1 p&Uban vuII .

....
o ... ·
- _.. '..-
O ~ . ' , ~-

,-
-of'!'

. ... ...
. - _ .. - ! [
"...... .- u.M:n
.:;;';;; ]
A U:tlU':It~ M~,*"*,,,
- <j'> •• - (",mJI. ,. fliJlíJldlr1* .,,:: .1rli>pol

3. <b~al ,..ln8=·http, f1vww.wl .0r<lIlU'",Itt•• I· ,.


4, <1M.,,:b<tJ.tle~
5, tlnt111e-4 ',"q"
6. <ltitl.></ha.d>
7, <bc>d)'~

8, <fom naae.·foral ' _'ho(\··PO'H·


_ /lctlon. ·BMIC41culll,o•.•• p,,·
ld.·fora1.·~

9, <div,.
10, <InpUt type_ "h1drn"n' ' - 0 · . _ V1f:II."'l'ATf.· Id~ '_VIEIISTATI:'
_ ".1 u .... IWEPlMlLLTRlCNl'c2!ft"1 JOTlkZJ~~tIkPd::OZWq.2I!T)ftHUIfC'u)· ~

II, <Idl~
U,
ll. <dh,.
14, Your h<>i'1ht ln lncbo-.l
l~. < npUt _ . -heiqh'· typ.. "t.n· "alu_'70"
_ id.·hei~'" I><br j>-
16. <br I>
17, ",.,iqht lin pouoosl'
18, dnput na-."...,iIJht" tyV'l 'te"l" "alue . '15S·
_ Ido'wellJh" IHbr I>
19, <br J:..
dnpU' type.·Bubolt· _.·btr>Bul:na· v41u... ·CalCUlat. BHI'
_ Id.·btnSubait" i></div>
21,
2., <djv~
2l,
24, <h'put t~~·hld&u>· _.·~ALlOA.TION·
_ ldr· --tVENTVALlOA.TION· ..,41_· / ... ~"WBAUIILCltDg:KTi.PDXAO[ .. ,
_ DXAQLCi9ntAhP<:-H0<I9PA'V~6><un ""RNB. I~

25, <,dlv~<,fo~
2',
27.
<ib<)dy>
<'htal>
Nézzük ,'égig rl'szklesen, mi too('11I, hog)' jobban megénhessük, miért jön létre
nm IITML-k6d a TextBox vezl'rl6khöz az űrlap elküldése után (9.5, példa), mint
az elkl1ldb el6lt <9.4, pél<b)! El6ször is, "cgyilk észrc, hogy a TextBox wzérl6knek
\f'Jn CKY Text tulajdonságuk. Ha ennek a tulajdonságnak \f'JI~rnilycn &ték<.'l adunk ,
a '·ezérl6hö.z el6állitott HTMl·kM Inh lesz, mint hJ a lulajdon~gnak M-'rTlmilyen
érték." sem adnánk, Ha e'll a tul~jdonságot nem ~lHtiuk be. a TeXlHox "ezérl6 HTMl-
kódja e~zenJen ez lesz:
~input n",""T·A~lDTUhjdondg-tH,jke· type.·text·
_ id."AzIDTUl"jdons.t'g-l.:HIfI<e" I>

A 9.'1. példa 15. -SOT1oon példiul azt I~thatluk, hogy az eI~ .$<;övegme1A ID tul"~­
g.1nak énéke h"ight, ami ezt a HTML-kódot eredményezi:
<input n ..... - ""ig-ht· typ<!!~-'- .. xt" idA·h"lght· I~

Ha nonban , Text lUi;ljdonsjgnak \f'Jlamilyt'n btéke'! adunk, a value joellenu6 is


bekerül a Te1:IBox \'ezérl6 ~1T"'lL-k6di-1ba,
<input namo."AzIDTU18jdon8.t'g-trtlfk~- t~~·text·
valu .. ~- "'Text!'IJ 1.jdo"B"gtHIfI<~· id_" Az TDTrJlajdonalfgtrtlfk,,- I>

Tehát amikor eJ6ször töltjilk be a BMlCalcubtor.aspx old.111, a TextBox '-eú'fl(;l: Text


tui;ljOOnsága még f1IDC'i be:iilit\d, :unit a I&.rejöv6 I m lL-kód is bizonyít (~sd " 9.4. p8<b
15. és 18. soclt). Anlikor azonban a felhasrn~16 &tl-keket ír a két szö\'egmez6lxoo ~ példá-
ul 7o-et 3 magass:'g és 155-öt a tCSISÚly mez6jébe~, majd dkl1ldi az O"r13pot. a TextBox
ve~ Text tulardoru;ág.1ba bekerülnek a felhaszrciJ6 ~l!al megaOOtl &t~kck. TeMt
~!",kor s<lf" kerul a Textllox vezérl6k lekl'pez<'sbe, mir a val ue jcllemz6l,;l."1 is figyelem-
be kell venni, amelyeknek aZ 6t~ke ~-ezik ~lDl, amil a felhasut~16 beírt
(Jásd a 9.5. P{:kIa 15. és 18. ..:rit).

A BMICalculator.aspx forráskód részének maglrása


Uuuk tehilt. hogy amikor <'nékeke'! írunk a Slövegmcz6kbe, és elki'lld;iik az (I"rl~poI,
a "..'e!xlId:lJ (jjrntöltódik (mivel vi=cs:ltol6 (I"rlapr61 VlIn SZÓ), és a mez6kbe írt 6tékek
megmaradnak a v~CSJloI~s során. Ez JÓ, de a t~örnegi~ kis~mílh;ll elvégz6
kódot att61 még meg kell írnunk. A sz::!.nú\á5 meglchel6sen C8Y-=nl (lásd a 9. 10. ~brán).

~k.,..:

w_I
--
"I " ..
9.10. ltbra
t~"",
)· m
_

A ICSllómCSind...'"1I" /ejjjrUy ''''''')'''' ~hl>% Jt.<pcsl


u ,.4_4

A $Zámitáshoz szükséges pr<>gr.1mkódot is könny(!' megirni ~ lásd a 9.6. péld:\.t.


. A sz_l\' .aquug""'k é. tnuolI\''nak beolvadaa
Pl,. h .oo Integ"r • helght.T<:txt
Dl .... U lnte<;ler .....,Ight .~xt
••
" . A n..-ély le8\t.-.,,11\<l xli,,~k kiuúfth ..
61 Dl. illU .. oo Doubl.
'7. BIU • I.. lb ' l) ' 71 l
••t,
. A t ..sttOlMo;li.ndotx kl1ré ...
10, uNIVe:r";rJ61D.hxt ~ ·Ar

A 2 sorb;on bcvczetOnk egy h 1\C'\'\1. Integer Upu.,u v~ItOlÚt. b; honárefKldluk


~ he lllhl :u.ono5Í!6ji> TCXlBox "clé,16 'l' .. xt lut:.idomi.igjnak énéktl. A 3. sorban egy ..
r'IC\'\1. Integer lipusü váltoZÓ! V"lt1Únk be. d a _,ght ~:oonosil6jú TextBox '-ezéM
:'e><t !ut:.j(lonságán:lk fnéko!1 ~11i.Jk~. EZ! k&"n6en ~ 6. $OI"b3n "SY BMI ncvIl,
""ubi<, upu§{, v:l.lloZÓl ho1;onk iéire. amdy ~ 7. ~n a fdh:umáló !e$l5l.iI)".1l'1:1k ~
a 1Ng;t.."~ga ~l;in;!k;AZ domhíh61 w'iI1lUZÓ. b ~:\-nu.1 fdsrorwu éntket karF'.

A 9.6. pi/d".., liIhIt6 kód • ItSltÖmeglndlul -vv laIMI webft VM!16befl ir)I kl.
~t ~ 81: ASP.NET OIdaIUnkhO.! kel adoook. TtWJ; is ITIO$t meg, á adjIri
• vezé.rl6ouk '9v megfe1t16 l~nM:.et hogy megjelefl~hesJfil:. beme II Slárr4t.
eredményét A label vmt16r6181: ei6l6 óriban ulruhl,"\( rbzletesebben.

A renu kódn:J.k n~il,ln'-:ll6an ASP..... ET wcboklalunk f~ód ~ keU ~I",e.


dc hol? Az "8}ik Jehet6sfg, lu 3 9.6. p8tbbcln 1e\'Ó kódol: a P~geJ.<>ad escnltn)keze-
16be hdynnik. EmId<",rl'M:UInk d. hog)' a PAII,,_l.Qe.d ~)i<~ mmdo..'Il alka-
lommal '~JlódLk, anukor;lZ oldali betöltik. .\11 nonban nem ezt ~'1fl('f\k, hinJt"n
h:a a kódol: ebbe az ~)i<c~ lctlfl<!onk, az akkor IS !duln;!. amikor ~ fdha.'\7.no116
e\IlQÖr ~ölti b" az oId:Ih, !<'iU! rnleI6I1 megadhauú a nu.g;lss:lg:lt k. a teslSlil)-.lt

Vlliój6ban ha a 9.6. példa kódjA! a Pa~.J.Oe.d tMrMnybzel6be ten.zük, al oldal


betÖItéSekOr az Input 'trino;! ...... not ln .. ntect fOnMt lA btmtneb
karakterlénc Iofmw.m. nem megfelel/l] hiblÚZt!llltt k'PPJk. A híI:WI ob • példa
2. ~ _....t6: amiDr al oldal ei6SlÖr tM6dik be.' hf· ~gh~ á ""~lIh'
TeKtSox ~ T,I(! ~ 6rtéU '9v üres kInlt.nlnc. rnMP.diQ
• VISUal Bau; trI1 üres klrlkt8!ldncot nem tud eg6u ~ ll nt"ll ,,]IUkítIni.

A PagA_LOad esenM.'nyk...zek:l teMt nem megfelel6 hely a 9.6. példában l:í.lh:u6 kód
S1.ámán. men azt szeretnénk. h~ 3 kód akkor futn:1 le, ~mikor a fclhas.zn~16 elkOldi
az t1rbpot, '"-'Ill pedig az oldal minden be!öI!l:sekor. Szcrel'lC$ére a Buuon n,rerl6nck
~~n egy Clkk eseménye. ami Jkkor fu! le. amikor ~ webe5 űrlapot cIkOldjök, !dú! ha
ennek az esemom)'J\ek azeseml:n)ke~ az ASP "ET okLIl fom'isk~hoz adjUk,
~ beleifJUk a 9.6. pékb kód';'l. a kód ,~n akkor kerül nu.jd sor. anukor
a ft'II\35ZfÚ1ó eIkOldi a"~ t1rbpot.
Ia. rMl' ~.dItOt ~ .. fe!doIpMl
ZlZ

A Button \'ererlőhöz (igy adholtunk Cl ick e~em"nykelcl6l, hogy egyszenien duplin


kanmtunk r:I a tCTVező nézetOC'Il. Ekkor azoldal fonál;k6d ,.,(,z..>ta,en ul.1lju k magu nkat .
.:I.Z esemt'nykezelő miris léuejöU v:\.:cl.n.ál. amelybe rögtön be i~ ímatjuk " 9.6. péld;.
k6dj.1!.

Ml uL1n beínu k a kódot. néuii k meg u ASP.r.mT oIdJl! II ~ AZ oIdJl eI.s6


betöltésekor k"" Ures S7.övegmezót kdlljtnunk. WC{\·e egy Dleul"!e 1:1:>11 IclirJ!(! 80000
A>; oldal cls6 bftöl1 6kori kép(-t II 9.11 :lb...~ mutatj:!.

to ..... _ ........

9.11."

.... . . .. .-..
" '<'gs6 8.IIICtJk""uo~'!S/lX
ASP.N ".,. "~I,,I az d$61x~6/1é">lIor

M()/;! írjunk be értéke ket" kél szÖ\·egmez6b e. 6; kattmtsun k II C,~ lculate BMI gomoo.
lb II szerzO: rna~g:lt l:!; tcst5Úly1t (70 hlhelyk és 155 font) adjuk meg. a 9.12. :lbr:l n
l:lthal6 eredmén}' kelj ka pnunk

. "" - ,-~--
0- · ,)
r __
• (Io_~
- -, - e
J
_.. •

......... .-t... J
I -- I
T_I>II.:I1=_ 9.12. 6brlI
Ji fdll<I<ZtIlJJd 1CS11<'Jm'Si ,,,k.u<o,'"
.~ ... .
~
" ws/dCllilési>

Ha tudni szet"etnénk. mit jelen\ellet: az egyes tQsnömegllldex~et. l6togassunk el


a ht tp: /nhlbi support. e Olll/l:xl.i 'blLl e a I e . htm OIdaIr.i. Röviden összefDII-
!alva: az egészsbges tesnOmegIndex 18,5 H 24,9 kÖl8 e~k. A 25,0 és ~,9 kÖl8 e56
8MI-veI r8fldet.az6k IÚlsiiyosnak $lámItanak, mIO I 30 feletti értékeket kapók
kórosan kö~ér1lk. (A tesnömegindex-értéhk az atléték és az idősek esetében nem
mindig ~Bl6k ~áltOXlldan formában. 1
l. 6nI • A _ _ 41Ipot .1 213
He. BNr e al , lat o r .""'PI< szöo.oegmez6ibe rwm egkz 6rtéteket irunt. Il CirIIP

".~<>
, . eliildésakor hibaiilenItet kaPIri., ha pedig negativ ~t lI!kri; ~ I m.oas"o
és a testsúfv rnegIIettWozás6nál. a kisúmftntt tllttőmeglOOe)( is negativ mm lehet.
A 12. feJtllltben "Ini fo(lll.t. hnqyan Iel!&I eov kül6nlell8l webes vezér16 segltúgj-
vel biztositani, 00gY • felhasznil6 által megadlJtt adat mevfa1e16 !OrrMjU és I kiv,",
6rt~t~ n61tqyen.

ÖSSlAfoglalás
Ehbm n 6r1ban azt \lzs~I'\lk nq, hogy nuk..... t Id,,'\ ~ fdh~s.zniIól61 adatok:;,t
"!::'
g)'űltcni n ASP... ,,'cboIdabkon, Azzal kezdlúk. lJORY """g"merl<edlilnk alOkk~1
~ I nM L..... lemekkd. ,unely.,kre II felhllszruí16i ~datok 06.su:gplj!éséloez slük.'lég v,In;
~ UÖ\"cgm<";t6k. ;elöI6nqp:etek, dla~zt6gombok k Io:nyll6 U$lák: ~inpUt. elemeil'el,
111eI\"II~;o. dora> demmd, amelrbcn az dnput> elemeket d kell hclyc.'1J1unk, vabnunl
az e1kOId6 gombhll

AZ ASI'SET " ..ebokbbkon nem kell !or6dmJnk az emJj\('1t IITMl","-·iemck $1..1 keLlI
bcir,bha!. FJoelyeu el('"8. lu a megfelelő ,,'ebes \".,Zlffi6kec haszn;;IJUk. pdditul a 'lŐ­
l'egmez61: megjoelenil6 TenBox ''e~, a ;e1ö1ónég)"ZeIekhez haszn:íllul6 Ch«kBox
n:rerl6t, h igy to\'Jbb, AhlK>l. hogy a fe1l1.~smJIÓl61 ~dllQkat ki-rhes.$tink, ezeket
~ velérl6kct egy wcbes {lrbpoo kell elhdyeznilnk A wdléS OrlJp a~ ilrl.. p<}k wC'lJoc$
\"elérl6je. amelynek formija a ko..·etkez6:

"I f '

II \.w;ol Web De....o\opet" aUlOnYltkus:In bcirp ~ ..-ebb \'ezeM k&!Pl amikor k'lreho..
:n mk eg}' UI ASP.!\'ET ,,·eboIdall "felha;.zJÚIói adaluk t\!<w'~\Í~és8le~ S;Zil~..", ...·ebes
\-cz6'[('lkOn khiJla ...dIeS \lr1aphu~ egy Hullan \w.í-r161 iS kell ~dnunk." IkJnon \"e~
b6Ilek4'er.é5kor egy elkillU6 gomb jón létre .•unel>"re kattmtVll elküldjük ~l OrlapOlI, t:5
~IOUSl l.a~unk \',:.gre, lb azt~. ~ II k6dunk minOC'I'l alk~l(}mm;11
~h;l;ódJon. ;Imikorelku~k a webes t1rlapol. heI)"ezrtik a kóda aBunon ,'elbi6
U.t ~yk~, el ieIt ucllléuykezd15t ug)' ...Jb:,alUnk az ASP,!\U ...-dJoI-
cbllloL hos>. eg}'.szc:rikn duplin kattintunk a ,~ K'f\cdl ~

\kl<st, I~· I:llluk. 1108)·~n h-pes egy ASI',r..U o!cbl ad:lloo! lO"iIjteni II fC'lh:m:n:ilólól
t:5 mO\-detekel \'~gcT.ni a~ aduokk:d, készen állunk amt. hogy 1Ilaposabl:l'.l.n IS mell·
\"iug..iljuk 3z aduok .-....szegytllté'lére szolgál6 ...ebe \'cll-rl6kc.-t. A kÖ\'Clkczl:lór.lban
II TClUBox \'elfrl6re OM~pontOliilU"k. m:lfd nqnEuilk dZ! IS, hugYlIn kérhClilnk
lId:llokal II felllaSZf);Í1óI6I1I DropOownUsl, II IbdioBunon es a CheckBoJt \"e~'f\6k
$Cgi~
214 1U. . . . rwllll.zII6I6i Idatok ~" feIdoIgGmn

Kérdezz-felelek
K: EJ6fordu/. hosJ' amibor "&)' iiriapolllH"t"lm"zó ,,"clJoldllll üjmUJ/ldIla Wugész6-
OC·II. " • 7his fK'SC c",mot be nfrcshctl wil/rout res4md/llg the fon" j,tjorrrnl/ioll"
(Az oIdIIIIlern frissít/'C/6 fiZ 17rla/Xu1fJ/ok Iljrnkl7ld~ m.'Ik!71) mRl''' 71/e page
,o111""15 ros7DATA Do you 11'(1111 to n:frcsh? (Az oIdIII PQST-<:/dmokllllllrtal-
mflZ. Ki,.áll frlssilClI/?) Ilzl!1l<'t jele/I/k meg. Mil jelcfllc"ek ezek az rlzclletek!
v: Emlékeuúnk 3rr.1. hogy ~ tITMlrI1rlapok kétféleképpen adhatják 11.:u frtékekC't:
1ek~ karakterUncon vagy:1 I'ost HTTP-fejl&eken k...~1. Vl<;''i>".acsatoló
url~p e5C1ffi a I ITML--I1rup 3 !'ost HTIl'-fcjlécekct használja, é; a~ urlap'x
ugyanarra az L'Rl.-re kükli d. amdyr6l sz.~rrnazik. (Ha fel szeretnénk fri,;.siteni
az cmJ(,kc:-rnket II \'JSSZacsa!oI6 Urlapokról. bpcu.zunk v~ a 9.4, ~bri.hol..)
Anukor :1rr~ kérjilk :I IXlng{-szónket, hogy frissi!Se a weboldah. miut:ln elküldtünk
egy visszacsnoló l1rbpot, a böngész6 ~m tudja. hogy újra el szeretnénk...,
kilkleni a webolda!t 3 I'ost HTTP-fej\écekkel"grau,.::zfrt megkérdezi. hog)' újr~
el ki\"!injuk--e küldeni a7, úrlap:!d:noK:n.
lIgy:lI\Czt rlg)'elheq(ik meg, amikor a Back (V~) gombrJ kauintva egy olyan
oldalra szeretnénk visszatlTni. amelyet vw;~toJjson k...'fe:SztOl kértOnk le
K: .Hím L"isszacsalolást alkalmaz.mk az ASP.NliT u~>/Jcs itrl<lpj<lI? Mi<'rI nf:lll
irlwyflják ál afellltlSZt/IiIÓl egy mlisik oldalm 'Vl8>' arljúk ál (IZ atMloktl1
egy lebifrtkz6 Qlln.klerllincban?
lJ:. Annak. hogy az A.'WNlT wdx"S ,ilbpj:li ,'cm mh m6dszen :l.lkalmazn:Uc.tlólne1ll
visszacsalolisl., több OlGI is van. A k.ogforuosabb. hogy:l. "iSj~tol6 úrbpok
IchetcWlIleszik:lZ ASP,mT webes ,·ezér/6inek. hogy mcg6rizzék n ~1I3potukal
a vÍ$SZ.!Ioa.tollsok kÖZÖlt. EmlékeUilnk vi$Z:l., hogyamikor:l. felh.asznál6l:t1ékct
ír (.'g)' TextÜOJ( "ZÖ\·~'gll)ez6be. é:s elküldi:l.z urlapot.,:lZ ASI' J\TI okbl Cijr;ltöhó-
dik. dc a TextBox vczérlő Text IUla~ga arr~ az &ték", f"","iil. ~mit a feUlasz-
n1I6 beín, Ahhoz, hogy ~'Z megtörténhC5llC:ll. :I. wel:>e:'l úrtrpna k UIDöln:lzt az oId11t
kell betöltenie, nunt amelyik a TextBox vcrert61 tartatmaU3. (Annak hosszabb
kifejt6ére. hogy mlh1. ebben a köny.·ben nincs lehet~nk.)
A ~ IfIll'--fejlé<;ekel. a wet.es l1rlapok a;:ffi részesílik cl6oyl:>e11 a lekmJez6
kar:akterljncokka15zcmben. men spkr:a.n naSY mennriségtl adatOl kell elkükft.>ni,
Esre> régebbi böngé:szGc korl"tomk a lekérdező kar:akl~'rI:lnrokban clkilldhetó
adattnennyi5égel..
9. n . A wtbn llrlIPOt IIIpjli 1215

Ismét16 kérdések
l, Mik a legfontosabb kalOnbségek a GET és ~ POST ETt~kre ;ilIItol( """tho<!
jellemz6jtlllrbpok köZÖlt?
2. Te8tiik fel. hogy n 3Ubbi lekén:lez6 kar~kl"rI:íncot Uljuk

Mit :'Irul "z d a felh:lSznJ:l6 ;i1",1 kitöltött Ilrbpr61?


3. Mi a különtn;ég 3 Vi5l>l:acs;uol6 6; a7. átir.lnyit6 úrbpok közön?
4. Milyen tipus.:; űrlapokat haszn~lnak n ASP.f'-'ET webe:. úrlap)'!'?

Válaszok
l. A GET ertekre ~Uítou mathod ",lIern/mel biró Ilrlapok:l beirt ad:llokal egy leker-
dez6 karaktaUnoon keresztűl tov~bbitpk, mig a POS1' módsze" haswil6k POM
HTI1>-fejléccken kM"SZlúl. Amikor lekérdez6 kar:okt"';ánd>an adunk át adatokat.
a k:m.kterlánc megjelenik a böngésző cimS<'ivjjoon (lh<:1 ~ 9.3, ~br.1(). mig a 1'osI
l"frJl'-fejlé<:ek haswjla'" esctén az adato k reJI"e m:lf:KIn~k. Az ASPNIo'1;\'e'bes
tlrlappi:l POlI HlTP-fejlé<:ekt."l hawúljjk n úrl.apad.tok dkUld&ére.
2. Mivel azadat0lc31 egy lek<'rde-ző karakterl.1= tO\. .;'ibbítp. nyil\-:invaló. hogy
aZ ílrlap methO<'l jellemz6jt!t GE'I'-re ~II itOlL1k A Iekérdcz6 kar:>k1erlánc Ml:kei
alawn n is megállap(thuó, hogy az Grlapon h~rom ,""z6 t:l1~lhat6, amel)'ek
rte\'e SSN, agI! és qender, ~-a!amlnl hogy 3 relhaszn~ló az 123-45-6789. a 2~ 6;
az M M('keket adta meg ezek sclmára.
3. A vÍllWtOlatol6llrb]X>k method jeUemz6j&en 3 POST 6t(,ket Clláljuk. 6;:lZ
aerion jel~kben Ug)"n:lll ali URL-ladj:lk lneg. mint :ilmi 3Z iirlapot
Clnalnuwoldal cime 15. \'ag)'is ha az Oldall.asp>: nt......u webokbl egy visszae>a·
tol6llrl~pot ClrtalmaZ, az Ilrlap act ion jt'1\emz6jb>ek fnl'ke is Oldal l . aat»< len.
Az ~tir.lnyít6 tlrlapok action iellemz6je másik URL-re mUlat, nem az tlrlapot tar-
talmawokbl dmére. Vagyis h:! at Oldalt.up,. n<MI ...'chokL1! <'gy itir.lnyító
tlrlapot lartalmaz, a~ Ilrlap action jellemz6jl:nek ETtéke egy má5ik oldal URL-je.
például Old<o12. a!lp>: 1e5z.
(Ha fcl.'ZCTetntnk fri5l>(leni aZ emlfkelnkct 3 \i5I>zacsato16 és aZ ~!lrnnyíI6
ílrl.apok közötti kúlönbségekn'íl. 13pozzunk vis..qa a 9.4. 1ibr.lhol)
4. Az AS P.NET webes Ilrlapjai vissucsatoló Ilrlapokat haszn11nak
216 Ill ráz • f.tJazn6l6i adatok ~ " fvl1oIgn+'

Gyakorlatok
FJlhez az órához nem IOInoZtlak gyakorlatok A "ebe; ílrlapok önmagukban
meglehet6scn haszonl:llanok, Ahhoz, hogy hasznosd tegyük 6kec, oly~n welx-s
,'eu,rl6ket kell hozz::iluk adnunk, amelyeket a fdh~szml6í ad:llok Ö5SZCg)'\ljl6ére
I.. rv.. ztek II kövak .. 7./1 (ei"~l'lbcn Ulni fogjuk, hog)'an haszrulhatjuk a Te-xlBox
,'e-Zérl61 felhaszn~l6i ae,l:uok gyujl~re, és aZ 6,..~ v~grn több fdadalot is adunk,
hogy grakorolh:l~,k a ,vd>es iJrbpok haszn~I~I.:ÍI,
10. ÓRA

Adatgyűjtés szövegmezőkkel

A 1('(;.., tar1almábó/:

• Többooros Sl:ÖVe8~z6k létreho~sa


• Jelszómez6k lárehozi5a
• A szÖ'o'egmew oszJop&Ztim.:ínak mcgh~lározisa
• A szöveglTK"z6be beírható karaklerek számának meghatározása
• A s7.Ö\~gmező kiné1.C1ének meS'.:lltonatJsa II betiIméret, ~ betűlipus és a szln
m6d0sílb:i\"3J

A 9. kckRx'fl azt ~g111Uk, hogyan gylfJllldOnk II felh:lszn~l6kt61 adatoka! egy ASP.NIT


weboldaJon keresznll. Rö\',de-n összefoglalva: ahhoz, hogy felhaszn~16i adatokat fogad-
Iwsunk. egy ",ebe; urlapra van ml~nk. "",eiren bdül a felh:w.n:íló wroes ,'ezér-
I6kbe írhalj:;l a kÍ\~nl adatokat.

Az el6z6 6cloo.n p6dak('nt egy oIpn A.~PNl:." okblt k'::-szilcuünk el, amely II lesttömeg-
mc!e,;e\ ~1mJ!ia ki. Ezen II weboldalon a rclh:lszn~lóru1k k(1 ad:uOl kellen megadnia:
II ma~gál és II I~ÚJyát. A7- adatok bcirá$:l1'1l két Te;ttBox vezfrl6 szolg1lt.
218 Iu. rW ' ~ lI!IBtOt ~ .. f""''9'"

II TextBol< \-ezérl6nek számos tulaldort5:l8" vall. arrn:I}-eke! bd!lítva szabálymhariuk


~ szö'"egmez6 kinéz<'1Í"l. II vezéd6 'l"e.>ctMode !Ulajdons.1gát például MUltiline--rn
~11ilh"liuk, hogy löbbsorol; szövegmez6! hozzunk l(,tre. vagy a I'lIaswo~d értéke!
adharjuk neki. hogy II beirt álékel dréj!se. és anrt:l.k helrén csak a;i1lagokat ;e!enílSt'fl
meg. A colwnn$ rula~ggal azt szabályo?h:lljuko hogy a SZÖ\"egmew hany 0S1.I0P
széleslegyeno

Ebben n örohan a TcxtlJox vezérl6nek II femlhez hasonló tubjdons;jS"i\~~! és azokruk


II megjelenésre gyakorolt h:llaslv:d ismerltedünk mego

Alapvető tudnivalók a TextBox vezérlóról


Amint m~r tudiuk, amikor megLitogatunk egy ASJ'oJ\"ET oId1Il, aZ azon levő webes
V"cztrl6k HTML-elcmekkt kl'pez6dnek leo 1\ L:lbel \"ezt"'rl6b61 péld!ul egy <spa,n> elem
1"""0' amelynek !:trtalrtl:l II 'ezl'r16 Text tulaldoruJgj.rurk btl'ke. A Text!J.ol< vezérl6b61
- ahogy az e!óz6 fejezetben 11thalluk _ II fe!doIgozó egy <input> elemet hoz l(,trc,
amelynek type jellemz<'ije a text bték(.~ kapia

A TeJ<tBox veZédór: akkor hasm~liuko ha fdhasznjl6 1ltal hevitt adatokra ,Oan szüksé·
günko A szövegmezők n oly:"., ad:uok megadá.s:ira Ide~lis;Jko mint II lilogat6 neve o
lt'vt"'kíme vagy hitdkárty.l5zámao

Egyes lI$etekben a SlÓVlJ9meiÓ nem a legjobb választáso A következ6 kr<:káben


tovébbi. lelhasználói adatok ösSlegyrljtésére tefVEt18n webes vlllérl6tkel fOQlri.
megismerkm, és megnrlZliik alt is, hogy azok milkt lIIkalmasabbak bilonyos
IIe/yl8tekben I SlÖvegmez6«.n6I.

Ebben a~ órában a S3.Ö'o°egrnezők ki\lönf~le


fajl1ival ismerkedünk meg _ péJd:iul
~ ielsz6me~6kke1 és a löbb5oros szövegmez6kkel_ o és nt is megnl=zzOk, hogyan
módoI;íthatluk e~eknek a mezöknek ~ meg)Clené:sél. Míel6u amohan belekezdenénk,
gyakoroliuk egy kicsit a szövegmezök llO~ú~dá5it az ASPo:o.'l:j· webolcbJakho1. o illélve
a fe!h.aszrclló ~ltal beírt értékek megjclenílé:sél!

Kezdjük azzal. IlOgy )&rel101;Unk egy Te)ltBoxP~II"t ice. upx n",i1 úi ASPoNET oldlh.
Az oldalon k~ Text!J.ox \Oez~rlór: fogunk clhclyemi, hogy" re1haszrd!6t61 bek"rjílnk
k(,t a<latO!: a nev{'"! és az élerkcm'il.

El6ször írjuk be a te ....oez6bcn az első szövegrnez6 elé 51Jnt fe1irJtO!: Your n ...... :
(Az Ön net."e,)o n\:ljd húzzunk egy TextBox veztrl61 a Toolbox p:lleu:1r61 aZ okl:ll l':l o
E~t kÖ\°~1lIen illUk be az elsó mez6 alá a Your "ge: (Az On életkomJ szID-egeto és
e mögé is húzzunk egy T<'l<lBox vezérl6to \-<"'gOl o ahogy minden webe>; űrlap ~ében,
$ZÚkség(lnk lesz egy Huuon vezérl6re HelyezzOnk el tehát egy gom\xl{ is a k(,t szID'es·
mező alau.
A 10, I, ábr:\n Iáth;IlIUk. hogyan f~ az oldala Idrom vt'l.eno: hQuhdlS3 ut.ln II \isual
Web Dc:'.. eloperbcn. [lIen6nnuk. h~' II sal'il k~'m)"6nkön is ug)"Jnl:zt 1:iIJuk-e,

"-.. .~ •• .,"".~ -" ., .• , . . .

- - "'o

.......

-
IG.!, *"
A% oldal '" Itff Sl'6oq/""'*'" II '"10""0 ~ uM"

Mos! pedig be kell ~Ilitlnunk a lúrom "ezérl6 tula~g:lit. A kél. TextBoJC 'C:ll-rll'lnek
ITIOeIl cs:.ok az ID lubjdoll&llf't adjuk meg (a fejezetben k~:u r6z1eI~ rnegnél7.uk
II SlŐ\egrnez6k tul:rjdoo~8"il). II Huuon ,...,7.érlő esetében pedig az ID é.~ a TeXt lulaj-
donslgoak adunk Méh1 Em)(:kc:zheWnk ri. hogy:ol Bunon '-elérl6 Text luL.J<lons;lga
hat.lrozz:l meg. hogy trul)"eIl5zön's,e\mik meg II gombon.

l(ezdjOk az els6 TextBox vezbt6...eI, ;\-h,-ej el.Ibe'l kdl maid tögzílenOnk a fclllaszn~16
M'\'..... ~'eIl az a~ (IO) ..... (~). A tul;a~g bdlliI.lsjhm kÖ\'C$$ilk
az aUbbi Iq,esekel'

I. Kattintsunk" Text lklx veu:rlO«:. hogy b<.1öll$Ük II tulajdonságait a Propoenk-s


ablakb:l
2. \'1110zu.ssuk az ID lulaJdon$;igál n&me-~,

tR).nczt az eli:ir~ kell meg:1.SIl'II:1clnunk II ~,k ....~ ,'u6i6 es<.1rl>m 1$. ÓL'
ann;Lk ID tulajdon5;:ipl ~Iliuuk .1Ie-~ (~letkorJ

\'.:,giI1 kalhmsunk II Multon \C,'z!rl6re, hogy annak II lulajtlom;ig:.it is megadhOlS/iuk


At lI:tO<\O!iílój:lleg)'en btnSub,'üt, Text mla)doo!>J.g:. pedig ·Cl1c~ M.. - ( Katllnlll!del ).

1>r6I>iljuk ki az ASP,NIT oIdJI\. lK>gY meg\"iu;~lhaS5uk:il TextBox vezfrl6khöz


létrehozon ~mll-k6dol. TöI~Ok be 3l oldalI II bOngé<z6nkbe:il Oebug mcnll Sun
" '''thoul Dcbugging p:lranc:s.;\val A 10.2. :íbr:\n llliuljuk, hogyan fot:il " 'eboIWl
:I. ~ megtekint\·~: :I. tff\'ez6ben :lZ okblhoz aJOU k~ SZŐ"egm.z6 !:!
a gomb iS mqgeleruk.
10.2. Mn
ri b6,~, ld/ha/juk, hog}'
az ASP.II1fT CJJdalo" Wi ~,,=6 II:<
'ID' gomb wid/haló

Ar. ASP.NEl' oldal bc"1őlt6ekor lwpolt IlTML-k6dol a 10.1. példa mutatja .

l, <!DOCTYP~ ht .. l PUBLIC '·/IW3CIIO'ro XII'nIL 1.0 'l'rall8itiollalllEN'


_ ' http,//www . wl . or~/TRl xht mll/DTD/xh~ml1-tta n si ti o~1 . dtd ' >

"
l, <htal
~,
"",,11l8~ "http,llwww ... 3. Of"lj 119~~ Ixhtal' >
<head><tltla>
5, Untitled P.. g~
6, <ltltl.></h~a~>
7, <bc><ly>
8, <fonn I>aIDI>' • fona.l' "".. bod, ·pon· .. ct! ony ·T1o;x tBcx Pract ice . aspx'
_ Id.'ro".I',.

10, dnput type c' hidden· n""",.·_VIEWSTA1'E· l<l.'_VIEWSTATl'!·
_ va lue= ' /wEPDwULLTEXNTc2NTI JOTlkZMIWuARZnpdka'ivVBucrgXkPl!P I T· I>
ll, <'<liv>
",
ll, <<liv>
H, Your no_,
15, dnput ",,*,. ' na/ae' typ... ·text · id=·name ' I>
16, <br I>
11, Your a~e,
18, dnput _=oag,,' type='te ~ t' ;d~'age' I>
19, <bJ:" I><br I>
", <input type"sul::mlt·
_ i<l,·btnSul>l.lt· I>
....-~·btnSul::mlt · v.. lu,,~ · Clic k Me'

21 : </div;>
22,
23, <dlv>
2~ ,

25, ünp..t type, "hidden' .........,.' _E:VEN1'VALlDATlOO'


_ ld_' _~mrvALIDATIOO ' va l ueo '/w EWBAXu6""'lBA~7uPQdAtCCr6oCA8
_ lt!..lt4039d7pTr.,tC5H.'Q:haM1'gctPugho. · I>
26, <ldiv></fonD>
21, <Ibody>
28, <{html,.

Amint a IS. és 18. sorOOllllthatjuk, ~ Texl80x ",,~zér!6k ol)"'-n dnput> clc~kké


k~peződnck le, 3m1"Iyeknek a tyP<" jt'Uernzője 3 text én(,kcl kapj::!..
10. 6111 • ~ ....bgm..A h4 1UI

MOvelet végrehajtása az Orlap .lküldésekor


jdmlq; a TextBo"Pract.ice . .up" ASP r-.."ET okbl semrrut nem CSlCIóil ••1IIukoc e1.kUkIjOk
at Ilrbp«. ~g iliUl:an =>ktunk ..abmil kndmi ~ rdl~WIó ~1taI mepluu. aw.-
wklul. ~lIcmz6en .. abmiJ)"~ stimíLbl \'é'g1:ilnk vdük. b az eredmén}, meg,eleniljük
n oldalon. A1JOg)' ~ k6i6bb. fql"zctckbm bm, fOSJUk. az 's (,Wordulhal, hogya meg-
aooU aWlolcnak n1egfdel6<-'Il valamilyen értéket kelJ kiny<.'mllnk egy adllil:h,,,ht'll
A l.>emencIet !Tlukikél esetben fddolgouuk valahogy .

.\hhoz. hogy a kél in ~aekek eIérlleloSÚk. egy escn~,,)"lu:zc:16t keD


SZÖ\"t'gIl1C'z6bc
;Wnunk a Honon \.~ C1tek CSC"""'}"8lez, amdyndc k6dj:l akkor- fut k'. arrnkor
:I felhasznál6 a gombra klmint\'3 elküldi:lZ Ilrlapot.

A11Og)' n cl6z6 k,<,:k(-!)cn latruk, a BUIIOfl \'CzéM Cllek <.'serntrlyd\Cz igen eg)"wmr
houhdni egy e5I.'1lltnykezelól. C5ak <lupUn keU kattlfll:lonunk:l gombr-J 1~Z(! nézet-
ben, de az! i.5 megtellCljllk, hogy fOll"h IlÓ'zi."tben felül kJ\"~b~JUk ll. Butlon ve~ ll. bal
okbli, k a <:':1.1'.'''- e>cmén}1 a jobb oldali lenyíló hstib61. fUnndpk megO:OId1St ,-;tl:w;quk
i!.. automatikusan J;:u-ejön az escmtrlrkezdő \"~1.3. amel)'hez hoU:l:IdmljUk a lo1:ü~
kódot. Most lel1.:it azt ken eIdönt('llilnk, mil akarunk kezdeni a felhas2náló ~ltll nll.'gadott
adI1okk::tlaz űrlap elkllkl6e után. I'ddlnldxm aZ ASP.NEl" oldll csak annyi fOS tenni,
hogy me-gjclenill :I Idhaszrill6 ~Jtal mcg;odott :«blool J böngés7tiben, mégpedig egy
L:lbeI\"cztri6ben

~ tdút adlUnk C'g}'l:obel "c2érl6c II T.. xtBoxPTa,", ice, up" okbJhm- A címke
Wrhc)\"1 kmJlhet a ImtL rtszben. de hól ponlosm r.zeretné!nk kÖ\etni:lZ iti leirukal.

-_ ..
helre2.2Űk azt ~ Hunon \'ezérl6 aU

... _-.-.- ...


• I

I~

10.3. 6bnt
... Th:alJa:d'm<;"".mpx oldal" hibri ,1a1."rl6 hozz<i<l<kl>t• ..",,,
A 8, rti<"=b6I emJ(,kczhetflnk d. hogy ubd,~ úgy adh:llullk ~ 1egeg)'SzeI11bben
al oldalhoz. ha J TooIllOlt poilenár61. r.ihúllUk. f-hul:in eZ! meglcuük, ~llil'>Uk a .-czéri6
ID tulaidom;;lg:lt ruu l t .·ra (en:dmeny). és töröljük a Text, tulajdon'\.lg &tékt:t
A 103. lbcln Ulhaquk. hog)"an f~ az oldd !<:T\'ez6 nl:zetbffi a dmke hozodadis:. CS
lulaJ<ions;is;...n:lk bo:~ll;I.;>SóI utin.

KI! szere'""*. nyugodtan megtehttJíik alt IS. hogy briItfUI;.' ,It" cirra....
. . . . ~ •.•, ... j.t.tínbl1lll_1 I ét~(I1IJ.nék·
SZOnk "- ~ lIAjdOnS.6g péId6uI. r. nt, . SackColor 'l1li'/'. rorer _ ,r.I

'kN. hog)' az okblhol :Kkuk a blJcl v~. írjuk mo.-g ~ kódot a ijunon ''C'1.trl6 ellek
e""ményénck esó.-ménykezela;.:,lleZ. A I O,~, p&W"," bthJ.\juk, hogy:I.n kdl fCS{C'flie
az ASI'.NET oldal f~ód rfszl'nek. miul:in a Rilks<-ge'l kódol a g<>ndl Cl ick ~-rnt-ny'
kezcl6jéhe-z 3d1uk c..:.k az 5, és a 6. 5()11 kell ~nkn;lk heimunk, a \'isu;r,1 \lieb
De>-eIoper az ÖS5Ze51tJbbn dk&zlti :I ~munkr.l.

10.l.,.... A Dk'" -...~ "ftIItn=UJJÓ nt'l~~ ft BttI«>nJI JNnllj ...


" ......st< c,,,.Mbm

.
}, Parti.l Cl . . . Te><tBoxP.-actlee

,,
2, Inherit. l1y.t_.W~b.UI.Pa\le

, prot"",'ed Sub btnSuc.it_C11,-kIDyVal •• nder Ad Obl~"t, !JyVd e"'"

,.,"
_ SY_t_. Ev .. nt"'r-a~l Handl ... btn8ul:e.lt .CI1ek
r •• ula.T""'t ·Hello.·' _,Text
r •• uIU,""'t ~~ '. You ar. " , ."'".'I'1!xt , " y .... r. old."
,
S, D>d Cl'-••

Az. esemf'nykezd6 k6dp a n ... l u clmke- ,..,.t


tu.La~g::I~t úgy jllit.,. be, hogy
II dmke II fdha:<l'n;l16 "lt~1 beirt rle\'ct &; l:Ie-tk(>ll jelenitse mt:g. EmI~k"l.l.(Jnk V;55.Z;I,
hogy annak ~ <zö"egrne~6nek lIZ azonO:>it6j:l, ~mdybe II felh... ,z!Ú16 ~ n".'él irj;! be,
_ , mig al. flctkor megaili.s!íra swlg:lló TelClBox "e~rI~ a\le.

~
0-'0
v'

...... - --
.:~.
, .~"

10.4. "
AjeIhasvWW .... ",...~..... =.hr-
10. (n - ~ ...... ,w6kUl I 223

A 10.4. ~bt:in Jathallo.lk, hogyan reSt a Text BoxPracüce .... Spx okbl II böngész.6ben.
A kfpcrny6kép nt kÖ'o'ctőcn k(;szüh, hogya felhaszniJ6 Ix-irt a ne\"& és:tz Hc,koot,
majd elküld,e az űrlapot a ClJc k Ke gond)f1l kalllnt\"J

A TextBoxPnctice . .."px a TextBox vez{'ti6k ASP.NET weboJda!akon v:tl6 felluszn!i15·


~k alapjail szemJélietle. Az 6r.l hatrJ!e\'15 részében a TextIlox veh"ri6 küJönfék
rulai<Joru:ágai(:l ~pon,,;~iiUnk. é5 arra. hogy ezek hogyan befolyholpk:, S7.Övcgmczók
megjelen6él: 3 ~

Többsoros szövegmezók és jelsz6m9ZÓk létrehozása


Álljunk nocg egy per<:I'C, bo vi~ljo.lk 1»L1I a 10.4, ~bd.n 15th:1l6 SZÖ\legmcz6kct.
LIithatjuk. hogy ezek egyetlen som)"; szöveg beír::is:i, ,eSZIk c=k lehet6vé. Bimny:;'"
szörföhünk már annyi, az lnwrnct"n, hogy tudjuk, l&"znek miMéJe S7.ÖvC8,""zők i~,
többsoros mez6k és. jelsz6mez6k.

A többsoros szll\"cgmezókbe egynél több som}; $ZÓ\....get ls beirh:mmk Ilyen S7.övegn*,"


z6rc ~llllláb;;m akkor ,,".In szú~8, anukor:l. felhaQnil6nak nagy nocnn)'l5égO' ~zöo.:c8C1
kell bcírnill. Az ifliC1"nctl':'l üzeol'ifalak J*ldiul olyan vit:lf6rumok, ahol a látogatók
kérdbo.:kCltehctno:k fel. kérdésekre v:ilaS7.o1Jllltnak. vagy közzl~ehetik megie8yzéseiket.
A többsoros szőH1pncz6k jellemzóen mqpegy~k bei~(:I swJgáln3k (a 105. ifurin
látlutunk egy p(-Jd:\t 3 többsoros szö\·cgrnez6re).

A jdsz6mezólc oI)"Jn ,ZÖ\-.::gmezók. amelyek ~d bb-..alm:os adllok:1I gyIT)lJlI.'tilnk


a felluszn:il6któl. A fellu~il6 ilyen. a bein karakterek hely';" CSIllagokat megjelenít6
mezőben adlu!", meg pékUul a jel,-,zav:it '~gy a PIN k6djk A2 ~lclzott tx-nl<.-net
megak:tcL11)'OZZ:I, hogy egy k\lls6 szemléi6 a fclhas:m:l16 dib fOIöIt Irulrucsk:IJ\"a
leolvasluSSOfl egy jei5ZÓl '':lgy m:í$ biza lma.. inforn~d6t. (A jel>'Ú>lnclŐre 'I 10.6 ~bra
mutJt egy példát.)

A szö,egmez6 rnegjelenk(,t a Tex,Box ve~rló Te><tKode lulajdonsiga határoua meg.


Ez a tubtdon~g adia meg, hogy nonn:ll szö\'egmeZÓl. töb/J:soros sz6vegmez<'il ,agy
jelsz6mez6t kell megjelenítem . Ahogy é!;7.n."I'e!1(.1tl1k. a TextIlox vez&16 alapéi1chnezés
szerint norm:íl szövegrnez61: jeleni, meg, de a kö,·etkeúSkból megtudlutjuk , hog}~1fl
vehetjük cl. hogy l('képezésko.- töbOsoros s~vegrnez61: vagy ",,1~z6mez6t 1:l$Sunk.

A többsoros szövegmez6k használata


A többsoros szö'egmez6k léu"ehoúsa az al.'ibbi egyszertllépéseket igényli,

l. Adjunk egy Text Box veh"rl61 al. ASI'.NET weboldalho1..


2. Állíl5uk a TextBox \'~rl6 Text Mode rulajdon:Jgát Mu l t i Li ne.-rn
3. Adjuk meg a löbb"oro$ sotővegmez6 oszlopaInak és so';'llnak sz:irOOl" 1:01"'""8
és a RO'o'II lulajdonságokkal.

Ké$Zil.Sl1nk Ici! egy ASP.l\'F.T oldalt egy löbl.>roros SZÖ\'"g~z6v"I! El6ször hozzunk l(,t,.,
"IlY úi ASP.:-'U oldalt M"ltiLineTextBox.llapx név"n, majd írjuk be a km·etk"ző
szö"eget a !er.ez6ben a webes űrlapon belOIre, Share 'r'our 1'houqhtQ: (~meg
velünk a v{,lernényéü

A tQbbsoros sWvegrn"z6 felvételének eI.s61eJlése az. hogy hozzáadunk az oldalhoz


egy TelCll:lox vezérl61. 'Igyhogy húzzuk t.> ITIOSI az oldalra a Toolbox pale\w.rol. a Shara
'r'ourThou!I"hts: szOvegal1.

KÓ\'crkez6!ép6kenl ue kdl ~Ilitanunk a szöveg'nedi Ttxtl(od" lulajdoosjg~l. Ehhez


kanintsunk a vezérl6re, hogy a lulajdo~gau hctóhsilk ~ I'ropcni<!5 ablaklXI, majd
görges.sOk le a l\llajdon~gok lisUiit, amíg el nem é-rjOk a TextKOOe tulajdon.s;igot.

A TextMooe tulajdooság alapértelme.zen értéke Sing leLine, ametv


egy szabvÍflyos 111'(SOt"OS wiV&gmelÓt hoz Ibe, amílyoob6l 8 10.4. ábrikl
il láthattunk nMl;lnyal.

A TextMode tulajdon.'<iigra ka!t;nIVll egy h:1rom ]{,het~1- Singl ..Lin .. , MultiLine


és password - tartalm:I7.6 I;51:11 kapunk. V:llasszuk a Mult 1 Line be:illidst, igy
a T~Box vezbt6 a lerve1.6ben automalilrusan többsoros szöveg",edivl' villrozik.

Ezen II ponton be:íllíthaljuk a t~ros sotővegm"z6 sorain.~k és O51.Iopainak számit is


a TexlBox vezbt6 Columns (o:;,.lopok) 6; Ro.... (soro!<) lulajdonságaiv31. Állítsuk ll"IO$
eZl a kk bd.llitlst SOfI"endbcn a lS és az 5 énHre. I.1ith..:ltjuk, hogy a te,....eUiben
3 vezérlő a7. új bd.llíl:'isoknak megfelel&-n frissül.

A 10.5. ~br:l a Visual Web ])ev*,lopen mutatp 3 fenli lépé:sek végreru..Jlása ul~n .

..... _... _-----'"


--- - 10.5.6tn
,-.. ..... , "J1}/JbSOrO$ ~>:/!"'.-.d"
""'Rfekr"/;;'"
GyakorIHl;éppen kiegészíttletjiik 8 Mu l t i Line'l'extBox. ~spx ~okIalt
egy 90mbbal H némi kóddal a gomb cl iek eseménykel&lój~ben. Egyei6fa elég.
lia a k6d csal:. megjeleníti a fellasmiló illaI beírt $lÖveget.

A többsoros sző\"egmez6k méretél nem C$lk a colUlDf\I fs RCWB tulafdons::igokkal


~lIi{hatiuk be, hanem közvetlen módon úgy is. hogyaTextBox vez{-rl<'>re kauUllunk, és
az alul. ;obbo!d.,l! ""gy a jobb alsó s:.rokban t~I~lhaI6 méretelÓikonok wlamelyikét
vesszilk igénybe, él awnlxm nem" '·ez"'"6 ColUlDf\I b; Row.ll lulajdons:\gait mó<losílja,
h,mem a Hei\lht és Width tulajdonságokat

A két m6dszer kőZÖlt az ~ kiilŐllbség, hogy ru. " Heil/ht (is Width tulajdons:lgokat
adjuk meg, a szö"egmelÓ pontosan ez e tulajdonságok ~It:ll meghatarowlt méretben
jelenik meg a felhasználó böng<:"Sz6jl-ben, IiJ.ggedenül a SZŐv<--gnwz<'ib(.'n haszn.ilt
benlmheu61 (Vagyis ak:ír nagy. ak~r k,Q;i b<-1űk<-'I. használunk. a szö"<'gmez6 ml'rcte
nem v1ltotik.) Euel w.emben a Colwnna és Rowa tulaJdons:ígok megacJj"'"1kor a lém,'-
p,,6 szö"<--gmez6 mérete a mez6 bculm<"'IlM~hel igazodik, vagyis az o:;zlopok ts sorok
wma mimIIg azonos m:uad. Ez(,n. ha nagyobb belűkC! használunk, a szÖ\cgmez6
nagyobb !es]" mintlu kil; bC!űkC! alk"lmnn~nk

A jolsz6mez6k h8S2!1álata
Sok wcbalkalrnaZás egy fiók létrchoz:ís:lt köveIeli meg a fellu5Lf\i){:(61. mie16n 37. 19ény-
be veJK~né a "·ebhcly swJgiltatisait, vagy a núr lélrehozou ft6ldxt v316 be;t:!entkezé5t
igffiyli. A HounaiLrom-on péld.1uJ csak úgy inlézhC!j(Ik a levelezé:sílnkel, ru. cl6bb beje_
lentkeronk II fclhaszn116ne-.iinkkel b ielsza"unkkal.

A jelsz6mez6 ~ 57.abv1n}'Q5 sZÓ\'egmcz6 egyik v1ltolat:l. amelyet úgy terveztek meg.


hagy elrql:<e ~ fdhaszn.116 1lLII beín SZÖVcg1".1. A jclsz6mez6kben !!linden beírt karakter
helyén egy cs illag ,elenik meg. A 1O.6.1br.in péld.1ul aZ! 1~l.Imlfuk, mi történik, Illi
egy jeln,6mez6be a This is II password (Ez egy jelszó) szö,",'ger. írjuk be.

10.6.6In
ti j(!iS1::(mrez5 tlJcána a fdhasvJáló állal be", .U!U"St'f

Ha egy ASP.NIT weboldalon jelsz6mcz6t szeretnénk elhely....zni, C$lk az oldalho~


kell adnunk egy TextBnx "ererl61, ts annak Te"tMode tulajdons!igit Pass'oltlrd-re
kell állítanunk. Hozzunk il; létre egy PasawordTextSO". allP" n,-",Il ASI'.N!:' oldalt.
hogy kipr6b:11hassunk egy jebz6mez61.
Kezdjük azzal. hogy beírjuk a Unrn<UllO!, (Felhasznilónl=v;) szövege! az oldalra, majd
adjunk uÚna ..gy Te:ulloll ",ebe!;: '·ezMriI. A követk .. z6 sorha í'1uk be a P/lGS\olO~d:
(jelszó,) szövegel. és a jelsrohoz is helyezzÜnk el egy TextBo~ ,·e7.('fI6I az oldalon.
Ez ut::in állítsuk a második TCXllloll vezérlő TlIxtHode tl'lajdon:..:lgil Panwo~d·re.

A TexIBo~ vezérl6 TextMode tuIiIjdon$IÍllánal:; Pasaword-fe 61litbsa!'lllm vá/tOltalja


meg a tervez6 néletben I sziiveglll8lŐ megjelenését (Emlékezzünk vissza, hogy
amior lIII'fanennek a lulaj~gnak a MultiLine 'rtitkal adtuk. 8 tlllV8lÓben
többSOl'O$ szövegmalÖ jelent meg.)

A két szövegmeUl ut::in az oldalhoz kell adnunk egy Bunon "ezM6t is. amelynek Text
lulajdons,Ógit !.oQin-re ( Bel"lentkezés) állfljuk Ha a remi I~seket vég ..... hajtOltl' k.
II képcmy6nkön:1.Z( kelll.1tnunk, m;nt a 10.7. :lbr.ln.

"''''
'··.OIolI
_ _-- ""-_
... ...
." --'"...
- ., ."

,"".,. , -
..,/i!",O'"-• ~.

_ __ _ o
.
!'...

---- , 10.7.6tn
Az ASn;/;7 u ..obokkd
lI& Te>:t1Jo>; es~' Blillon
.~ IUr/aI_lZ

A jelsz6mez6k értékej visszacsetoláskor oem 6n6dnek meg

A jelsz6mezők a ",eboIdalakon nliha nem úgy viselkednek. ahogy v:irn:ínk. II finom ...•
go!< ~;remléltetéséhez teklnl.Sűk meg II PassW<lrd'l'ext80x. aspx oldalt II böngbz6nk·
ben. IImtkor először tőltjilk be aZ oId,]t, írjunk VlllamiJyen szövegel II felhasznil6név
és a jelsw megad:l ... rn szolgiló mcz6kbe. Megfigyelhetjilk. hogy az első mero
(a felh:l5w:llónév mez6je) úgy viselkedik, mim egy no~1 S7.övesmező. a jelsz6mcz6
azonban ~ill~gokkal rejli el ~ beviu szövegel. A 10.8. ~br:1n 11thatJuk. hogyan fesl
a PauwcrdTllxtBcx .aapx ASP.NET oldal a böng6z6ben. miut:!n mindkét mez6bto
beirll'nk valamilyen énékel.

Miut:in adatokat adtunk meg a két SZÖ',·egmez6ben. kiildjük el az űrlapot a Login gombr~
kamnlVll . Mive! a webes űrlapok (ahogy az d&ő leckében megunultuk) visszllcs:1tol6
űrlapok, az űrlapot tanalm:.o.zó oIcbl töltődik be ujrn. Az oId:t1 újralöltc!sekor azonban
a jeLszómez6be írt szl,.,.eg eltűnik ahogy a 10.9. 1bcln is I:Ithatjuk. (A ("UJaSZn.116oév
lTlez6íében levő szöveg viszont megmarad,)
lo.6ta.~~hl ! 221

...... _
'H' __ "_"_""
...... .....
..
)

._- _.' ..) ..!l ii t. ; - '-41


-- l0.8. 1ibn
"". in .ml<"li'
A ,",.-,",......
~ Jitl'fllW 1MB
lIdVhf

-
-""- 10.i . 1ibn
"mlJJortn ,lrlopol ~ft1'.
DZ "JmJ6/IcJJIor tI}lúd' »9.>t II
,...". S-rot"li' tIffl.. l/t

\1ié'n trulrJd meg a f('lha:szOO~ 1llt'Z6jébe beín g.ö\t'g, b mil:" tO"nik el;i jclsz6mc:z6-
hen ""-v6' !'.ml-'kezz(Jnlc ViSS:c.1 aImkor a gombrn k.:Iu;n~unk, es .,lkGldjíik aZ ,1r1apot
J fdhaSUÚ:1ó ál12! ~ ~'egrnel6khe rn ad:uokk::II,::IZ ad:llok ~ Paasword'l"ellt80K.UpK
ASP"''', okblhoz keríilndl ,'iMZ:!, Amikor ~ P" •• "",~dTeKtBox,.5VX ASI>,~I:.' okIalr~
ir~n),,16 kfrdem meg'::n«:Zlk 3 "--ebki.szolplóhot.::IZ meghi,"p az ASP~'1:1"-motorI.
3me1ynek ek'I kell iDiI:lOJa 3 megfdelo'll IDIL-ktmendct Az. ASPSET-moIIor nqilbpil;:'.
hogy az okbl ,i.ssUc5:;I~oI:lsI: keulemL"fI}'t'ze«, 61. ~ hi T6\Bm: n ,·:rert05 -r-t lula,don·
s.igjl ~ feU\."lS7.rilló ilii bein é'nl'kre "IhIp

A Si n;1 ttLine vagy Mu l t i Li na .!!nékre ~1lí~oo Te><tMo<l.- mla;don.'iággal biró >Jll\.,~nk'·


z6k ~j\ben a Ten IUI.3~g "n~ke lekq:,eúskor IlCkeríil a vezi-rl6nek lTl<:gfek:k'S
1IT\IL-kódba. tb egy TexllJm: \"t'úrlő Text lula;doos;iga pélUlul Scott,:OZ ID 1U1.:I,oon·
$Igöl pedig TvttSoKI.:O kt)o.-etke~ 1m.IL-kód jön ~

A ~zli leképen:sekor ::IZonban 3 Text lul::ljdonsJgnak nem k= megfelc:lője


.. I-ITML-kc'xbm - elJ. " ''tC'zo.'rl6lulOnsági okokból nem engedi meg

KépzelJilnk el egy Tl'XlBoX '1'%(.,.161, ~melynek TextMnd .. lul::ljd0n.s3gát P" ..WQrd·,.."


ID lulajdoos:i~1 TtiótBoK' ·re, TeKt lu!a~1 pedig P/luword123·rn jJ~quk lIa
rT1OI;I a Text lubjdonsjg tn"k" bekenilhetne a IIT\I L-kirno..~be. a Textlkox '-cZér16
,,"-kq:,el6I.kor::az 3Ubbi IITML-kodol eredmom)~
228 11. ráz · FtIIIaaiMói Dtok Qoo,"\lyIljl6M" hfdoIgoz&'

M09: tqo"Ük fel. hogy val;.ki el1:1togat ~ a weboldJ.lra. ahol a fellJ.~sznáI6~-k és


a jelszav:it kérik, és ha b .... na azokat, aJ; ASP.l\"ET oIilil egy label v~érIőhen megjelenít
:I sz:ímira valamilyen s=nélyr<: ~7.abon inforrnáciOt Ha,. feiha.1.ná16 egy pl:n:re fdjU

;I stlmit6géJ*t6l, hogy ig}'Qn egy lX'hár vizel, egy ~tUst.111n munkatolrs:l.uk let"-'l6sége

nyílik r:i, hogy megtekintI;<: a wel.>bön~ :ilml kapott tn"ML-k6dot lia ebb"n = ...
pelne 3 tet"zórnez6 '!'ext tulaj<k>nsága." kövClkez6 I{)"ML·kód tlruJrut a kí0.ncsi~kodó
~>:t-'fllC eI~,

( Feltételezve. hogy 3 felhasználó jelSZ31r.1 password123 ,"olt.)

A munk~11rs tcMt lJinoklba julna ,. jebtón:lk - ezt ak:!iliJyo>:za meg. hogy a PoIIsloKcd
értékre ~llitOll 'l'extMode tuJajdonsággal rendel kel':; 'l"extBOx ,"C~érlók Text
Nla~ga nem jek'flik meg a kimenaben

Úgy havonta egySlllf mindig akad ~alaki. aki valam&lyil AS~NET hlrcsoportban
felteszi a követkelÖ kérdést .Mi az oI:,a amat hogy am_or befllítol egy je/slót
egy TaxiSox vezétlá Text tulajdons,ágllbllll. az nem jeleník meg. amil:;or az oldak
egy böngészőben nézam mag?" Most mát tudjuk a vélaszt.

ATextBox vezérl6 tulajdonságai


Ebben az 6r.iban eddig qo"t'IJen lulajdon..:igol vizsgáltunk meg közelebhr<ll- a Text-
MO<'Ie tubjdonságOl. :Imely azt h:Il.irm:Z3 meg, hogy,. TcxtBox webes vczérl61 mikbll
kell Jeképemi w:>In.'ányos 5ZÖVegmez6kblt. töl::>bsoros sZÖ\egmez6ként vagy
jcJsl6nlCu5kbll. "'2 ÓflI hátr.dc",':; részében 3 Tex!Box vezérlő egyB.> tulajdonságal .... 1
foglalkozunk

Aszövegmez6 hoM.ak meghatározása


A TCXlBox vezér161 id6nkt,nt oI~':.ln ad.llok ÖSSZCg}1Ijtést:...e haszn:\ljuk, nunt a felh:I$l.lÚI6
Hetkor.:a v~gy a l~khe!yénck. péliliul egy ~"<-"SÜlt Államokbeli iI\bnn",k:l k{:lbetús rovi-
dit6oe, Ilyen ~ben a bevItt adn csupoin néhány k:lr~kter h05SZÚOóÍgú , a böngész6ben
mcg)der>6 ~·egme7./5 aronoon (~hogy a 10.4. ::íbcln is ];'jttuk) sokkal n:ogyobb a sziik-

""""" .
Szereocs&e meg~dh:lliuk. h::;ny ""2lop 5*I~gú leg)"en a uövegmez6, mégpedig
a TextlJox: vezérl6 Co l UIIOI'I8 tulajdonságinak beállít~sival. "'z emlilC!! Nlajdonsig
működésének v.emléllCleséhcz nrissuk meg a '!'e><tBo>< Prect iee.upx ASP.l\'ET
oIdJh. amelyet a lecke els6 péld::íjátxm készílettünk el (Iá$<! 3 10.01. ~bclÚ, és rn6cIosit-
suk az életkor megadís.'ir~ szolgáló szÖvegmez6 ColUllll'ls rulajdonságit. hogya mcz6
megfelelő nagy53gu legyen_ Ehhez btuntsunk az emliteu TexlBox \'cz&l6re, hogy
a tulajdonságai rncgjdcnjenek II I'roperties ablakban, majd állítsuk a tulajdons;isOl
a 3 éltékre,

Milll"n a column. lulajdons;'igol3-r:I .illiIOl!uk, ~ szövcgmez6 a Ic"....,z6ben az ~llIpér­


leinICzcn ~ességr61 hárorn oszlop szélességre ~gorodik_ A \1sual Web I)eveloper
képt"fll}..1jé ....k k~ II tubjdon$!ig m6<IoIiíthll ulán II 10.10. ábrJ rnUlaljól,

~~,..._
" -._-_ w;t
... _--".
,--
.... "-
...""'", •
- 10.10. iIbra
Az ogeUl'k<'gma6
három OaJOP szt/cs

EZ:il fÖ\'idl'bb szövegmez6 jobban megfelel aZ igényeinknek. mim II 10A, ábrán l~tOU
hosszabb mez6.

A TeKlSox "eléMt lIHWl6 nézetben 8legérrel hUNa is á\lTMÍretl:llhetjUk, de


ezzel a vezérió Height. 's widrh tulajdoJlS~oait m6d0s~jti, Ahogv A röbb50r0s
slávegmelf;t haszná/Illa cíflli rész wgén emlitettúk, az amI~ett klÍt tulajdonság
a SZÖVII~ absmIlÍI méretát hirtároua rnev. mig a Co l umn. tulajdonság
I megjeklníhmdó 0QI0P0k számát, ami 8 szövll9mero mél'etlÍt a mero
betűméret'r6l1eSZ1 fiiggiivé.

TeKlSox vezérióinket mindig ugy méretellÜk, hogy megfeklljen~ 8 felhasznélókr61


várt adatGknak, mert ez el6segíti, hogv azokat il megfelel6 formátumban kapjuk
mll9. f'ékIáOI ha lill szeretnénk. hogy 8 leltasznál6k rövid klirnl adjanak magukf61,
könnyebben vehetjük r6 6ket erre, ha egysoros SlÖV1!gmez6t bÍZlosiluli nekik, mint
ha többsoros mmt jeklnítíink meg az oldalon.

A szövegmez6be (mató karakterek számának korlátozása


A szűv<"gmez6 ml:reIének sz:.oW,lyozása a TeJ<tBox ve:zl'r16 Colun'lns tull~g:ínak
!iC8ítségével nem korlátW.Z3, hogy a felhaszn.116 mennyi szövegei irhat be. Egy Idrom
06zlop 5zél~ém megado« TextBox vez6l6be ~kár több száz kar:Jlnemyi s;w;eg i5
beírható,
'I1(-ha ",mnb:m swk$l-g.:-s, hogy korlatmzuk, menn)', $ZÜ\'eget írl~t be a fcll".,.zniló
egy ",dol( szö\'cgme~ ~ oIy:m wchhclrek péld:i ...1. mmt n eHoly, csak 80 karaktert
engcdél~'CZIK'k, amikor cgy ",dotl clad(lI'6I ~ag)' vl,;'l.16r6lIehet viMUjell6l ~dni.

A webhcl)'ek ~hatil~n kél okból kifolyólag korUl01.z.1k ~ ~·t:grncr.6kbc Irh:uó karak-


t~k SZoindl. ~ cW'S, és eg)'ben fOl'\lO!i.JlJb ok. 1108) 'g)' könnrdJh n ",duok keslibbi
form;izki. Az. dta)'-al n ebd6bt és '-:ls;ór!6bt min&it6 visszOl,clzCsek példi ... 1
egy ~ oldalon telumllC'l6k meg, amely tömör k ~nclumlM.16, men ~"CI1en
fdh:uuciló $en' lrI~t be CJn~ ll) kal'3lnertk-1 hossnlJb ..ro.·..NCl [nnek a kOl'Uto-
Z;i"Nk k&wnhet6en:iz ~ okbJ Iigy f()rTIÚzl~tó, hqn' eg)~ 1'Ir>IiSliJ
.sZÖ\-l:gblokk~ ~ Urt:llnu7.zDn-

A mi$odik ok, hogy n clioty-l>e~ hasonló .... d,hdyck ad:lIbMisokb:m 1:ImlFik a fclha.z-
n.116k ilul henu infOl'Tllid6k,u, ndrpedig.;-gy a~bth:lotis fd.1l1itls:okor előre nlcg kell
",dni '" .Wvegmc~bc beírható karakterek wlndt, Az. .. Bay webheLt)-'eI kapoobtban
emIÍ1~'f( k()fÜloti$ld~1 ",Zért léteZIk. men al eBói}" adatb:5.Zis:inak tJhUlIte1\'fi:6k e~
a korlllozá51 l:I/1Ou:.lk srii~ 8etbe Ié~etni (Az.:i<brl:QmoI< ~h()U$h",,1 r:.
llaSZn<lb"".,.1 a könp' kes.:öbi n':sztben. ~ II f~,.,~ll'iI kezdo.-e fogblkomnk.)

A TcnBox ,'e7.érl&bc belrhal6 kar-.kter\.'l( szarN! a IlaxLomgtb tubjdonsJjtOO ker=ill


korLlt07Jlatjuk, A ,..,.t BoxPract i C"iI. ~.px péld:ihan és!;z<.'ni koná!ocl~ lehet az (:Ietkor
m..z6 Jegfeltt--bb himm ka.-~klctre korl;i!ozi", (ht-.Zt:n nyilv:in Cg)'dk-n I:ltog>tó 5<....,
lehet id6seb!) 999 b'csnl-l), Kanimsl.mk tejút U l~,-'tkor lI'I<.'gadas.ir~ uoIg:1l6 !>ZÖ\'cgme-
z6n.:, és ~lIilSl.lk ~ IlaxLoo"9~h tubjdon'\:lgJ! l_r-J. M~, hog)' ez a vlllOcls
3 1e1\-ez6ben nem por blIeIhet6 ~1. de I~ 3 m6<bít:is ~ ... ún nM:g1ekintjilk
3 1'1IxtlloJcPract .-=e.aspx ASP-"ET oIdtk a~. és h;ircrn bt:llu.,.....,. többet
~I ... nk Imi azemlilcu mez6be,lltlla!ruk. hngy nem megy,

Azt ~ hogy la .lIaxLenvth ~ént 0·61 IKkrlkIlWQ. .koI,1eI-


1!ftzn"6k llemmrt sem kttalnlk maid til !Idott mez6be, de ennek épptn til elet\-
ke:6l' tOtll- A OKaxl.<>"9~h-ért'k RI jelenti. hogy. SlÖvegmtlrobe Irhat6 adat·
!l"I8fIIlYl. rom. se~ korljtom rw-a 6Mlnybert

AhU:I6~~.~.~tb ~
~~ tehM til • ~ 1*11 ga-antiijl. hogy • 1e1'1a1zn616 által
bIírt lI1f0rm6a6t~wgeseq 1*11 hosmbb .lC.oxr-qth ~ mepIottnál.
A 12. /etel'Itben l6tnI foo;p, hOgYIn 1llerl6nzhtt;A. hogy • ~ ~ nem
Mott.. meg. meg/latérozollrWl tőbb ka-Ittert egy a6att smvegmez6ben.
A i'!lIX1.·mglh lUIajdOnÚg 8lIIf111vii1 euk til ~OS SZÖV1IOmtz6k ts. telSlÓmez6k
esetében mCtI:.6<fik. Ha eqv TutSox verifk'l T .. xtMod .. tulajdons'o" Hu l t i Line-rtt
61íljUk.. fekIOIOOlÓ rtgVelmen ~1ViiI haov~ I i'!lIxLengtb tIUJdonÚ!IOl KeriiI6 m6doo
• tőbblOlOS szöveomez6kben is korI6tozhetó. beírII8tÓ ka-. . . aámIt, diR
til ASP.NET lIIn6mI vez6i ...... IlaszMlltit ~, . . csak. 12. ófht drgYaIjUt,
Esztétikai tulajdonságok - a szövogmez6 betútfpusénak és
szfneinek beállftása
II l.:Ibel "CK'fl6oéI I.!iltunk mir néh~ny OI~W1 esztétikai luL1jdons:igol, mint II B<lckColor.
a ForeColor \!;lg)' a Font. A a. fL~zl1ben rnegviZ5~ltuk ezeket II ml:.jdonságok:ll, meg-
néViik, hogyan adh:ll6k meg. illefve hogy milyen hatlssal '-~nnak II !..:Ibel vezér\6ben
megjeleniten W'lvcgre. II TenBox vezérlő pomosan ugyanazokkal" megjcleníté>i
lulajdorWgokkaJ bir. mint a l:IbcL EzckCl3 tulajcloru;ágok:u a 10.1. ~bUzalban foglJltuk

"""

d. hogya Font lubjdons:ignak sdmos rt:"51;1U-


bjdonsága ,"~n, pélcl;iul a Na-. a Size, II Bold. és igy t<Wolhb.
ForeColor II szövegmez6bc in sZÖ\'et! 5zinét ha~rozz:o m..g.

Ilo:aunk Ikre egy új ASPXIo"T wcboldalt Pret t yTextBox . aspx n[·"e". amelyhez
néh~ny 51.övcgmcz6( fogunk adm. hogy m"gvizsgiljuk a kQlönbllzl'l o:5Z1étikaltul:1f-
dom;ágok hatás:iL Az ASP,NET oldalhoz tehát a létrehozá5<l ltdn adjunk két TextBo:o:
\'ezcrtót II tcr...... ZÓben II Toolbox palcnárol.

Ezt k(h,et6en ~llítsuk be II két sZÖ\-..gmez6 néhán)' esztéükai lul.ljclons:íg11 EI&ZÖr


adjuk O\Cg az első mel05 BackColor mbtdons:lg:ll. Emlékezhetünk li, hogy amikor
SZÍnmlajdons;igOl választunk, ~ Visual \X'c b Oeveloper h~rom lapol jelenít mcg'
a CUstom, 'IJ.~d) és Syslt.'m lapokal, Kaltintsunk 3 \\'eb Ril,,'," k :1!1ilSuk a BackColor
lUlajdon~gOl Li n .. n-re, Ez utin \'~Ia\Szuk a BorderColor tulajdons:ígOl, kaumtsunk
isnk:1 a Web fülre, 6; dlaS$ZUk a ~rc,m szím, A BorderStyl" tubjdon$ág értéke
legyen oa .. hed, a Bord"rwicRh trttkeként pedig adjunk mcg 5px-et.,

A m.1sodik TexlHox \ezérl6 eset&.,n :1l1í\.<;uk a Font tubjdons.1g Bold Ifsz!uLajdon:;ág:l!


Tn"Hll, a Nil"'" resnulajdotwgOl COInlc Sans Ms-re, a ;ü .. réslllll~jdon."'got p<.'(hg
La~;.,..rJ, A FortIColor tulajdonsig esetl-ben v:íla....;zuk a Web lapot, és ,'ilass.:uk

a vörös szím (Red).

A 10.11, 1bdn láthaljuk, hogyan fest ~ Visual \\"cb Developer képerny6jc, miu~n bd]-
HIOIIuk 3 fenti lulajdon:;ágokal, (A fekete-fehér jlxán sajn06 egyes súnkülönl;>';égek
"alfuzím11cg nem lilSUnJk túl jól,)
""~'
"'... ·~W
- _-
....." .. ..........""
~ "'~.~

.. 4 - "
'.'~" """

-
--~

. -... _._ ..
.----_. __ ...
~

10.11. jtn
Mi"dllt<l $%ÓO .~""""",,*
._. ...... • !>!i' bMllilOll"lI .u'htl"l' <=1<'Iillal
lalaj</otlsdg;lt

MOS! s:clnjunk r.I egy pcrcet. és n~zzOk mcg a Pr"~ ty'l'extBox. ""P>< ASP.~ oldalt
a böngész6nkbcn is. Il:! n oldal betöh6dölI, Íf]unk valamilren s~'egt.'t a m5sodik
szö'-egmez6bc, és figyeljűk meg, hogy 3Z nagy vörös eomjc Sans MS bellJkkel jdt:nik
meg. A 10,12. :\brin bthatJuk, hogyan fest II pretty"l'ex tllox ,.,spx oldll az Interrn.1
li.xplorerbcn.

ID.IZ. ' "


li /'ffltyT"'TlJox,aspx okkll
egy frjktt b(j"f1és~' m<'g/ckuru't'

Sajnos a TextBox \'ezér16 eszt~tika; tula~g3 i csak a fejlett böng(;szókben ." ._'íln>é-
nyeznek l:ltll:l\6 hamst, ''<!gyis ha 3 Pret tyT"xt llox . .,sp x oldalt egy régi böngész6bcn
tekintjük meg. csak két egy$Z"nl $ZÖ\-egnJeZ6 felcnik meg. ahogy II 10.13. ;\brin b
láthatjuk.

10.13. tibni
ti I-'rctlyTerr/Jox,aspx oldal
a Netscape 4.0-ba"
Összefoglalás I
Ebben a leck8>en 3 felll35ZrciJói adatok gyűjtbére na'iVL1bto:; web<::!; ve~ közül
az eroik leggyakr~bban hasz;nált veZérlőI mutattuk be: a Tex\Box veztrl6l. A T~Box
"e~biőve11úromféle növegmeztic hoz/utunk Iéire: egysoros és löbbsoro1l szövegmez61.
íHt.'Ivc jelsz6rnez6f. A Ieképezend(5 szövegmewtípusát a T""tMOde ml~ido~l!g::il
hallirozhatjuk meg.

A 'l'exUlode tulajdoos;'igon kivűl a TC"xlBox vezér16nek sz:\mos m15 tulajdonsága is


van. A Column. !Ulajdons:'ig pél<Uul aZI adp meg, hogy ~ szÖvegme7-6 mil)'en $Zéles
legyen. a MaxLength lulajdoru.ig pedig:l me~ beírható k3raln~ stim:\t. A Label
",,2.&I6höz hasonJ6:m a Tt'X!Box wzérl6nck is v::I.nnak olyan esztétikai tulajdonságai,
mim a aaekColor, a forecolor ..... gy a Font.

11 TextBox \'czMőn kívilltöbb m~sw.:.-bes ve7.érl6 iS Iéte~k. amelyekke! adatokat


gyűjthetünk ~ feUl:tSzrd16kI61- ezekke! isn~rkedünk meg a kövelkezó 6clblln.

Kérdm-felelek
K: F&.J' oIJWII ~"8"I('z6t u('rewéb létrehozni, (Imelyafi!lll&Zllá1ólmak
csak <'8.)' Ql/Q(llfpllSli /x>metWtef e''8<,<Ié/yez. péld/ml csak számok bl.'irú$A1
Hog;~m t'U/ósrllj(~IÓ Illeg ez?
V: Az cl6z6lttke 1es!IÖfnCgindcx·kiwmíló pékU~ban a felhasznil6nak a magas-
~~l és a lest:súly;jt kelletI megadnia, amelyek nyilv:invalOOn ~:cl!IlSZen1 ad1tok
kdl1egyenek. Láthattuk. hogy tu a felhasznM6 Icst5úlykénl nl írp be. hogy
r.-ed, a program nem tud mil kezdeni '·cle.
A fentiek f('J1~'ében felltl(,'Tillhel. hogy az idcllis megoldis nyildn az, hogy
<:gy oIy:m szövegmezl'il hozunk !.:'tk, ~n;dybe a felhaszn.1l6k kiztírólas sz:1mobl
lrtwlnak be. NL ilyen. maszfloll s::t1ulgmeronL'lil hkott mez6kel azonoon csak
a lcgrilldbb C!lefben haszrdl~k a w..uoldabkon, és ennek több ok:! i1; van.
ElŐSZÖr is, egy maszkoh szövegmez6ben ugyan nem írha1luk be tCSlSúlykml,
hogy Fred, de nt semmi nem akadilyo:a.a meg, llOg}' S<'1rImil!>e ÍJlunk a mcz6be,
rn:Irpedig a lesst:Öfneglflde"CI klSZámÍlÓ program em.' sincs felkészOlve_
M~sods:ror, a maszkol! szövegme:<6\( létrehozá~ trükkös ug}félokb!iJav:lScript.
kódol: ,st'nyel. így azok a felhasználók. akik lClihonik aJavaScript. használatit
a oongész6jükben, nem lesznek képesek belml semmilyen Mékel a ma.szkolt
5Zö\'egmez6kbe.
Végül, és !;d~n eJ; a legfom<»>bb." fdhaszn!i16k nincsenek hozruzo"'-'lI
" maszkolt szövegrncz6khöz II weboldalakon. Egy ily... n meZŐ\-el taliílko1;V3
val6színtIleg csak bosszankodnán~k, és arn" kÖ''CIkeztetésre jutnának. hogy
webhelyfink :/obpvet6en killönbözik n ~ltaluk mcgszokou webhelyekt61.
Ahog)' a 12, I«kax-n ~m, f<lgJuk, "8P".enlen biZlosWllIlJuk hogy 3 SZÖ\'~
z6kbe in :U!:l\ok fQrm.:ilum:I megfdcl61e~-en. ~pedig ~Z dlto6rro wd.l"S
,'"zén6k segil..tgevd, ameirekel 111.. ,<1 mzk't<.'lIe1l b<.'1llul:Ullnk
(M"g",S)'lCndó "ISlOI11, hogy léleznek m;uzkoh l>emcn<.'1i '·cr.l!n6k az ASI' NET-
hez, ~mcJyek ..'t n,,-"S"bJrolhalullk E~ekl1('k II kll(s6 (ejles7.l6tl "ez~l6knck az
az el6nyc, hog)' JC\,t'sz.,k a v:jllunkr61 az (jgyféloldlli J3,-~Scnpt kOd clkl:sl;,lo!'-
senek lerMI I'.gy 1I)'eTl ,'eúrl6l"u,g ~Z e~ ,"z adou ASPSET okblra húzni,
u~'llnulD', alJOtlY egy na"',,")'os T"XlBo~ \~zk\C'S ~ébcn l<'r'Inoénk A SZt'rZI():
~kal kiproNlI & múlU'xiók"'pe.nck ulll! maszkok bemencti ,-,,~ CI~lh:n6k
~ul"hltp,fl_.""terbl .... , ... umen.)
K: .1''''''' .",,.. n","'~iII1" .1faxl.ctW" luh'.J;l<msIJg a ~ Th.\18cu' l'l"%hflilz
~HJ.."'.>
v: A Sing-leLi.n.. k n PlIUWOrd TCXlSox ,..,zérl6kb6lleképt'zbkor <Input> J-ITMl-
elemek iőru",k 111re, míg a Mult ILIn .. TextBo" \""Zérl6I<bŐI <te"urell> elemek.
A J-ITIoIL 52:1""Jn)' CSlk a2 < inpUt> dein l:lIctébm h:lIln:>a:l meg ~ _"length
jdIemz6t. '" <c .."t.r"",> ricm ~eben rw:m E hón)~ "I~" 'öI,bsoro.o;
SlÖ\cgllltl:ólche" ill korliIol:haló a bnrhal6 kaT:lkterdt 5lJ1lliI. t'g). kcn.i16 mqp-
d:1Mal nu l!> ~nk a ll. leckeh"....

Ismét16 kérdéseit
l. MIIren j!-nckd lehelnek a T~I&>" wd>b "ezM6 'fextMOd.. lulaJ<,lons:lg!inak?
2, Ha eg}' 40 OI>rJopo.s k 5 ~ löbbI.oros l!.ZÖ\--egmez6t szerctnl!nk Il:trehozni.
a TexJ.Box ,·tW!6nek meI)' lubjdonDg;1.I1 keU beillit:munk?
J. ,.A Uö\'..,gmt!Ók t$Zlé!ikai IriJlills;;u minden ...-dJh!In~I nonos haLiSl
credrnm)'CZt1Ck - Igaz ''3~' hamIS'
4. A TextBo" 'euM melyik rubtdons;ig;a ClruJmaUII 3 fdh2Wd16llClI be-in
5ZÖ\egt.'t'
5. Az eli5z6 úr.lk sor!in megilllllen ",ebes \'ezérli5k köruJ mo:l)'ik llCk '~'n""k
hasonl6 IlIt, ~lons.'\S"-i. milli ~ Texl!klx \'t'~M6nek~
6. fu egy TUIHox \'el:k\c'S TextKcde rul3idonság:\!l3k 3 Pfr.JlBI''';mi t'n~eI adjuk.
hci\xl ~lIitJUk be a Text rub~l. a 5lO\~ llCITl J('Ietuk nq uo.'eg.
amikor "10' "~'bhöngéz6ben lcluntJÜk mqc n oldalt. M"-:'It?

1. ATeXl iIox ...elJö "ez"rl6'1'<1xtMode lul~tdonság:l h~rom Idll.'\.'iége!i j!-n~kCl


[jmog;al; MU l ti LJ n .. , Password és Sing ler.J n". Al. a la jX'ncJn"'U'1I lul:ljdons:\g-
élték a ."",teLill'
2. Ilyen !oZÖ\'cgmez6( úgy hozh:>lunk Idre. ha 3 Text8ax \-uér\(5 TextMode l ubt-
~I HultiLln ... ra. a Col ....... lubpdűndgil 4{'-Te, a lIow~ lub;donslg:íl
pedig :.-re ;illilJlLk
10. 6!a • AdItgY(ljtÚ ~ 1235
3. H~mjs. Az ASP.N"-·T ",dKOS \'ezérl6i m.1sképp képeződnek le ~ fejJen 6; a fej·
letlen böng<'s:l6kben. A fej1l11l"Tl böngész6k nem képesek a T,,;<\BQ;< vezérl6
egy"" esZléiik:li lulajdons:lg.lin.1k ",egjelenítbére.
•. A or.,x t lulajdonsig.
5. A l:Ibel vez(,r!6 rendelkezik h~sonl6 tulajdons:lgokbl, ""m a TeXlBox vezérl6.
Mindkettooek "'ln példjul Text 1U13jdon~g:a és ID tuLajdons;iga. ,Iletve ugyana·
zokkal az esZ1!:1ilc:Jltulajdons:lgokkal bírnak. Ahogy ~ könY" h:'itr:lk... ő r6;z"ben
~tni fogjuk, egy"" a lap!UlajdonS<igokat \':oI6jáb:m ",hu/et! wcl>t:s vez"rll!
tartalmaz.
6. A je!sz6onezl5k ~(,bo.'1"! rl<.'Ill ~llith:l!Juk be pn:>gr:Imból a Text tulajdonsigot. és
a tulajdonsig értéke Vi$SZ3C5:llolhJ<or nem il> marad lllC.og, men ez biztons;jgi
koclcl ..... 10l. jdL"Tllef\e, hiszen egy l'OSS7~ndula(Ú fdll:ll<Zllá16:o lll.lllgésző ~1 1111c:Jpou
H1"ll fCl<Tis megtclcim~el hozz:ljulhatn3 egy mh,k felhaszn:lló ielsL1v:1hoz.

Gyakorlatok
l. Els/! ~';Ikorl~H'nklxlll egy olyan ASP.NIT wcbold:lh fogunk kélzítenl. amely k('(
egész dm mcg;u:lh~", kéri a felh:w:nálót. majd kidmítj:l a két sZám legna-
gyobb közös osn6jál. ( Két egész _úrn - II és b -legnagyobb kö:cös om6ja-
sroldSQs jelöl~l \jcd (to, bl - az a legnagyobb w\m. an-.ellyel mind az ••
mind a b maradék nélkül =h'1I6. A \jM(H, 211 példjul a 7·td ~'8Yent<nH(1.)
Mh'el a fclhaswlÓflak k('( eg6l: SZámol kell megadnia. k!:l TextBox ,'ezérll5re
lesz szQks(>günk. Állíl5Uk az első s.zövegme1.6 ID tulajdoruj.gál e ·",. a másodiké!
po:d'g bon.>. Eg}" Buuon ts egy L1bel "ezM6re is szokst:gOnk lesz. Ez utóbbinak
~diuk a rIIBultB (eredmffiy) azonQ(';iIÓl.
Ahogy az el61.6 óra lesttörneg;ndex·kiszámíló példij~ban, tnO$I is Iéire kell
hoznunk egy eselllényk"zel6t ~ lluIIOfI vezérlI! CIkk eseményéh"z, ~lItelyben
kidmíljuk aZ a és b s.zö'·egmez6kbc bern számok legnagyobb közös Q(';.lt~1
K(,( egész wm It:grogyobb közös OSZl6jál gyorsan kisZámílhaljuk ~z euklidészi
~igQrilmus segí~gével. Ne agg6djunk, ha nem \':Igyunk liszL100n aZ emlíleu
algontrnus reszleteivc1; ~ szQks(>gCló forr:lsk6d a következ6:

'Az a <Ii. b <Mxl1lnilll6.t x·re, .. mlnllllUlllOt P<'dl; y-re ~ll!tjuk


If ... Text ~ b. Text then
II ~ b. Text
y • e.Text

~ _ O .'!'ellt
y • b.Text

~ "
'Az x/y .,.n<U!k;inak kiu!m1d ....
z.lellOdy
, <> ,
, ,
White

,•,~

~
, ,
WhU ..
-,
,,' - ,
Az euklidészi algoritmusr6l a h t t p, l/an .wi ki ped i a . o.-g/"iki / Eu cl i ·
dea,,-algo.-i t hm eimen tudhatunk m~lI többet,
2. Ha adon II és b mini kél egész szám.:. szokbosan 1""'111 . b) -veljclzell legki.>ebb
köJ;Ös tiibbsWrösük az a legkisebb egész Wm. amely nund II, mind b több-
szöröse. It. 6 és 4 legkisd.>b közös többszöröse például ~ 12 ( 2-szer 6 és >SZor 4).
G~kortalunkhoz hozzunk létre egy ASP./I<TI w<,!>oldal!, amely két egész énékct
VM a fclhaszn:l.1Ól6l, és kiszjmítja awk kogkisebb közös lilbl.>szörösé!
SzerellCSére kél szim Icgkis<.-bb közös többszörösl:nek kisz;lmitása megleht.'t6..en
egyl>Zert!. miut~n kisúmitOlluk 3 két s:dr.m legnagyobb közös osztóját
gcdla. . b)

Ehhez a gpkorlathoz tehit egy GeDI) ne...U fiigg ...ényt kell írnunk. amelynek
bemenete két egész mm , é. egy egész éné ket ad ,-issza. It. legnagyohb közös
osztÓ( kisziimÍló kódot 1Jcm.1solhllljuk ~z el6z6 gyakorlaib61 ,
Ahogy az elölŐ gy:>korbtban. rnos! ls két Text Box. egy Bunon és egy l..abei
"ezM6re 1<:51. szOk5tgilnk. It. felhas ...miló :lhal megadou két egész,Wim
leg.kisd>b közös többszörösét a 8ullOO ...ezéri6 CIick cscménykezel6jébcn
kell klSZ.ámil:lnunk a GeDi I fi:Jggvény segll"'!gh·el.
11. ÓRA

Adatgyűjtéslenyíló listákkal,
választógombokkal és
jelölőnégyzetekkel

II lC{;ke ulr1a{mlfból.

• I<k"~h~
hclyzetek. amdyekbe-n nem T.,Xlllox. hanem nds I./ebe!; '"eznk1t
érdnne!. ha!oZrdlru
• DropDownWt \"el.érl6k I~ egy ASP.:"U ... eboIdlJhoz
• Lcnyl16ll$t;ib~n kiJelöIl ~r1,;k és swn-g ekorfse progr~mból
• A RadioSunon vezér\ó haunilJla
• ÓUzeI<Inozó v:1I;w;t6gombok C5OpOrt<l<'iitJsa
• A ChcckBox h:üvú.l;ua
\'ezérl6
• ~g)"ld :i.llapollruk meg;illapíta>;.l progNmból
Az cl6z6 ócllun (jnuk, hogyan gyl1jthetiink a fdll:lS2JÚlóluól ad:uol<at TexlBo:o:: vczéMk
segítsi'g{'Vel. A szövcgmez6k nonoon bizony<:>! típu,;u adatok be... itelm nem" leg.,Ik::d-
masabbak. Tegyfik fcl pékUul, hogy egy ol~"Jn w~'bokl1I\ sz.:ft.' \,lénk készíten;, amel)"""
a felh.:lsznilón.,k eldöntffid6 (igen/nem) kl:fdl:st>kr" kell \':\I;\.<;].oIn;.:I Nyilváfl\dl6, hogy
aZ "18=" b "Nem" v:\.lasrok bevitl.'Jére ni1lC"S é-ndme szö...·gmcz6l,;eI l)inQl;itani.

A felhasznil6i adatok fogadására sz..-renQéremáJ! ",ebes ",'zl'1"1& is l(:teznek iI)"en


például a DropDovmlisl. a Radicllutton '""g)'" Check Box. Eblx-n a k'ck(:ben ezekkel
a "ezéri6kkcl fogunk megismerkedni.

A bevihető adatok osztályozása


Eddig Cg)'ctlcn WdlCS vezerl61 L~nw:rtünk meg, amclyt'l"l kelQnül adatokat gyújthetunk
a fclhaszn.116klól, a R'XtBox vezéri6t, Ahogy.:l könyv eddigi példáiból kitk.-riill. a T~t­
Box \"ezérl6 egy szövegmez6. amelybe ,'W\'egel írhatunk A 4. fejezetben például egy
hitelblkulátort készítettilnk. amelynek nn!ködésehez ~ felha~7.n:il6nak mL'g kelletI
adnia a jel:clloghitel Ö:SS.legét. ful:lmidcjl:t 6; kJ.lTI:ltl~WI. hogy az oldal kl.SZ.ám,tl,assa
a havi lörles:a6részletet,,. 9. f~"jezetbt.'n pedig egy testlömeginde:>:-k,~nút6 oldali
mutaltunk be, amel)'nek szövegmez6ibe a magass:1go1l-s II testsul}, kclku beirru Ezek
mellet! aJ; el6z6 ór.l példáioon is ~h.any szö... egmcz6t haszn:ill\lnk fel.

felal1S2rul:!6i adatokat azonban nem CSlk szö...egmez6k segíu;(,g" ....,1 II)'lljthetilnk. Il!ben
3Z 6r(ioon látni rogjuk, hogy mi'; beviteli veZérlók is ll>!c.mo::k, pl:ldául3 DropOownLisl,
a a](~ddJox I"~gy a Radiofiunon. A DropDownlisl vezérl6vel Ien}il6 ti>ta kbzitlleló,
amel)'nek elemei körul a feltuszn.~16 ~'g)et v:\.1>511h:II, a ChcckBox \'ezétiÓ'.d telöl60~gy­
Zet. amelynek bejelöl6b'el '-dg)' a I>ertne lev(! ",l törlék;cl igen. flCItl típusú vál:m: ad.
h:ll6, "- RadioRutton ve~ pedig egr be)elölhetó ,':\b.w6gomlXll hoz létre. Ez UI6bb;t
~ltaJában CiOpOrtb:In ha.'lm11j:ík , amelynek egyszerre ~k az egyik tagja jelőlhel6 be.

Most, hogy tudjuk, hogy a felhas:zniJói adatok 8)iIjl6ére többf~le velkrl6 is rendelke-
zé'sre áll. bizonyára kív~ncsiak V'~gy'-mk, hogy nukor trdenlC('; a TelrlBoxot, k mikor
a többi \"ezérl6t h~$l.n~lni. l'ffis, a11, hogy melyik welJö vezérl6re van szük,;,tgiink,
" bevin információ jellege ltat~rmz:l meg

A felhaszn:l.l6k 11l:l1 bevihet6 adatok különféle lípusokba 5OfOlhatók, Al: alábbi 05ztá-
lyo:cls an ,..,szi alapul, hogya \':In adallTK'nnyire szűk t:mom.1n)'ból ,';\bsnh;1!6 kL
A Icgszakebb csoprnttól haladunk a legtagabb feJé:

l. 1genmem Wilasz.
2. A lehet65égek véges hSl~j~b61 kiv!ilasztott elem.
J. Ált.:rJ:1OO1i szöveges bemenet.
AZ el-.6 C:'iOPOIt ('$;'téOen C$lk k~, v;lbsV'sij leht''1<'.iségiink V"~n III egy In!~-metcs k&d6i-
\-en pékbuJ J nm1Ünk~'I. ki-ro..?Jk, csak a f('Tfi t'5 a N6 ~k könil \':Íu~harunk.
Enn(:] I.. Lurul'd l:i.gilib a~, h.. U okblon '"8)' kObóI ";lbszd,,,!unk. Pad:iul
lu az Eg)-esol! Albmo/<b;ln t/ünk. <':s qo' arbpon a ctmünket kell bdmunk. u .. Ibm
:ih:Al:itxm egy ayen ~50 dc'ml. !cldl '<~1fes) lJ:i!áb61 ,'~L>.:>o:tII:I!JUk kl. Ehhez hasonl6
11e\'';';
bevi!eli Ie/ld66i-'gek ~Url:lk rt,ndelkezésre akkor is. amikor C1IY e-ken::skedclnu webhel)',,"
kézbe:si!é5I,nódoI l-:ílas7.tunk. A f/;."nl; h:1tom csoport kölíIl a ~~ xbtok~ a Iq;íl-
ulánosabb. Ilyen tír-:r bellKnero:'\:adunk meg p&láuJ illor. anukor qo. tlrbpon lxiquk
a ne\"iInke! '"gy a cimünkct. "ag}' egy mto:mo::IOi rlzen6bh'~ Ulelk'let iru~

A megte1e16 webes vezér16 kiVéI_


Amikor acbtob! ~nk a fellw;zn;iJókt6l. el kdl dón!,,"Onk. hogy mil}-en webes
I'C2i:rlöket használJUnk. Pd<UuJ ha a felll:ASZl1:ilók ncml're '''gy,.mk kív:íncs.ak,
n olddon clhel}'ezIldflnk ak:!r egy TexllIox \'t.'z6'I6t is. amdybe a fL'lh!l5ZnJló beitha.t""
hogy "6 ";tg)' I'Ml. de ez no.'Tl\ igazin dlr:lI'ezet6. men bdr.bkor soklGIJ kÖrlnyebb hUllIl
\'ro..'Ili. ~ biztos?hb nlÖlbzer. ha~· lenyiló!$at leszílnk az okbJn. amely Ire!.
~ - FMi. és ~ - kirLiJ fel

Az '&ellInem hpusú k~k nIC8":'ilaSl.Ol:iSJhol, a jelölOOégylf."Iek a legalkalmasabtxlk


sok ........wICly pél~ul mc/{kÖl<:ldi. hogy egyes oldalak cll~hez frókkaf ~lkez­
tílnk, a fIÓk létreho;>jsakor ~ig jelk'l1tXl5en oI)"n k~kre is kelJ v~Jaswlnunk.
mll'lt a ..Szm:'lnc-c' hirk'VCk."1 k:apni a ...'dlhd)' ~pir6P". I"gy hogy .It<lonOőln
QerZetI tUdOnWt a webllel)ilnkrol?", Az cl&bt e5e1ebm áluJaban klJdnt16km
fogaJm;I.U:lk meg:l monda!O! \.&tesil'oenek ~z iJjdons;i.goktól·). b egy 1'!1i)~'Zet
lx'" VJgy k,ka~l:lSiv;ll v;\laS1.lI1;lIUnk, ~~ Ulóbbm.il po.-dtg "",m llOMZ:Is f(-'~<.'ge!6I
swkuk k&ni. hanem Ien)iló k..wból ,'lb!iZ!V"~ v;lgy \'~la'-'7!óR<.,mbok segil-';l-gt.'Id
adluljuk meg a dlaszl

Amikor • felles2n6l6t I"a kéfpjk. ho9v vias_lD" • 1ehetHg.s vii"; kozül.


illalában le!!yíló ~st't vlg-'f vátesztógombokat alkalmazunk, de ha a lehet6úllllk
SZ6mI nagy.• vállISlt6g0mbok UsWt k6nyelmetIenrM vitlat. és túl sok ~kes
helytt /ouWIi1el • k6p.myÓII. ~ ~... ho9v .... otn6ltóbb
VMaSMSi ~ twu. lel. lInYI6 istil UlI h I1jW.... miQ .....
kwtstbb ",_MIl ~"1InyI6 atM II~.

Sl.ÖVeges adatok (nb-. leveleIk; dm stb.) nICg~di'!!ihoz sWI'egmez6ket kell bi7.!osíl~·


nunk. A 1ffi)'CS az.. hogj' 3 hc".Jld15 ",dunknak \öbb Iiltul'l k'I.CZlk, amel)'Cklln .rns-nds
",elles veztrl6lr: II IegaJkalrll'l$olbbak. Ed unsuk &:zben, anukor II fejezetbc:n II 1en)'\16
kOkkal. lI'~g~'zetekkel és ~':ibszt6gombokbl OO!erkedilnk.

A felhasl.O~l6k :illal megadft:ll6 a<blok tlpusail l-s 3 nekik I",gink:tbb megfelelő wel.)C!;
vezérl6ket a II 1 ltibl:iz:uoon foglaltuk ÖIlI;U'
~.,,&két RadioBuuon
Egy elem " lehe'l- A telh35w:>J6nak "lehet6- DropDownList vagy
Ii5Cijlb6! RadioHlluon vezl'fl6k C5OpOrt~1

,
szöveges aoolot bevihet.

A DropDownUst vezérl6
F.g}""; esetekben a feU.asználó csak egyetlen ck."Itlt'I dJaSZlhat ,,1e~e5 dJaszok
köT.Ü!. Tegyilk fel pNd.1u!. hogy egy szofiwrrég lennfkCirnogawi wcbhdyl-nck egytk
oIdllln" felluszn:lJók a leggyakrabban felt(~1 kérdésekre k<.'resh<.1nck vá~t.
Ahhoz, hogy a felll:l.Wláló megtal:IJ;' a kere;en ,nforrn:lci6c. a kllksszawk m<.'íp,lbinak
lehet:őségéfl kivül nagy st.'gÍts(,geI jelenthet. ha egy 11Sl:1b61 kivil:lSZll.atja UI a nonverter-
méket, amelyikre" k~ vonatkozik.

Jlyen esetben a legmcgfelcl6bb ...ebe; \'ezér16 a OropDownlJst. amely egy lenynóllSÚl


hoz létre, A fdhaszniló a list;'oon S«rep16 elemek közül vál",,;>;that egyel. A ll, l. :\brin
egy példll I~th~lunk arrJ , hogran fest egy Icnyfló lista egy HTML wcboldakm.

11.1 .ibnt
.1 k,,)i1Q JlsMkbi'" "foJMnnAJó " ~ váJaswIt J«b::aJ toóJautllf' / '1IJ~1

Elem.. homadása a lenyf16 listához


A DropDoWnLisl webe:s \'ezér16 hasZlÚlaukor meg kdl "dnunk :l lenyfló 1ist.1 f!lemcil.
A lisI~elemck azok" v:íla-'1ÚSi IdlC'l&;tgek, amd}'ek köz(ll a felh"$7mló választhat
A lenyíló Jisdk elemeit kétféleképpen adhaljUk meg. Az els6 m&1$7-CI. amelyet ebbc'fl
a leckében bemu!:llunk, alist:oelemek bcgépelé:se egym:ís után. Ez a megkö:relités akkor
mUk&l6k~ , ha <:16«: tudjuk, milren v:í1aS2;t:lsi 1ehet&égt::ket kin:ilIutun k fda felhasz-
nálónak. PéldluIlu egy 1enyíJ61l<;tiban teWlk elértlC'lÓ"é lIZ Eg)'csiJ lt Államok 50 ~II,,­
nÚt. ez 3 m6dSZCT mcgfelel6.
11.

Teg)'Ük fcl azonban. hogy II Imylló IlSllllxrn """"""lftutelt ,'Jb9!:I<i Iehet&égck ,""b-
mdYef\ kiI~ infolTlIáoo61 filggnck Egy ddruuni~ \);;ankl wrohcly I~ktillllcllct&.·o!
teheti a rclhasmi/6kn3k. hogy c8)'nél [öbb ft6kk.a1 rendelkezzenek, b terrn<::sttte!Cn
cl6forduU\:iI, hogy al. egyIk felhasWl6nak <:S:I.k egy mC!;Iakarilási bet&;z1jml~ja v~n,
míg "8)' másiknak JekÖlÖ!l bet~1d. \,jll~lk07.6i .sdrnl;"j:l k ~ko5dgi ~mlJp ls.
Amikor a rdl~16 bqclcntkez,k a ...-ebhclyre. ki kcll \-:I~. melyik sz:Imláj;ihOl
bpc5010d6:m kMn igc.>nybe \'Ctl/Ú rg)' szoIiP1t:u:15t (fdlhe, ho!n' wbbd Í'l rendelkellk),
A Ichel~ket egy Imyi1ó [i'jl;Ib;;an kin:illu1jUk fd. de ennek elemei ~ :Ulc'.oI
IUggoek m:l.td. hogy az adcxt m:mdy milyen SLimUlal 0)1100 J b:mknál. TdUI J.l~~­
~)d( egy küls6 i1ÚOI1l1óici6t6I függnek.

Az ilyen helyzetek ke~lé:séhel a I~""demeket (:g)' adalW,l-1Sl>an timlhal(uk; ekkor


II DropDownllsl "cz&l6 haszn.1L:uakor ;eleznOnk kell. hogy a Ibl1ban nleSielcnitelld6
eletnek CI!Y ad,nbhisb6l5zlrmll1.n.ak. A listaclffllek l'rle8acUsJnak ezt 3 módj:ll
a n, feJezetben úrg)-~ljuk ~oc:bbom..

Lenyll61ista twzaádása egy ASP,N E l _


A Drop[)o(YQmÜSl \'NérIt'l luswbtinak 'ttfllJéltcle!lére hozzunk nlOSl IWc egy Ilj
ASI'NI:.' ol<blt DropDOwnL18t ./aSP" néven. A "'clx,,s \lr1~p részbe írjuk be a What i .
your favari t . ic .. nearn !1 .. von (Melyik fagyi\ kedveli ~ legjobb-dn/J ~eget, k
a Toolbox pólk'túr6t hliz:tunk UfJn:l egy DropDownUst ,'curl6t.

ogyetjíd; rt hGgY ,.. ~ 6ssze • 0r0pD0wnlis1 WtbIS VeZérIŐt • ListSo~


VMri6VeI. A 0r0p00wnLis1 esik egfdllo.. -'-n ~ 1Il~,!Tiv
Ilist8o~ ldl vagy tobb lOhe:tÓSégRt is enwed. tA lJItSox 't'eZ6rICmI nem ~
lIIlOll.ri ebben. k&lyYbefI.)

•• -_ ... _-,---- ...

_._.
11.2. Mn
..u rMdOI tRl' Dropi)ofl"nLisl b flO' nu_ .<edrIó /OO,..4a<LtU< "ld .. " ~~
KŐl'etk..-,zó lépésk&lt hdyc7.wnk egy Button .'eu;rl6t a Icnyíló lista aK A szö... eg
beirls:!. ts a DropDownLiSl. illetve a Sutton vezbl6 honiadha urln aZ oldalnak
ügy kell kinéznle. mim" 11.2.:fucln l.1thalÓflak.

II lcnyll61islának ekkor ~g hünyou>ak az eleme;, Ha tehát az ASP.NET ,,'eboklalt


most tekimjOk meg egy böng6~, a leny!l6Ii!lta ml:g üres lebl (1~sd ~ 11,3, ~tmt).

!Jo ... _ , _ _ ....

"J .,) ~, :;'. ~ ~ - '-e


-- w " _ -'I
j.::r - ......- w
11.3. an
A "",),-16/151(1 "'~ ll ...... whdl
"jdluuz"áAA,ak nlna ,<lIasz/tJsi
,""-
A DropDownUSI ve2&16 It ....... tubjdom;iga t:lJtalma7.Z;I awkat a li5taelerneket, amelyek
~ lenyíl61~ban meg;elermek , tehát ahhoz, hogy ~ 1!SÚt demckkel töl!.S\lk fd, el:!
a lulajdom;igot kcU szerkesztenünk. EIŐSZÖf kanintsunk a DropDownlisl veu;rt6re. hogy
a lula~gail betöltsük a PropertIeS ablakba, majd görgessilnk az I t ...... tulajdonsig-
hoz. A 1l11a~g énl'ke alap1llapü(oon ICollec t ion), vagyis ..gyifjtemeny". lia erre
>12 o!n~kre kattintunk. tőle jobbra egy gomb tllnik eló, ~mclynck f~t:I három pont
(I~sda 1l,4..1bdt) .

• ,_ .. .......... -
-......
"U•
-- •
,

--"-

... -.....
~ • ,.o, 11.4. an
- M

_~,-~
O· tU' /lenu '"lnjdo,OOgro
.wlll."nl "8)' Irárom fJO"lOl
u"',,/m<lz(} somb ,,,,,ik dIJ

KlIttintsunk erre a gornbr.l, és megjelenik a Usthem Collection Editor párbeszédablak


(Ustadem·g}/lljteml'nyszerkeszt6.l, amelyben elemek(."{ adillItunk egy lenyíl6 listáooz,
vlIgy elemeket távolíthatunk el onnan.

Mivel a felh~sm~lókn:tk a kedv..-,oc fagylllltjukat kell megadniuk a weboldalon, a listára


fagyl3Jtízesít~ket fogunk r"kenn; e1cmekkl'nt, Új elemet ügy adhatunk a list~hoz , ha
az Add (HOZzáadás) gOl11br~ bttintunk. Miut1n a gombr-~ kattintottunk, a Listltem
11 . 6rt • "."l1i". lanYI6 5stM:,"1. ;" ""'libc*bI 61 j !c " ""'alIIr:UI I243
CoIIec;"on Editor p;lrbesúdabbk bóll oldali me~ mqpclemk egy új elem, a jobb
oldalon pedig ann;l.k tul~jdons.i8"i Ahogy II 11.6. ~br:ln 11Ih'l1juk,;I. lisudemeknek
n<'gy lubjdon~guk van. az Enilbled, a Selectoed. a :r.xto és II Villue.

- ·• ,- .~~

11.5, jin
r L I- A ~-nLiSI " .. ~,~ 11J/aft6..
co: II c.- MI a Lhtf_ 0>II«tí0n &Mar
pd,t-:d<IaDlalbm t>dhotjull ""3

-
• • --
.-- -
li<

-- -
... II ...... ] 11 .6. jin
cll" ll __ '\/u,"m .frI'l'/lIlnll qu. ,jJ{1>1uc/C"'''',
'""'fI<tdluJIjrUt '",'''''' n,/aJtlo~1I

AJ. zn.,.bled tuJajdonsig logikai trttkkd renddkezik (Tn,.o "-'gy Falae). é: nl ad",
meg, hogy az adou Ii5taclem meg,elenik--e a Iek~~ lenyRó IlStiban. Vagyis"" \-an
t'g)' Mrom eleoW!1 - ptltUul \"milb (v:uúli;l.), Otocoble (aokol~) é: Strawt~ny
(eper) - uruJnuzó DropOo~,"Uo;( ''el.trl6nk, é: az egyIk dem (például a Choooble)
Enabled mJafClons-igo\l 'ahe-r:I ~Ililiuk , a fdh,uZIclL6 bOngé$z6jében ~ k kl"!. elem
(V~nllla és Sltawberry) roy m.:gjelenni

A mhodlk 1Ut:.~gn:lk _ SelectOld - szml&! logikai tn<'kec adhatunk. Ez a 1Ut:.1-


donsig lut'iroZZól meg. hogy ab~J1apo!""n nlel)',k 1i)Ue1en, ~J k;\'l]:..srtv;;I,
anukor azolda! belOIl6d,k. MJ\... I a 1en)i16lisúkru.k $Ok-ri elemük lehet. b ezek
Z44 I IL re . Fthszn86i ldMOt ~ " fIIdc'9 'Z'"

közül egysze,.,-e csak egyet Litunk. meg kell adnunk. melyik leg)'en az első, ami megje-
lenik n okhlllelöl!6;.ekor. A Vanma, Chocobte b StrJwberry elemeket t'''talmam
1.myíI6Ii.stánkk~1 fels:terelt ASP "lET oldal meglitogatásakor ~lapáll~poIlm\ a Vamlla
elemet (3z els6listat'lemet) llthalluk. Mi a hel)'"let azonban akkor, ha an ~zeretnénk.
hogy az alap1'rtelmezelt elem a SlrJwberry legyen? Az egyik rnegol<Us. ha egyszenlen
en tes.$Ziik aZ els6listaelenuné - a m:isik pedig al. Ita aZ élem Selected rulaidonsjglt
T~ue-ra Allítjuk

A Text b ~ V.o.lu," tulajdons;lgok karaktL'"rIlnc (,rtékűek. A Text tula~g adja meg


azt a .• zö,.·cgel. amrl a fclha'i7.n:116 a lenyíl6 lW;1ban 37. adon clemn<'II~L. P(,ldlnklYJn
n els6 h>laclern Text lulaJdons;1ga VaniUa , a m1isodiké Chocolale. a harmadik~ pedrg
Sltawberry. A Value tula;dons:!.g ezzel szemben nem Io'ithat6; oly:," inforndciók.aL
"dhalunk !it a óegítségé\'d, amelyeket nem szereln<'nk. ha a fdltasmál61átna

A Value t~t 6Ital6bto akkor llas.zrtálj06:., IllllÍror egy adatbálisból jelenitiink


meg Itstaelemeket. Ebben a leekében elZeI a tulajdrlnsjggallllHTl roglalkozunk r6zkl-
[esebben, csak a Text tulajdonság beállftáséra oSSlPOfltosfllri..

Most, hogy tisztában vagyunk a Iislat.'lemek h:lrom tulajdons;igával. iltít<uk al els6


dem Text lu13Jd<:>nsig1t vanilla·ra, majd vegyünk fd egy új;lbb el"m•."\. amctynek
TEcxt tubjdons:lga Chocolate lesz. '-égiil pedig egy harmadikat. amelynek a Text
tul3td<;>ns;lg:'i1 a Str~wberry értékre álJiljuk.

Afenti három ~$Iae1em value rulBJdonságát nem kell beálítoounk. Ha lHIII8lt


8 tulajdonságnak nem adrJnk értéket. a listltem Collection EditOf automatikusan
ugyanatT3 az értékra é/lítja, mint amit 8 Text tulajdonság tartalmaz.

A h~rom listaelem felvétele ut:\n a ÜSllLem Collection Editor abbUnak ugy kelJ kinéznie ,
mint amit a ! t.7 :íbrln Ioilunk

I!I --
~ III
I!I
---- ---
0-

... 1(,.....
'" II -=- I 11.7.6bra
" //$Idhoz Mmm e/emel adw,,1t
11. ft • AdItgYI'f!i! lInfI6 ......hl vfr I'gllllbokbil" j',,*II'~.''''.'' 1 245

Alistltem ~tIOII E~or lI:!Iatban a lista I mit. $OI'Tendjét is módosítMljIi.


EIhU cuIr.. kiv*"
Iista,la"n kel kanllll8lllri. bal oldali mezóben. marci '1*'
~dablak köztp6n tal6lhetó lelekl is lelleIé mutllló nyükkal megviltoztathatJ1,lk
annak a többi elemhez Ylszonyított 1leIyét.

11!0b6 Ifpbk&lt k:::uuot:;unk a Wihem CoIIt'ctiQn Ednor ~bbk OK gornbj:lr~


\1egf1g}"C"lhctruk, hogy ~ tCf\-cz6lX'!l a DropD".... nWi ,-ezérl6 úgy ~I, hog}'
k.i\;ilamoct clemJu:.'flt a VoU lll, elemel m~

....tu.ilk meg eddigi munkJnk eredményét. ts töllSilk be a IIropDo'o/nLlat .upx okbl!


~ böngé'l7.6nkbe «(j~ a 111I1br.it) Uth;;njuk , 1108)' a kocl.bb:m üre; li.st:ib.. n m()$t mJr
ITICglaWjuk a LisIltcm CollectJon E<.htorban fel"<->!I három fagylalÚaltll. (Az cJemck
hozzhdís.. el6ni kimenetet a 113_ ~br!.ill l~th;nlUk)

11.8."

.- ti ~'I'bOIdnJC" IIfo{Juw:trdló
NlfO#fl f.t IookrU ,dlantlwat

Ha betöltjiit. r>')<>wflL ot ""PI< .. abo.w;''' kiVMBSmd agy.!amet


!~ a Str....."V·t,I.1eny1ó istából, _.1fOITII:n uttJnM ..,-. . .
III ÚItIpOt, III ASP.NET OkIII viuUC$atolMt lI'IIit ti, " • Su.wberry elem kII'IÖ/YI
marad. Ebb6IlIithltluk. ho9v a DfopOownLJst ~ Yl$SllCutoláslor meg6rzi
aulemek ki,e!ö16iét, aUrcsak. Text8(!J\ vemr16. 'l'.xt tulajdonság énékit.

Ahhoz. hogy az ASPNET oldal valallUlyen művek>!." is n'grelujlson, amikor elkOldjllk


az O'rbpot, kódot kell írnunk az oldal forr:isk6d ~-hen En" kódot" Bunon \'ez&1<5
('I lek oc:ménykezel6jí-ben keU elhel)·ezniink.

Egyd6re legy(lnk csak ~nn)fll. hogy egy rövid mondllb;!n meg,elenÍl.jilk a felhawú.16
~It:AJ k;,;l/:1SZtOO l.iSUeIen $XÖ\-~ egy dmka>en, Adjunk hal eg)'labd n:~
a ;lropOownLl Bt . up" "'~'bokbll}()l~ az lD t\Llajdono;.1~d Jllitsuk resul t B·I"l!. b. töröljük
a Text tulajdons;\~!uk n crtékc!1,

SZ<injunk rli egy ki!; id6!:, ts ac.lfllk meg a többi \'ettrl6nk néldny ru12jdonsipt Í$
A Bu!ton \'t'zérl6 ID rulajr.londga legyen btnSutrnlt, Te,,! lu12~g:.! pedig 'l1ck M@

(K3uinLo. ide). A DropDo.... nList \cli'f1(5 ID rulajdonsJgit ;ilhtsuk HBvou-re (ízek).


12 uLin kattintsunk dupl~n a Buuon vezl:rl6re. Mint!JÚr wdjuk. ezzellttrehozzuk
J gomb CHek ~nykezeI6jél-cbben az ."Sem6l~'kezcl6ben kell megadnunk az!.
a kódol. amely 3 r esult s címke Text w!ajdom;i~ írja a fe!haszrci!6 ~11:l.I kiv.1!asl;lott
elem szöve#!:
re.ult, .Text k ' You li k•• ~ tl .. v"rs .se l ecu,d l t • . T" xt
AholI)" a fenti kódl:>6llátható. a [)rop[)ownl;SI \ezérl6k k,v;llasltott c1cmét: a köv.....
kező forrnjjU k6ddJ1 ér!teljOk elo

D rop~ i 8 t ID . Selec t edltem

Emlékezzünk vissza. hOIlY minden IiSUlek'm az Enabl ed. Se lected. Tex t 6; Va l ue


tulaidonságokkol rendelkezik. A Text tulajdons:\ghoz teh;'it így fMICtűnk lmm,

1\ value wlafdonsághoz pedig Igy;


DropDownLlstID.SelectedTt~ .Valll'

A DropOownLisIvezé!16 Selectedtte.. ~ Sn~ bl ed, S"le<:ted,


Text b V.. lu .. tulajdooságain kMiI éQreve!let(ink ~ otödik rulajdonsigot is.
amelynek a ne'ie Att r i bute3, és a UstItem CoIection Editoroo kere~íi1 nem
érhetI! el. Ezt a tuIajdonsá!lDt lITa hamtálhatjuk. hogy bdUítsu4l a DropOownList
VeN\6 általlélrehomn HTML-köd jelemz5it A gyakorlatban arra a tulajdorlsiol'a
ritkán van sxl*rig. elM nem is ve~egetUnl; rá több idill.

Miut.in a szükséges kódot beinuk II /Juuan \'e~r16 el le k e-seml:nykezel6jébe. !>l!zzük


meg 3z ASP,NIT oIdah 3 bőngésu5nkben. AnukOT az olda! betölt6döll, dlasszuk ki
a kedvenc f.r.gylahunlut, és buln!5Unk a Cliek Me gombr-J. AZ únap ekkor vi""zacs:I1<;'"
I:íSl indit el, b amikor az ASP.1\U oldal Újrntölto5dik. megjelen,k a 'YoU 1i ke fl l/vor '
szöveg (ahol il f l " vor- a IcnYl16 li'itiból kl\':IlasztoU t:1gylaltlzcsitésJ.

A! \,9. ~br:ln nt láthatjuk. hogy;an feS! a DrOI;lDow,>t•• ,t . I8P>< oI<b.l. miutJin az eper-
fagyJalu){ V:U3~7.IOUuk 6; 3 gombra karuntotrunk

l ""'"....... .. ~' ...., ,.,..... L. ...'.. '_ - "'1


• •

11.9. iM
ti Jc,,)-íIIlIWAb6i" SlmuWrry'
clr.m<~ r,dl;lS.%NlI""
A DropDownUs! vezérl6 esztétikai tulajdonságai
Az ltems tulajdons;\gon kívül a DropDowrilist \,<,zér!önek csztétilai tulajdonságai is
vannak. Ezek ugyanazok a tulajdonsigok. mim ameirek"" II label és TeXlBox ,'eJ:<"rI6Ic-
nl:1 is lo1nunk. á ugprn,)gy is kdJ 61<<:1 megadnunk (összcfogbl\'3 Ihd, l U. t!ibl.1<:awl).

Tulajdon_á9 lalr"
BdckCo l or A lenyíl6lis1a h<'inéNzínél adja !lK')I..
Font A leny\l6listáoon le~6 SZÖ\cg lUJajdo.wgail hal1rozza meg
Emlékezhetünk II Fon t rulajdonsignak ~zá"'05 résztu-

~SZfevehetjiik. hoov a 11.2. táblázatb61 a korábbi 1&j8lalllkben [álon Mlt/itikai


tulajdons~k 1lIIY résza hiáoyzik, mégpedig BQlIgélyeUeI kapcsolatosak.
Bár elméletileg a OropDownUsl vexérl6 is rendelkezik erekiel a llRjdonságokhl,
oom t!!láljuk meg áUl a Visual wvb Developer Properties ablakában.

A RadjoButton vezér16
A felhaSZIÚlókt61 vilaszt6g0rnbok scgílloégéH,1 is ~l1jthet(lnk ad:llok:lI. és II lenyil6
listJkhoz h:lSonl6;on ezek "e8Y.~tlen lehetfiség kidlasz~ra sroIg:ltru.k. Ilizony:kd
taJalkoZlunk már vála5Z16g0mbokkal különféle: weboldabkon' arokról II kis kör alakú
vezérl6kr61 \'~n sz6. amc:-1rekl>en egy fekele pólry jelenik meg. ~ bejcIöIjOk őke!
(Jásd 3 ! L 10. :ibr:'i!).

A:1., egymishoz kapcscl6d6 \-1bsn6gornbokbóJ csoponokat is kiallkíthatunk, ~melrek­


nek egyszerre cs:tk ~z egyik t:l8/Uk lehe! bcjclöll'e. Vagyis 11.3 van egy három választó-
gombból áJ16 csoporrunk, ~ bcjelöljOk az cl56 vá.]:lSZtógombol, a nú.sodik és a hamudik
kikapcsolódik , ha pedig bcjdöljúk:l második d.~n6g0mbot, az cl56 ~:I harmadik
nem leh(.1 b"jclölve,é< Igy Icmbb. Úgy c' swkl.1k mondmi, hogy:l OiOpO<Ioo rcnde7.ct1
v:Jbs1\t6gomboi< kli/csijn6se1l kfmro viszQnyoon :illn..k egyrnissaL

Ahhoz, hogy egy ASP.NIo' wd>Oldakm eJhe!ycmc:;S(lnk egy \'i!JasZl6gombol, a R:ldio-


HuUOfl wcbes I'cz€:rl6re v~n szilkM'giInk,:lz oldal lekq,ezbekor eZ:l vez€:rl6 hov.ll
Itrre a v:ll.o.m6gomb HTML-k6dját. Ha azt w:reInénk, hogya felha5zn..á16 mondjuk egy
h~rQfIl leh(1.őséget urtalmaw csoportból ,~Jaszthasson egy elemet, három
RadioHuuon \'e~rl6r. kelJ luszn~lnunk.
_. __ _- ...
('0 '.

- 11.10- ""
A~Q'~~
lIÓnU ~~ .... ,dJaWhm"
Ilou.unk lIlO6I Iétno egy ui AS!'7\!:.' okblt FIad, oButton ......px né\'en, hogy ~g\1ZS­
g;illl<WUk ~ RadloBunon ,..,zerl6Ir,
mfficö<1MéI Azo/dal hasonló dll szoI~1 rNtd. num
a I ~rr-c.wnL t . uP", '':Ig)'J5 a r~lIl<1szn;,116 a kedvenc fagyl:aII~1 \'~I:.szI1u1J3 ki I':lfU

/>lJUt.:In Il'IrehoZluk a~ oIdIlt. írJuk b~ ~


What i" your f<lvori t. ice
II K"I'Vl:t6ben
"rlNDl navor? szOveget. 6:il sZŐ'o'eg ~Ij l"i~1.t",k eg)' R.~dIOBulton \'e~(,rl6c
A \l"\'e;o.6bcn ekkor megJelenik egy \'ll~n\6gonlb,:il \'ezér16 lD [ulajdorWg~,"~l
(szögletes z!ir6 jdben).

Bilooyíra 6szrewttCt. hogy • TooIbox palená'l a Radio&mon wzéri6 llen 'ov


IIIdioButtonlJst nmi WIbn YIZ*t6 is 11Mllat6. Ell_ vvzért611Uor ~
lIfI'ikCW I ~ \a'lGlÍIIlllwt6s4geket egy ~ 1.oIjtk
A R"'in&ltIonLm '-m6IItM. 11. fIt-\bIn llI,Ita\jla be,

11.11. ' "


- /I R<uhoB,,_.mp.~

OKr' ................b
hnrviPrki<P 1141'''
M6cIo5i15uk ITIOSI az imént n oldalhoz adalt RadioBu(lOn v~zérló ID tulajdonságát
az ala""rtdmezen RadioSuttonl·r6j vanilla·r.:l. Ez után adjunk még kl-! RadioBUlIOn
vezlirlŐ! n oldalhoz, legyük óket egym~s al;\" majd ~lIilSUk az ID tubjdoll<:1gukal
a c!loc<,late, ílletn~ a n .......beny 61&re, vligül helyezzünk egy Buuon ...;,zérl6t
a Idrom v~lasz(6gomb al~, m6d0:sílSuk a gomb ID tulaj<:lon$:igál btnSul::mit-re, a Text
tulajdons.'igál pedig eItek Ife-re.

A Visual w~-b Developerben a kl-! (jj:.lbb v1Iaszt6g0mb, illetve II gomb homa<tisa ut:in
olyasnut kelll~munk, nlim a 11.12. ábcln

.......
"-,--'''.
_... _----_ ..
.;,
_. __ _-
.. .,

11 .12. MIra
A RadioBlmo".aspx
most mArMrom ,-áJaszI6g<"m'boI
I!$ <"/U. gombol t"fIl<l"",~

NézzOk most meg a RadioButton ... "px ASPJ';E"r old:Ih a böngészőben. Két dolgot
vehelOnk b2re: el6:ször is, csak három dlaw6gombot liltunk, de szöveg nem tanozik
1107.7J:juk. ami lcirlllt tlOgY az egyes ,'~las7.t6gombokhoz milyen ,-;\.Iasnási lehel~g
ranozik, másodszor, jelenleg egynél több dl=6gombot is be)eIÖJhetOnk. (Err6I
rnegg)'ózódhctOnk, ha először az eM dlaszt6gombr.:l kalumunk. majd a ndsodikr:!.-
Whaljuk. hogy mindkiCI \1iIaszl6gomb bejelöIt ilbpotb-J kcnlL) Al. emlilcu ~k
j6115th~l6k a J l 13, ibrin, amely a RadioButton . "'IpX oldalI mUt:lIj:l a böngl!sz6Uen.

",.. "" ...


~-_

, "
,!!~.,-

----"' .... -
•o
• 11.l3. 6In
l'-IDclőr-e lliA"yzrk az "8)"1" ''ÓJasztó-

-- ._---,-- gombokMz tanOM $2Őt~ ls ItJbbet ts


kI,>r'J/awIu.(Unk 1«Jz>11>lk
avdjI f 61 ..• ...+

A Toxi és • GroupN"", bJiajdonsjg használata


Minden vllaSllÓ!lombot el kell látnunk vabmily",n ~'eggel, ~mi lelria, hogy ~Z adaI:(
elcm milyen \IJ.!amlsi lehet&égrt kq,vi:lcl Ehhez csak annyi! kcl1lennOnk. hogy
az egyes RadiOBuuon n:zérl6k Text tula~gjl:l. !lIcgfeJd6 sz&.'~-ges M~kre
~lhljuk.. A &IId,'ButtOll .... px oldalon iUilSUk;l.z c!s6 ...lla~6gomb T.xt tulajdon-
Silg::Il Vani l J ,,·ra. I ~k~ C'hocoht.ne. II hJlll'IWiktt pedag str.wberry-..,
A k(:pem)'6n ekkor oI)ö1~l',,1 kell btnunk. milli a II II ~br.tn.

-. ~_ ... _----_
. .. ,," '

.--• - ,•
.- ...... -_. - "

11 .14. "
A,~ ~qat!/ I6JluJrS

Ez után amo van 5ZO~nk. hogy a IJjrom vábnt6gc:1mbb61 ~ aoponot aLJkíUunk


ki. hogy" fdll1SWló ~·.s-=erre <=.k t'g)'" peIölhc:s5en he kötiililk. A R:KIiolruuon
vmr16nck >':ln qy GroupN ..... (C5QpOI'tntv) nev(f, karakleninc b'1tkl1 lubjdon~g:o.
Azok a RadIoBulIon vezérl6k. amelyek et!)' adon ,,'eboIdalon azOOOll GroupN&Me-
~r1ékkelrendelkeznek, clJYmhhoz k:lpcsoIódnak, tehát a h~rom V:\Jasll6goflllJo.'nk
egymá~z kapaoU,.jhoz ($;Ik anny.! k<'ll 1<:nn(\nk hogy mindhárom n:zérl6
:;roupNaa lubidorts.ig;ll a flalrOu mékTC' ;lUi1lUk

Nem SdmIt. milyen ~éket ..... lr, ,~ ~ tNIt az. hogy


az-wY clOpOilbl tartozó Yilaszt6Qomboknlk azonos Ieqyen. tSOporIHh •• A lenli
h4rom ~ GroupN~ ~ tehát akár ScottMi tC'hell ... IS
m6d0$lthattull wIM, az . .dmény akkof IS azonos lame (vagyis. fllllsmiló
eovidei!lleg l:SIk az egyikOUl itIOIhttn6 bel.
MCtSI, hogy m1f>d.h.1rom Radiolkmon ,'~zM6 Text 61 ;rOllpN""", tulajdorujgjllx.';iIliIOl-
luk. nbzük meg i$m~ J RadioButton .upx okbl! a böngész6ben (1hd a II 15 alrit),
\lcgflgyelhelJlik. 11Og)" a lurom \-ib.m6gonlb mOtSI ~r kO/aön6§en k.LlJ'l'I egymbt.
\,,~is J Mromból qyw:m: CSlk egt'lchct bqclölvc_
II , cin· ~ klnylólidk& w' ztógoINx>kke! "jII6I6I~ I 2S1

"' ...... -
JoL!""'~'"_ ~._",.,,,~,,.,~,,,

.......
_-

x

_. __......--
oa.. b'

0$0 ',ao,

.-
11.15, 6brI
,
" "dlattll5gamboJz"./ $Z(l<.o:ggei Iá/III/ul, Ih moss mdr oak "Rt "'h~ ,.JIa$::/Nllm,1t.

A bejelölt v_gomb meghatározása


Azzal,ll<Jg}" a felhasznllórulk v.Uaszt6gombobt biztootottunk, amelyek közl1l v:ilaszthal
eg}~ mq; <=k félig v~ztiik el n inFormkió Ö&Zeg}'Ú!léséhez szüksége:<; munldl,
A munka m1sik fele n, IIOg}' az ASP,NIT oldal f<XTiskód rél;zé!>en megha~f1;Iuuk, hogr
a felhaszn:\16 melyik v~laszt6gombol. jelölll' be, Minden RadioBul1Ofl ,"ezérl6nek "ari
egy Checked (bejelöIt) nevt1 tulafdoosiga, ami True-!. ad vissza, ha a vjl=6gomb
bejelöll :illapoloon \"~n. és Falae-l, ha nem.

Ahhoz teMt, hogy meg~1!apiu;uk. hogy a Felhaszn~16 a vanill" ,,~lasZl6gombot


jelóhe~ be, az alábbihoz hasonl6 If Ulasílást luszrulhatunk:

If vanllla.Checked the n
'A v.nlll. vA la nt6<;JOIIIb van bej<llOhr"
End rt

Tegyük fel, hogy ugyanúgy. allOg}' II leny!lólist:ikat bemulal6 péld:lb:m \e\ulk, most: is
egy rövid meg:ill apilliSI szeretnénk egy cimkében megjeleniteni. ami csa k annyil mond,
hogy a felhaszn116 melyik fagybltOl SZereti. Az els61épb. hogy az oldalon 1t:V6
gomb abu ellwlyezGnk egy Label vez(>r!6t, maid tör6ljilk annak Text lUbJdo~g;\\. é5
a r .. aulta aronositÓl. adfllk neki.

A reBult" címke Text lulaj<\<:>mág:í\ beállit6 kódot a Buuon vezérl6 eliek ~rnény·
kezel~ben kell elhelyeznünk. Az e5eménykezel6höz adandó kódot a ll, I. péld:loon
ljduljuk.
252 II. rMZ • ~.tBtok~" ItIcIoIgo q'

1: It "Ilni 1l1l.C~kild thtln


2: r"sultB.T .." t , 'You lik" V.. nilh·
~: ~l8e!f chocol"te.Che~ked Then

.: r".ults.T .."t ~ "You lik" Chocoht."


S: Elself nraw~cry.Checked Then
6: r"BultB.Text "YOIl IIJte Strawberry"
7, End If

A 11.1. PéldA kódja d6ször eUcrl6nl. hogy az eb6 v1~6gombot (nni ll,,) jelölték..,
be (I. sor). 6 ha igen ("~~'}'is h:l ~ "anilla . Check<!d értéke 'hue), ~ reau l t. cimke
Text tulajdon.sj!pt ~ You like VaniUa (Ön a v:anUjaf~g)·jl su-rer..i) szövegre ~llílfa
(2. sor). Ha ól bejölöll dlaszt6goml.> ~ chocolate. a dmkébe II You lik .. Chocolate
~h"g.:.'\ írjuk G. és 4. soc). ha pc:.'Üig a feUuszn1iló a straw~rry lehet6:séget WlaSZlotta,
~ You l ik" Strawberry sZŐ"eget jeleníljük meg (S. és 6. sor).

Vegyi:t észre, hogy milllflárom faltétel- vanUl" .Check"'" chocol"te.Chec·


ked és Btr"wberry. Ch"<Ok<!d - lHIlat Fa l se ef&dn-..!nyt is. ~ aktor lortiJflat
816, ha a feIlasméló a Cic:k Me gombra kattintás e16n ElgVatlan választ6g0mbat sem
ieIÖh be.

A váI.szt6g0mboi< esztétik.; tulajdonsága


A DropDo"'nWl:, a TelClBox és II ~bel \'eZérl6khöz hasonlóan a RadioHunon ""z&lőnek
is , = k e:sztétik..!i lulajdonságai, ,m;gpea.g ugyanazok. mim amelyeket kor1bban is
l.1uunk. (Bizony:Jr:I kiL~l1huk. hogy ",/mkm webes vezh16 ug)"ane7.Ckkc1 n <':IZ!.['tikai
lul3jdonságolck~1 rendelkezik - ..:ren a később OenUllat:mdó vczér16knél nem is ismétel·
jOk it ~ lU IábLi.:~:ub"n I~ton tul;jjdons!lgobt.)

Emlékezzilnk vissza. hogy a OropDownList v8lárlönél hiOOywtak a SleQéIvtuliljdon-


ságok. A R&dioButton 1tZl81 SNmbltn rlKldltlkeVk. ewu.el a tu!ajdo~aI­
BorderColor, Sord.,rStyle és 80rderWidth - is.

A CheckBox vezérlő használata


A fCl"zet ek:jt-n szereplő. A bct.'ilretii adatokoutál)1?zá.su dmö" részben I:htuk, hogy
a felhaszn~16 ~It;tl bevihető adatokat h.árom dOpOf1ba sorolh.atjuk.. Ezek közOl a Itgsz\l·
kebb V".ilas.rusi !ehet6ségct nyUjt6 csopon az igen/nem (Iogik..!i) lipusű elemek'; "olt,
amelyrk'l (sl].: kétféle válasz adható. Az Ilyen jelleg\! inform.kiók bcgyü)l6l'rc ideilis
eszköz a jelöloo~"l, ~",dlyel bizony1r~.so\c:;.wr 1:j1;1.lkO~lunk ",1r_ egy .wSP<..1,
amelyet be.., ilk"t\"e kJk..!pcsoIIUlunk.
A jdöl6négyutek ami is alkalmasak, hogy 3 felhasm:\.16nak v~la5zusi lehet&l'gek
egy oIYJnlisláj:\.t binosílSuk, amelyb61 egyQ<:rre több elcrn is kiv~lasz.th.at6, Az <'I6z6
kél péld.'iwn - OropDOwnLht. upx Ú RadioButton.""px - csak egyf('le fagybltOl
lehete« bejelölni kedvenckénL I-I~ 3ZOflwn három jdöl6négyzetet hasudlnink,
a felha5z~16k egy, keuő, I':3gy háromféle iZe:5ítést is választhatn.1nak: _ vagy éppen
egyel sem,

Jelöl6nég)'zetet a CheckBox ,,'ebes vezér\6vel adhalunk az ASP.Ne, webolclllakhoz,


A RadioBunOll vezérl6höz hasonlóan a ChedlBox vezérl6 is egyetlen íelölooégyzetCl
hoz létre, vagyis It:!. egy oldalon h~rom fl,löl6négyzetl'1 szere:nl'nk elhelyezni, Idrom
Cheo;:kUox vezérl6c kel! haszn~lnunk,

Hozzunk mosll("\re egy olyan ASP.NET oldalt, amely a CheckBox vezérl6c l\aszn~13t:1t
mUlalja be. EI&zör nyissunk egy úJ oldalt Ch .. ekl!<lx./lspx n(... 'en, amely ugy:mall fogia
tenni, mint az e16z6 kél példa: an;l kéri a felha:,znál6c, hogy V""lassza ki 3 kedvenc
fagylaltjit. A jelöl6nl'gyretekke! azonoon arr~ is lelK"\&l'get leremtiink, IJQgy a felha5z-
n~J6 egy~rre több fagyJaItfajtát is bejelöUJeSSen, ha több kedvence is van.

Az új ASP,/I,'ET oIdallélreh<:>z15a \Lun Ú'jUk be a What are your f avor ite iee ereM
flavors? szöveget, (A kérdésben a t~m íelli, hogy ezúual egyszerre több
k:ht.1&ég is '-:llamh.1tÓ.) A .ZÖ'o'eg uLin hÚ2lIJnk cgymh ut~n h1rom CheckBox velérl6t
:IZ oIdalr:l a TooIbox palctú.r6I, majd hdyel.tilnk el alattuk egy gombot, illetve egy
címkét is.

ÉszrlMlhetjük. hogy II TooIbox PaI&ttán II ChedSox vezérlő alatt egy CheckSoxlist


nevú ~s vezéf16 is taálllató. Ezt a vmoot akkor hasm;ijjuk, amikor a jeiéiiG-
tl1!gvzetekhez tartomlehet6ségekllt &gy adatbáltsban tároljuk. A CheckSoxltst
hasmálatát I 17. 'ejeze!b&n mulllljuk be.

M~ ~Ilítsuk be az imb'\t n oIdaUlQZ adon v~lérl6k tubjdon5:\go'l. Elös;cőr töröljük


a Uibd "ezéll6 Text tub)do~gának éltéké1:. b;; ~ címke ID tulajdons:1gát illit.suk
a resulu (-nékre. Ez ulfin kaninlSUnk ~ Bullen '~z&\őre, í'1uk a Cliek Me SZÖ\'egl'1
a gonth Text tulajdons;l.gáw, az 10 rula[dons:1gámtk pedig adjuk a btnSubmit ht&et.
A h~rom CheckBox ve:rert6 eselében ugyanazokat a Ttoxt k aZ ID énl'keket kell
megadnunk, mim a kOtibbi példáwn 3 vábSZ16g00llX>knáJ, '''gjllS 37. elso'! jclöl6ntgyzet
'l'ext tulajdons:1ga legyen vanill/l, 3ror\O!iít6ja pedig Y<'Ini l h, ~ ndsoxlik S7.Ö\1ege
Choeolate, Ú igy tO\'libb,

Ha bcillitOltuk az emlitett vererl6k tulajdons:1gail, ~ kt'pemy6nknek úgy kell kinémie,


minI a 11.16, :!br.lnak.

Nl'2z{lk meg a CheckllOx • .,sp" okblt ~ böngész6nkben is. A 11.17. ~bcln láth~tiuk,
hogy az oldalon h;irom jelől6nl'gyzet jelenik meg, amelyek közül egysze"" többec i~
bejelöJhetúnk
-~ _... ------,.
... "'ól
,
.'
- .. _-,
_.. __
.,.
• ...
••
,.-
h_
_ ____ o
•••
__ r
-
-
------_... ~

- .....................-
• - 11.16. in
Ar ASP ,\'}.T al.'bolilal
NI""" Jd6Iórti'Io'MM

:Io,~,.,,_

'" ......
\l-'lJ
'-
.......' .... _,_.'

~jI
,... ...
;.,~-
".T'IIC

••
--,.._ --
-('
_ _ln.. •

... I

.... . • 11 .17. 6bnI

• I"lOW1<oI is WJaszsha, ~ ''''RI'


....
00________________·"..
.,·='0·__--' .......

A bejelölt jeIÖI6négYZ8tek rnegha1ározása


AlI, hogy ~ r~16 mdy ido'6ntgrlt:lek~ jdöhc be. ugranúgy h:lLllozlutfUk ~.
mint ahogr a IbdIoBlHlon ~ telilik ~ <..1utcked rul:tjdoosig 5egI1>ég(",'d, amely
Trut \I"..gy Pohe 61&ct ad ViMZ:I
~."k80xID.Checked

Teh,,! tu azt szeretnén k megi!lapit~ni. hogy ~ vanill .. ;elöloo~ctct beielöhék~.


u aUbbi kód elegend6,
lf v.. nl:l ... ChEoked <""n

... "
• A v .."iU. jelOltlné(ly • .,tet bo dOh'k

AdJunk l'IlOIIt t'g)' eseménykeld6t ~ 8ouOfI veúrl6CI ick oc:méll}'tOet, amelybe m;ljd
beit)uk azt a kódol:, amett~k mo:glutlroua. hogr a felllas:znj16 mdy JdölOOég)"ttIdlct
-,eI6Ite be, ~~ mzheltlnk, 'lOJY ugyanazt ~ kódol: hllszn1I]lJk, mInt amit
~ II I pekl:lb,m, de ha úJfll ~UiIk az ~Iilctl pfld:l.t, Ulhatjuk:, hogy a ~_ és
11. n . AdItgY\ljtéf; lenYI6 hdkbI. vN.~k" á I
jeli51611'IIY18te11kll 255

az 5. sorban El"el f lJt:lsi(;jso!cat alkalmaz!lJnk . .mrpedlg az ezek('1 kövelő feltf!!:clck


ki(>n<"kclésére csak akkor kerul sor. ha,. megclőz6 fcllf!!:clll.~misn,.k bizonyul!.
Má.5képpen rnegfogalrn:l.;w.I: II 1 L I. példa 3. 5Or:.nak kimékelésc cs:tk akkor megy
\·~bc. ha 3z I. .sorban slerepl6 v"ni lIa. Ch"cked fellétel Fal" .. creclrné-n}1 ad.

A L 1.1. p(,1d!íoon szereplő k6d tehát <:Sak annak a f~gylaltnak a O<.""V~ irj:;l ki. amclyikr6l
~ kód el6/;lÖr :illapitona meg, hogy,. hozzá t:1Il0W elemel bcjelöltl:k. Ez II RadioBuuon
vezér16 esc\ébcn nem jelenl""-! gondot. nm'eI a fell.aszruiJó a h.1rom v~laszt6gomb kOzilI
egyszerre cs:tk (.'gyt.1 jclőlh(.1(.1\1)l' . .a jelöl"in~'gy:;o:""-es p(~dábafl nonbólfl képe-llnek kell
k'nnilflk 3rr~, hogy a címkében több fagylaltot is felsomljunk. mivel egyidejU1eg több
lehelőség is d.lawhat6. A sl;Üks(>ge:s forráskódot a 11.2. p<'ldáoon l.1thatjuk.

l, • I'. resua" '!lJIli;e Text tUl.aj<lond'1ának tOl""l.és"


2: reaulta.Text ....

4, If vanilla.Ch .... ked then


S, resu1ts.Text "1''iou like Van111a.'

,,
6, Rn<l It

a, If chocolate.Ch.cked then
9: re8ulU.Text. &. ''iou lik .. Ch<>colat ... •
10: tn<l H
H,
D, rt .. traw!>erry.Ch.... kftd. tlum
13, re .. ulu.Tfi'xt h 'You like St.rawberry.·
H, End If

A 11.2. péld!loon clősWr töröl)tlk ,. re8ult" ctmke Text tulajdons;'i~nak mék(1 (2.
sor), majd a 4., 8. é 12. sorb:1I1 nlCg"o',zsgiljuk al': <:g}'ei jclölŐl'~'Zelek Check""
\ulai<\OrWgát. Alnennyibt:n vabrnelytk jclöl6n~g}'zct(.1 be,elöl\ ~lIapotban taiáljuk. "
neki megfelelő 'ZÖ\"egCI &srefűUiik,. re."lts dmke Text IUlajdonsigin.ak &t~kevcl.

A 8. sorban péld~ul:. chocolate .Checked !ul~jdonsjgot Vi7.sgáljUk: ha Cl: True--t ad


vissza. az 3Z1 telenti. hogy a felha~nál6 bejelölte a Chocolate jelöl6n~gyzctrt, ezo.'"rt
"égrt:ll<l~ód;k " 9. sor, amelyben" reR" It. cintk", 'I'''Xl tulajdonsiglnak értékf!!: a
'VOll lik .. Chocolate' szöveggel fŰZl;Ük ö.sszc.

Az 5. óráb6l .. mlékadwtünk ri, hogy !IZ ", rTIŰV8kIt il bill oldalán álló vák~O
értékét össze!úzi a jobb oldalán áIÓ kilejeals értéke-vel, majd az össze!Uzön
értéket a bal oldali vá1tozóhol rendeli. Az alábbi Ut lItasitás tehát agyenérttlkti:
Wiltoz,s _ V.iltoz,s , 'valanl11yen karakterUn!"'

j,

VUto.6 h 'valamilyen karakt .. rl.!nc·


A megfelelő ilrenetel horufl17.zilk a címke Text lulai<Jonságihoz, k nem "gys:z"n1en
énékill adjuk annak, ~n nem szeretnénk felülimi a lubjdons:>g<.lI Mién? Nos, awn,
men 113 a Vanilla jelölÓllégy:l:eI bejelöll illa[)OllYJn van, a kód d6ször a You Bke
Vanilla szövege'! irja a címke TIoxt (Ulajdonság:iba, 6; eZI nem szeretnénk el\'e:'izilen;'

A 11.18. ábrán 11lhatjuk. hogyan rest


II Che<;:kBox.aspx webokbl a bön~. miul:!.n
a felha5w.'I16 bejeIöIl néMny jelöl6négyzetet, 6; elkilldte az ürlapot. Vegy(lk ésue.llO\1;Y
"7. oldal aljin I:Il1Jh~tó címke minden bejcIölt lehet~grőI ~;ssza;ellbl ad .


__..__.
& . . . . . . .- _ ....

•j . j ; , - "-;'- e>
....... -~- .

..-
C& ....]

11.1B. 6In
A fi>llu1$zmll6l<'Jbb W, ..""
' j .•• - fag)'IaIlOlI< .tNaWlu"

Összefoglalás
Ebben a !e<;kében hjrom olY'~n webe:s ~'eZérlÓl vi7,,;giltunk meg, amelyeket gyakrJn
hasmllnak fcUusmllói adalOk összegyűjtésére, a DropDownUSI, a ItldioBunon és
a Che<:kBox \'eZérl6t. Ezeket a \'czfrl6kel1It:1l1ban akkor \'esszi:lk 19(:n}t.e, ha a fel-
1~J6nak CS3k <'SY adottlisú", korl110lOO vilasztás. Ichet6ségl"l akanmk kiruilni.
vagy CS3k kétfél<> "11a5Z! fogadlutunk el.

lia a fcUlaszn116t61 péId1ul azt szen:1nénk rnegtudakollÚ, hogy nlCl)ik id6z6n!iban lakik.
l'gy Icnyí16 I~I (DropDownUst) hasznilhalunk, anll'lyben a \'iUg id6z6n..1i 1:115lh:11611, és
a ft'l113SZniJ6 ebb5I. v:llaszthalfa ki a megfelcl6 z6n!it Amennyiben a felhasmilönak eI-
dr'Intend."i (ige1l/nem) kérd&! leszünk fcl- ami az inlernctes felrnéré;ekben iJt:llános-,
a jelöl6négya1. (CheckBox) a mt.ogfelel6 \'llaszr.:\s.

A lenYt161i>dk bemut:llás:l.rdllánuk. hogy:l Iw:iban liSlaelemek I:IliJhal6k, 3mclrek


3 válaSl;1hat6Ieh~6ségeket jelkq,ezik. Amikor "gy DropDown1.isl vez(orl& adunk
eg}' ASP.NET weboJdalhoz. meg kell határoznunk a liSl:!.ban megjelenitcnd6 eJcmek~.
Szt'R'~re ez a Visual Web Develope.- lis\ltcm Colkction Ednor ablalclban (lisd
" . ÓfI • AdatgYOjtá 1InYII6 iIttiaI, vH...6op,iI:ri1''' ib jlllíl6n'IlYD1akbl l251

a 11.5, fucll) egyszenl feladal. A1;I., hogy,. felh:l5Ul~16 melyik li.\uclemet vibsZ!o((~,
,.z ASP,N!:i' oldal fomlslcód részében a DropDownlJsi vezérlő Selectedltf!llllUla)don-
$;Íg:ína k .o;egil.'iégével hat,irozhatjuk meg.

A lenyi16 1btákhoz h.asonlóan a vlJaszt6gombok il; egy lehet6::;(,g kidlasZ!áslt teszik


lehel:~,. választható elemek közül Mmden lehC'ifukghez egy-egy v~laSZl6g0mbra
,,".In ~zOk'iég, amelyek köl~ ki7.!irjiik egym.i<i. tehát az t'/n'máshoz bpaool6d6
v:llaszt6g0mbok körill a felhasz~16 egySz~"'ITC csak egyet jelölhet be.

A RadioBulton vezérli> egyC'ilen dlaszt6gombot hoz Iéire. AZ!, hogy bizonyos vlil~sZ!6-
gombok egye/n'5<'get képeznek. amelyb61 a felhasználó egyC'ilen elemet v~laszthat kl,
a GI"oup!l..- tulajdons:"lggal jelezheijllk, a v:llasztÓllomb lillapoillt pedig a vezblő
Checked tulajdonsig:ín keresztiH határozlutjuk meg.

A k'Oflyíl6 listfík ko a v1IlasZ!6gombok esetl±>en a fel~16 egyszerre esik egyel v:llaszt-


hat,. megadott 1ehd6sl'gCk kÖzÜl, a ,..löIooégyzctek alonlxm több elem kMHaSZlásit is
1ehetŐ\·t tcuik.Je\öI6n(-g}"letl.1 a CheckBox "'ebes vezb1ő segílSl'~'ri hozhatunk l(,u-e.
A RadioButtonhoz hasonlóan a OJeckBox ,·t'z&iő is rcndelke7jk Checked tubjdons:\g-
gal, amely jelz!, hogya ;elöl6négyzetet bek:apcsolt:lk-<:.

Most. llOS}' meglsmenOk a felhaSUl:\I6i arn.tok összegyO'jtl"'Sére lusználh:n6 wt-bes


vezérlőkt"l. r:jtérhetOnk arr:l a kérdbre. IKlgy miktnt el1enÖlizhetjük ,. beirt ad.~tok
érvtn~b.. A bemenetnek ugyanis rendszerint egy megadott forrn~Nmban
ken trkeznle, vagy bizonyo.. megszol'ílások t'rvtnyesek ci. I la a felhaszruil6t61 ptldo1ul
a1;l. kérjilk. hogy adja meg n tletkodt," beín adatnak eg)' sdmn~k kell lennie, ts
egy elfogadhat6 tartományba (mondjuk O és 110 közé) kell esnie, A következő 6r:lban
az ASP.N!:' ellenőrző vezt'rl6iwl foglalkozunk, amelyeket a bemenet. ellenÓizésoére
1t:l.'lZIcl Ihatunk.

Kérdezz-felelek
K: H(, 50 /ellt1ségcs e1~'met SZI'Tl1nénk mC!J{j(/ni f.'8) ' /cIIJ."1d lis/ába., tVlgy r'(.Í/asz/t}.
gom/JokkL.I, am"'y.!k klkllI ti le/II(/.SZ'l(j/6 I'álasz/Istl/, stljiil kcZ'iif<1l kI:/1 bdrtlOm
milld az 5O-ct?
v: Eddigi i~mereteink alapján a válasz; igen. Mmdazonilt:d a 17. fejezetben megta-
nuHuk. hogyan tölthetünk fel egy k'Oflyíl6list~t adatb:lzj.sb61 sdrm:owadatokkal.
ts aZ! Js. hogyan hozl\3tunk l;:'re \-:ilasztógambokat ts jelölootgyzC'tekC't
eg)' arn.tb:lZi5 aLappn a RadioBuuonUst ts Cll«kBoxList. vezérl6k segítoégével.
K: Készítet/em "8}' /o detmlletl).7ó /Js/iif l'lV' ASP~V1ir o/da/oll. <fs mos/ fol szeret_
lIém h.lSZl/állll "8J'tmezt fl lis/át egy m'WIl ASP.NET oIda/QII is Ez/ 1I)"j{~orjl/
",<'S/chetetn ll&y, hogy (J másik oldalon ls e1IJd)'CZ<>I: l'lV' DropDou'nllsl /JI!ZérlÓl,
és ,ijm beírom ti /0 elemer, I~n csel/eg {"Il nél ktlml)~obb mgy 8J",~,bb
ml'lJoldas?
258 1K, rMZ • f~ PItlIk ~ '- fakIoIr;p'"
v: Ha egy DropDownl.i5l \'ezl'rl6t ~t szeretnénk mholni aZ &szes e lenlé"d együn
egy .rosik ASP,NET okblrJ, először tölt:;iik be mindk~ weboldal!, nujd a lenygó
list~t tanalnuw ASP,NE']' o ldalon ",jIlSunk forr1s nhCln', és keressük meg
a DropDownlisl vez(,rl6 kódpt az 0 11.\;11 HTML részében A kód [gy fog fesleni-
~a.p , DrOpDoWt\LI8t Id.oDropt>::JwnLlnlDo runat~'BervH'>
<a.p,Llat l tem Value~ ' Valuelo>Textl<fa~ p,L i5tlt~
<as p, L i B tl t~ valu~~·Valu~2·>~x t2<,.a p,L latrte.>

<asp,Llatltea valu.,·v.lueN·>~ x tN<fa8P ,L i.tltem>


<1.~p , Dropt>::JwnL i s t >

A k'flyfió lista minden clC'fi)ft ~'SY <a sD' ListJ tem> kód jelzi. ~soliUk le
a DropDownüsc vezé1i6lcljes k6djit, és 1l\esszilk be a mjsik oldal forrisib:l ,
így nem kell újra beírnunk al. Öi5S;re$ listaelemet a m:lsod,k ASP.NEr oldalon.
/(: A l(iluS%f6g0mlx>k klJull aklpállupollxm <'KI' si"cs btjeIóil'c. mg)"Í5 e1lJforrl"l/lUl,
hog)' a fi>{lIasz/1l116 <'&}'t?flcm l.oála.szl6g0mbol sem je/(JI be, llOfOYW érhetem el,
"C/D' mfndcuWppcfj '®"'" bejcl&t Ic"cttJsIgJ
v: Ha a feU~ló mjr bejeIölt egy vilaszt6gombot. aZ! nem kapcsolhat;" ki, csak
úgy. ha bejelöl egy máo;ilGlt. az oldal bctöItéselr.or nonmn kezdClben egyik rl·
lam6gomb sina; bejelölve. Ez aZ! jelenti. hogy ha a fclh'5w!i16 egyik le~
sem jelöli be. az adon C50pC>fthan mind..n vála=6g0mb kik:lfX'WIv:l mal'3d
Rend.">7.erint a7,Oflb:ln an ~nk. hogy a fdlJaSZfl;\16 válasszon tgyet a f.;lkin11t
leho:,tőségek közül. Ahhoz, hogy mmdenképpen valamily"" v:'ilaszhoz iUssunk ,
gondoskodnunk kell rob, hogya csopon. egyik választ6g0rnbjol alap:lil<tpotban be
k'g)·en jdőlve Ezt úgy éfhetjö k d , hogy ~ Vi'IUal Web [)e\·elopetben az aiapértel·
mezeuk&l! kijelölnl kívánt váiasztógombra kJ~intunk, hogy betöl!5iik a tulajdon·
sjg:.il ~ Properties abL3kb:l, majd a \'ezérl6 Chec ked rulajdoru.:1gá\ on Troe-ra
állítiU k .
Ne feledjük. hogy egy dlasn6gornbcsoponban c5:lk ®'v~!as.z16gonlb lehel
alap1ilbpotmn bejelölve. [I ~ ~ Chec ked tulajdonságot több R.1dioBunon vezérlő
esetl:ben is Tru .... ra ~Ilí!juk. a fdhaSCln116 ~6je a kkor is cs:lk aZ egyiket
fogja bejelöltként megjeleníteni.

Ismét16 kérdések
I. Tegyük fel, hogy egy Illtem..-tes kvízt kkzítünk, amelynek k~ire csak
egyetlen helyes v1bsz adh:1l6, (os az egyes kérdések eS(.~ében a ft'lh35J'.nálók öt
lehetőség közöl vil~halnak_ M,lyen \·ezér16ket o!'n:Iemes használni ehhe z
a w .. boId:lIhoz?
2. Azt $zcretn<'nk, hogya feUtasznál6 nK~dj:o UI az id6z6n:it, amelyikben <'I.
i\hlyen wt'bes vezérl6t h:ilszn~Ulatunk erre a reladu,..J. és melyik vezér16
""m alka lmas r.I> Melyik \'ezérl6lenne:il /t'8JObb megoldis?
3 . ./I. DropDownlisl VC7.M6IObb elem kiv:'ila.s>::lb:il is megengedi a felhasznllónak:
Igaz vagy hamis?
11 . ÓI1I • AdatQ'tIljtá lInYI6 kdkkaI, ~'! !/9'Jf11bOkkII" ~~zwbJkkII l 2S9

4. Tegyük fel. hogy egy olyan "'cboIdalt szereultf1k ké5zíteni. amel}"e!l a felhaszn:iló
egy 100 országol lanalmazó l~böI kiYáIa.s7.lhatp. hogy mely országokban
j.1.n mr. Mi&t lenne j:6 megoldás jelöl6négyzl1eket alkalmami ll. febdall':l?
5. A 4. k~rd(,sben szerepl<'l példa pontos,1fl Iliny jelöl6négyzclo:\ ig~!lyelne
al ASP,NET oldalo.u
6. A CheckBox vezérl6 melyik tulajdcxlsiga adja meg. hogy a jdöl6négyzetet
bejelölt~k-e?
7. Mi a f6 különbsfg egy sor "".wZl6gomb 61 egy sor jelöl6ntgyzct kö~
8. J\;! úgy szeretnénk hou::bdni öt RadioBut1Ofl '·cz.éfl61 egy ASP.NET "..eboldalhoz.
hogy arok közül egyszerre csak egyet lehe;sen bejelölni, a w~rl6k melyik
IUJajdonsi~t kell beáUit:munk?

V618SZDk
1. Mi"el a lehetséges \'~Iasrok kőrul a felhaszru\16k csak egyet jelólhctnek meg,
lt'1lyíló lisclkal \'agy v:ilaszt6g0mlx>lGIt használhatunk. \'.IIÓ6zimI1cg a ,';'ilasztó-
gomb a lObb megoldás, men aZ ehhez hasonl6 intemetcs ~ttkok Itnyeg(>bcn
ki\'&el né lkül Yálaszc6 gombol<at alkalnJa7.ll:lk
2. Az inf<;mTJ.iciÓl. bek"'rhetjúk egy SZÖ'-'egmez6ben, iUC'I'"C .';'ilaszt6g011l00k ' .. gy
egy lenyM lista Sl'gítsl-géveJ is. A jelöl6n~'Zetck nem alkalmas:tk, mivel
egy ember nem un61,kodhat egyszerre több id6z6nában. A feladatTa uID'dnakkor
egy \':ibsoIlógombc:lO(Xlft vagy egy ICfty116 lista lenne a legmegfelelőbb, mi"cl
" felhaszn:il6nak egy<-'llt'1l \'álasztllsllehet6séget szeretnénk adni a 1eh~
,-;'ilaszok hSllj!ib6L
3. Hamis. A DropDownl.i5t "eléM csak ('gy elem kiYá1asttWt teszi lehet6vt.
4. Jelöl6ne<gyzct .. k .segitségével a fe1haszntil6 több Yálas7l is adhal, mig ha
v:'iIaSZl6gombo1an hallzntiln1nk, Q3k '-'8y or.;clgol jelölhC'lr:e be a 100 közol.
5. Minden orsz;\ghoz ~zOksl:g \';In egy-egy jelölónégyzctre, vaID"is - mivel
a felluszn116 100 orszjg közill Yálam.h at -, 100 ChcckBox vezérl61 kell adnunk
az AW.Nf.T oldalho7..
6. A jelö!6n(!gyzelek bqelöll ~lIapoCit a ChcckBox vczérl6 Checked tuJajdons::i~,
nak én(:k(:b61 ~l1apilh~tjuk meg,
7. A Yálaszt6gombcsoportok csak egy lehetőség ki.':!laszcts:it teni!< lehet6v(:, míg
3 jelöl6négy:zctek nulla vagy több dan bejt:lölését is, Ha lehal egy SOf v~las;uó­

gombol biZlosítu"k egy oldalon , a felhasznti16 c:s:.Ik eg)'et v:ila$zth~1 köz11lilk,


míg ha jelöl6n.;:.gyzcteket, akkor rugalmas:tbb \llas.zlehct6séghez jut. hiszen
löbb elemet is kiv1bszthat.
8. A R:ldiollullon '"ererlóh1 a G ~oupl<"",e tulajdons!ig Sl'gilSÓ'ghel csoponosít-
haljuk. tellát al. aronos GroupName tulatdon.d&!p1 rendelkew \<jlasnógombok
t:lnoznak cgy aoportba. Egy \'1135Zl6gombc.'lOpottb6I egyszerre csak '-'8Ye1em
v:'ilasztl1.11Ó, l .. hll ha öt \'1135zt6gornbot egy csoponba szeretnmk t'('ndemi.
mind aZ 6/ GroupName tulajdonso\~1 ugyJnaml az értékre kell11lítanunk
260 lll. rész • FII1IszNIói adatok m."~,, ~!+.

Gyakoriatok
1. Ez a kÖlCl ~ szerzőhauxhk kÖflyve. am,t al ASP-r6l. ílIewe az A5p.~"ET.r6I ír.
Slerén~1c1enül alTa k~rem al OlvaSÓI, hogy ktszí~ egy olyan ASP.t\'ET oldalt.
amelyen a relh:lszn~16k megadhatJik, hogy mely kÖflY"eimel oI ......15cik. öt
CheckBox ve~r161 kell maid I['[rehozni. amelyeknek a Text ,ulajdons:'lg:l J
~zerz6 kÖf1yveinek cirnd. t:llt"lm"W1. Ha .....~lanuJyen 1'I.it~ly~ okból kifolyólag
nem il;mem&tk az e",lítClt kÖ(Cleket. iu ....~nnak a címek: (I) Sli/ru n,,/Ch hm.s..1f
Ac/ilv Senvr PaSf'$ 3,Q ill 2/ O//)$, (2) DesW"("B lWItJ/! Scnvr Pagl:S. U)
ASP'f','/ff' Trps. TU/on'als. and Oxle. (4J ASP.j\'/ff /)(1111 wC» úmtrohts (S) Stlms
Tead, }ourwlf ASP.N/ff in 21lfoll7$.
N. ö( jelöl60tgyzeten kívül egy gOmIXX ts egy cimk~ il; Ix-Jyezzűnk el az old . . .,
A gomb Click ~nI!nykezel6jében sz.~moljuk meg.11:\ny könyv<-"! oIl-a.sot[ a !isti.-
ból a fdhasznál6, és JClen1lSiink meg egy ennek megfelcl6 OZCOC1C1. Szerroy ja •
.....da!om ~ kőw[kez6, loa ~ felJLaS'.m~ló n{,gy vagy [öbb könyvel oIva.,ol[ aZ öID6I,
a .7.Ö\reg legyen el.: .ón Vlllóban nagyszen1 L'fI1b1<. mig hll egyel St.-m. akkor 1rjuk
ki eZI; .Haladéktalanul keresse rel a legközelebbi kÖflyvesbolcOl, ts ~'egp,' meg
&ou eg)'ik (<4:.ink~bb ~Z~) kÖflyvtc!"
2. K<'szitsiink egy rö\-;d elektronikus kvi~(acOl. amelyben !cgal~bb h~lQm k<'rdés
t:!lilha[6,6; mindegyikhez leg<IUbb fúrom (de o,.;,k egyetlen helyes) vilasz
... nozik!
A k~rd6ek '~<'n d kell hdye znilnk egy gombot, ~melyn;: kauin[\o'~ a felhasz-
n.1ló megjelenjlheli n ~I\:lla elért ponlSÚmot. lia nagyobb k,hiv:\sra v:lgyunk.
a ponlSÚmon kívül jelenítsük meg minden hel),tdl''' dlasz mdleu a helyes
,':\Iasz[ is!
12. ÓRA

A felhasználói adatok ellenőrzése

II lecke lartlll",ából:

• A bemenet ellenőr2kl'flek fa~~i


• A Requiredl'icld\'aliJatOf tlól.Szrdlau ann:lk ellen6~sére, hog)' érkezett-e
bemt"llet II felh.ls:mál6tól
• A CompareValidator hll5zn.ilau
• A RangeValldalor használata :mnak ... lIen6rz6ére, hog)- a bemen~"l a kÍl'lm
btékt;incxnányba e:sik-e
• A RegularExpression\';Jlidator h:!~zn.ibu
• Az ellen6rz6 vez&l6k ~;:Ié1:ikai tulajdonságai

Ahogy az. el6z61eckékben l~nuk, a felhaszn:!16i adatok öss:.zcgj'Újté5.<: az ASP.NET


oldalakon viswnylall könnyű, Sajn~ nonban am nincs garanda. hogya felhaszn.iló
a bemenetel a kív:1m f(jfffijturnlxm ~dja meg . Képzeljük t"1 pé.ldáuJ, hogy mi tönénne.
ha a felh...S2.fl:iJÓl61 a testS(jI~~1 kérdem&tk (mint ahogy Iléhány fejezettel kor.'iboon
II tCMIö""-'gÍ00ex-kinim1t6 oldal e!K'tH>en (euOk), de ,".!lanti ol\'~smit íma be. hogy
.túl sok"!
262 1a. rész • FIIIaIzn6I6i Idatok ~ " faI.In9'*1

AZI ~ folyamato!. ~melynek ~n bizto:o;itjuk, hogy a felhas~nfl6i adatok megfelelő


form:itumb:m érkeuenek. bct>I/!/If'fel/''IIórzésnck ne\'ezzilk - e~ k(,pezi ~ jelen fejt'zet
h~mjjjt_ lia mM rendclkez(lnk n(imll:lp;!szt~ l~ual a dil1:lmilrus webokla13k kkzit~
h~sztúh (echtlQt6gi~k (ASP. PHP. JSP) terén. a bemenet ellenőrzése biwny::!ra
nem újdonság a sz:lmunkr:!. Mindazonáltal at említett régebbi t<:<:htlQl6gi:lk esetében
cz a felaoot komoly fl,f:liást OkOZOlL

.szerencsére az ASP.NET cgys:wt1Jvé teszi a bemenctellen6rlkt, mégpedig ~Z e/1r?>/!5r-


z6,~'zbf6k segitséghel. 3 mel~... k olyan wcbes vczér\6k, ~meJycknck nino más
fe!ad:uuk. mim ~ bemenet ellcl'lŐl'7éSe, Ebben az 6clban n(,gyel ismer(lnk meg
köziililk: a R..quiredFicldValidator, a Comp:<rtNahdator, :1 IbngeValid:uOf k a Regu-
larExpres.sion Va hdat of \ 'c7.érl6t,

A felhasználói adatok ellen6rzésének szükségessége


Az <'I6zó kl'!. 6r:Ihan több módszen is megismenQnk a fc!hasZIÚlól adatok Ö66Ze~')'11j­
t~'" " 10, fí>jczetber! a ~ö\... gmez6k, a II f('jezetben pedig az egy cl6re mégadott
li,dból egy vagy tQPU elém kiv:\laszlá5jt engedélyeZ<'5lenyíl61lsljk, válasZl6gombok
és ;eIOI6n(,gyzetek használatá,"~J foglalkoztunk.

Amikor a feUl<IsználÓl atbtok be->it<'lere kérjük. iltal:lhan mcglut:iruzQu form:ltumú


bemenetet .-:írunk. A IJlmumctdlcllÓrzés""gy bemenetéTvénYCliltk az a fol~'llnI:H.
amelynek sorin ellen6riuiik, h<Jgy a bemenet megfelel ..... a kö\'e1c1ményeknck, és
ha nem, g~kodunk a megfele16 ~l:Ibkrtisról v:lgy hiooilzenetr61.

Tegyilk fel pékUul. hogy ~ felhaszrrll6t61 a következő informJiciókat ,,:'írjuk

• Nb
• ÉletkOT
• Ir:lnyitösz.im

Ezeknek:az aduoknak 11 be\';tel"hez \'llI6s1.ínilleg hirom .szövcgmClŐt biztosítunk,


amdyekbe persze a felhaszn!jl6lXimlil~'t.'Il énékC1 bc>írfl"t, '':lg)' ~k:lr ilresen is hagyh:uj>
őke!. Az eletkor mező O;<SCl('hcn !,éldiul k~pltatunk flres mezŐ!, de ~ 24 éneket vagy
~nn:tk SoZÖ\-'egCli mcgfclel6jél (h.uszonnégy) is, sót :a fdhaszn!i16 akár valami vicceset 1.;:
beírhat, aminek semmi köze aZ életkorhoz..

Mi :lmnoon nyih~n nl 57.eretnénk. ha az élelkon "gy sz!im form1jjb.~n kapn:lnk meg,


m;\'el:lz "g)"értelmUbb, mmt:l szövegC& forma_ (A 24 énékCl például mmk"m C5:lk
:a 24 formában adhat juk meg, míg szövegkenI an80lul beirhatjuk a twenty-four.
a t_ntoy four, a Twentoyfour és a 'l\renty Four ka/'3.kter!:lncot i5, 6 igy tov;'ib/),)
AszimokaI r:I:ut\SlJI n1.1tcmatikai sz:imit:i.sol<ban is felhaszrrllhatjuk, míg a karakter!;1n,
ookal nem,
12. Ó!lI • A ~ adIItr:lIt 'mém.. l263
Még h.. blt.losítiuk j. valahogy, hogy ~ felhasználó CS3k s:clmot írhasson be "It.'tkorkfm,
akkor is kaphatunk "'vén}1elen értékel, A ·),456,354 .14 159. a 750 vagy a 0,576
péld!iul éTvmycs s:clmok. de élctkotn:lk m..'111 dfogadhat6l<.

A bemenetellen6rzés fajtái
Az éJetkor mcz6vel bpcsobtban emlileu problém:lkbóll:lthat6, hogya bemenetel.
többféle nempomból is ellenőrizni kell. Annak viZ5glilata, hogya felh.l51.rrl16 bein-.e
valJmilyen .. nékel a mez6be. ilIeI'-e hogy az én(:k $;dm-e, egyar:lnt ~ bcment.1ellen6r-
~ körtbe tartozik. de a k<.-n6 ~s-m~s megoldast ig"nyel.

A bemene!elJen6rzb különböz6 faf!.1it öl. CIlOponbo. .sorolhatjuk. Ezeket vlzsgJiljuk meg


n alábbiakban

A kött1ez6 mezók kitöltásének ellan6rzésa


A bcmenel cl1cn6nbének el56 fajt.'ija a 1«iwIezt5 me.z611 t'lle1HJrzésl.', amelynek sornn
azt vizsgáljuk, hogy egy ~c1011 mez6be beín-e vabmilyen értéket 3 felhasznil6.
Egy e-kere;keclelmi ,,'ebhelyen például a rendelé.';j űrlap kitöItbekor kötelez6 megadni
3 ,úllithi cimhez unoző uton ..... ti hizsz1im, ,'jros. ~lIam (megye) és ir:lnyítÓliúm
mez6kel, miközben mti. mez6k (például a rendeléshez fűzött megil'gyzéseIU kitöltése
nem fdtétJcn(l] 5zilkséges.

Aroloon ft mbhelyeken, amelyek Iehet6vé teszik I feJhasznil6knak, hogy saját


fióbJt hOmIn.ak létre, többnYire számos köteleZD melÖt talMook a blljelentkezési
iírtapon. Ilyen rnIZÓ IeIlet pel~ az ,·maiI elm, az életkor, a nem, és igy tovább.

A stims:reru adatobt dTÓ 1TIe7.6k eset"bo:n gy.. kr.m \':tl6OOn stiml'öl.. és "",rn ;lnrt:lk
szöveges v:iltOZ:H;ira "an szilksl-gilnk Amikor példlul a felhasznilÓl61 .. szG!e1"_<, hÍ.'!
khjilk, ;ili;lUban "gy m'gy stimjCgyÚ számot \":Írunk (például 19?B), nem f>"dig
egy kar.. ktcrUnc:ot ("Ninet een "event y eil/ht·).

A7. ember termésZete$ nyelvü megfogalmaúW:In gondolkodik, ~ .sz.1mít6gépprogramok


~zonban adatokkal dolgoznak. ezéTt lényeges. hogy ~ felhasználó ~Ital beÍltakat II megfe-
lel6 adattípusrJ alakítsuk.
A bemenet tartoményénak ellen6rzése

Egye,; stilm;,dtlok esetében lényeges. hogyabeviII szám L'g}' ad<J(1 ""ékl~no.mnyOO


essen Ha a fdhaszn:il6tól pél<Uul az életkornl k&iOk, val6:.zinffieg egy O és 150 közötti
wmOl v.írunk,

Ósszehasonlft6 ellen6rzés

A sz.1mbevildl g)'akran VilSgáljik összciL:o.sonJit6 ellenőn~1 is. Ib:l fdha=>ilÓl


pél<Uul ami k~ük , hogy irja be a fizetését, rflC"g kell néiUlünk , hogy a kapoll szám
nagy<Jbb..., nul1án:il (vagy !eg:tI~!Jb e/O'enJ6-e nuIl1\'a1),

Az is előfordulhat hogy két " ... z6 wtulmál szertménk 6ssz......etni. PNdakénl gondoljunk
arra, amikOf a fdhaszlÚl6t61 az éI'es jövedelmo!'t kcrdcuil k, majd egy máo;;ik mcz6ben
az hes adója Ö/;.Qegtt, Az adó nyilv.ín nelll lehetlöbb, 'nint a Idp iövedck.~n, lehál
&ZÜkstges lehet aruuk ellen6akse. hogy az utóbbi mezőbe a feJhaS7.náló klsdJb szánlOl
in-t:', mint az els6be,

Mintaelleo6rzBs
A braklerl1n«>k esetl'ben is el6fordulhal, hogy egy adou fOfTlljtumú ~z1kegct v.ínlTlk..
Ha a felha:\znjl6nak péld~ul :I Idefonsz:l.m~h kell belmia, :I kapOl1 adatOl az al~bbi
fOfTlljban kl'rhetjuk (minden X helyén egy-.egy számjegy áll), I XXlI l XXJ( - XllXX

A telefomzám I~tasen mik fonnában _ például xxx · xxx -xxxx - is megiKllat6,


de il több étvényes lonnétummal fendelkelll adatokill célszllni mindi9 azonos fotmáturn-
ban I"ÖglitBfli, men !gy kömyebb kllrllsni k5zöttfik. Ha a webhelyiink látogilloo61 elké~ük
a telelonszámukat és azollOS formátumban rőlllitjuk azokat, sokkal könnyebb például
megtalálni köztük az iIZOIlOS köml!számúakat mintha minóoo telefonSlámot més·mlk
alakb,," tárolnW. lA kőrretSlMn il telefonszám alsó három számjagye.)

AfelhaS2llál6i adatok ellen6rzése az ASP.NEl oldalakon


Az ASP,NET oldalakon - ~",int "ZI m~r nyilvjn kil:!.Ij,!tuk - a bemenet ell=6rl~
webes ve.wrlők segílSég(:o.·cliÖl1l'nik. A ~!T>Cf1et v(zsgá\at.1r~ S-lolgáló \'czI!rl6ket
dleuón:6 lY.'Z<'rlókncll hívju k,

F.b!;Jt,n a leckó:ben négy fajt:l ellen6rz6 \'crerl61 istTK:rltetünk meg, amdyekct a 12.1. !:Il:>-
lát.atban l«'OIrunk fel A I,sclban szerepl6 \'ezMISk nundegyike egy-egy szempontból
(1:!5d fentebb) dJen6nJ~, berrnetl<.'\t'1
12. 6nI • A f8I:IaZn6I6i lIdItOk Ili I5rzhl 1265

1Z.1. g"!!", AZ ASP.\FTrU....ónrS •......w

,
sonlí!6 ellen6rd.-s rnez6be bin ad~( ki~.
nagyobb-<:. kisebb vagy egyen-
16-e, nagyobl) vagy egyenJó.t:,
vagy nem egyenJ6-e egy :íllandó
~nl'kk<'l vagy egy m.1sik mez6be
bein l'nl'kkel. Ad:mipus..dknőr-

esik...,.
RegularExpressionValidator Minraellen6rzés A:ZI viz.sg:ilp., hogy az adon
lmr:lkter!ánc illeszkedik...,
t'!!Y megadott min~ra.

A következőkben a fent említet( dlen6rz6 vezl'rl6k mindegyiktt részletesen t:írgy:lljuk.


Megmo,zzűk. hogyan adhat juk őket egy ASI'NI:.T oldalhru.. tlO8Y"dn haúrozhatjuk meg.
melyik mev5t kell elleo6rizniilk. és hogyan ~lIapíthatJuk mes, hogy a fdhaszn:ll6 ájul
be>~n adat megfelel .... ~ követelményeknek. Az egye:> vezérl6k i5rnenelése után am is
mUlatunk cg)' p<'ldát, hogy mikl'm ha.W1~lhalUnk többfl'le eUen6rz6 vezl'rl6t egy~1lcn
ASP.NI:.T oldalon.

ASP.NEr oldal az ellen6rz6 vezérl6k bemutatására


"!lel6tt r.ltt'ml'nk az ellen6nő "ezl'rl6k h;tSznábt~Mk bemut:,t~ra. hozzunk lé"lre egy
ASP.~'"ET weboltblt. amelyre a fejel.ct pl'ldáiban támamodh.:nunk Az oldalon a
következ6 adatokat kell ÖSSleg)lÚjtenünk a felhaszn~I6t6l;

• Név (Namef - ez kötelező meZő.


• 8etkDf (Agel -Száméntkll mező. amelynek énl'ke O k ISO közl' kelJ essen.
• Ttlrslldalombillosltt\si szám (Social Security Number, SS NI- KaraklerUnc
~;o;N-NN-NNNN fomúrumban. ahol az N egy számjegy.
• Gyermel:ek IiÚ!ma iNumbef of clriidrenf - Énéke Ovagy több lelK'!..
• Fiúgyermekek száma (Number of male clliklranf - Ennek az &ttk.. is O ' ..gy egy anmil
nagyobb 5úm lehel. de kisebbnek kell lennie az &szes gyermek w.ron:il vagy
egyenl6nek nu!'
KezdiOk \eh~t ~z;\al, hogy lél.rehozunk egy új ASP.:>:!:' webokbl! V"lid<!tlonConuol-
~.tll<!ld. upx néven. Adjunk:lz oldalhoz öt T",XlUo" \"e7.é1161, alJl('lyekbe a felhasz-
n.iló beírh:llja majd:l szükségel' adatokat. Mmden srovegmeM előu adjuk meg a metó
leir1sál. péJd:luJ így, 'tour name, (Az ön neve,), 'tour "II'" (Az ön életkorn), S<x:ial
Secudty number, ~ ön t:1=daJombiZl<.l5ílisi súnlllo) Slh. Az öl TenBo.. vezérlő és
~ kim címkék hoU:iadasa utjn:l Visual \xéb IX'"\'eloperben ,,,Jam; oIya""il ken
látnunk, min! a 12.1 ~br:tn

_ _ .. _ 0
_ .. _ _ 0 -• -
- - 12.1. in
,...,. Q/tWl (ji nrJt"8m<!1;(i1~~ és
....W.I< lei.-á$dmJ

M06I. hogy a szükséges szövegmezőket aZ oldalhol adtuk. állítsuk be ezeknek


a "ezérl6knek az ID t\lJajdon~gj!. Az első szövf"gmez6 3wnosít6j... legyen TlI!IIIIe •
... r1t1.sodiké age. a h~m1:ldiké SBn. a rn'"gyediké totalChildren. 31. Ölödikt pedig
ll\aleChildren. Az age. totalChildren és maleChildren mez6k Columns
lulajdons:lgjl ~JJílSUk 4·U".

Ez után helyezzünk.:sy gombot al öl TextBo.. vezé11ő ... !~. 6 áUílSuk az IIllUlatdonsi-


gjt btnSubllit-rJ. a Text tubtdOn!o;igjt pedig CHet M<,,-re. Végill .djunk egy reBuit a
:l.ZOI105ít6jll ubel vezérlŐi az oldal hoz. ~ Bunon ,.:zérl6 ~l~. A képernyőn e kkor
olyasmil keU l~tnunk. mim:l. 12.2. ~bcln.

Ki is pr6bálhaljuk n)()!;! a Valldollt1oncontrolTeSt~,lIspx oldalt (n ASP.I'oTI oIcLd


3 böngész6ben a 12.7. ábcln lálható). Ha belö!tÖ!tük:lz oldalt a böngésWnkbe. írjunk
be .. nékekel az egyes mez6kbe. Mi"eJ a bernen"'-et még nem eJlen6rizzük. komolytalan
inform:íci6k31;'; megadhatunk b:lrmelyik mezőben.

Ahogy !Iamarosan létni logjuk,lIa az ASP.NEl eReOÓlIÓ vezéflóinek.!lasmálatal:or


a követelményeket megsétt1i adatot Irook be evv adott mezőbe, azonnal megjelenik
egy figyelmeltetk.

MOSl, hogy eJkktilellük aZ ASP.NET oldalI, amelyhez ell~ vez&lőkt."l fogunk 3dni,
mcg.smcrlcedhetünk n <:mlílCU ,..,lérlőkkeJ, köz(llük is először a R"'lu,redField\'alid:I.IOT
velérl6veL
12. 6rI • AfeIWmj6j Dtok elero6Réle 1267

.

~

--
• ..

12.2. ábra
&J{;1Ii1otw" a s:Vt'W'
n'l'%dk lulajikmságalt.
és az oIdalhc.z' adIUJJ"
Qt)' gombot 15

A RequiredFieldValidator vezértó
Amikor II felllaSZruilóIDl adatbeviteit várunk. a ~ kl'!. típusba soroIh:Uó, körelez6cn
megadandó é5 nem kÖlclez6 adatok. A kÖlelez6 mcz& oI}':In n"'7.6k, amelyeket
II felh.,szn~l6n.lk mü/(h."'~1 ki kclltöltenie, míg 3 nem k(l[ck7.6 mez& e:>eItben
a felha$ZIilló eldöntht.'Ii. hogy meg kívánta-e adni ~Z infOllJ);\cj6l vagy sem. Azt, hogy
a kÖlelez6 1flC7.6kbe beínak-e valanulyen adatOl, a RequiredFicldVaJidator vezérl6
segí~1 ellcn6rizheljük.

RequiredFieldV;lIidator ve71:rl6t úgy 3dhatunk egy ASP.NET oldalhoz. hogy II vezérlŐI


egyszcnkn az OJdaJr-d húzzuk::t Toolbox palctt:'ir6l. ahogy ~ többi webe:<; "ezérI6
esc\.í-bcn is tetl(lk. Húzzunk Ieldt lTIOSl egy Require<lFj('ldVali<lator vezérlŐI. aZ okbl ...~
II lClVCzőben. b heJycuük el jobbra aZ első T<!XIBolC vezérlót61 .

.....

~_ ...
·.·_IoII1.-.I~·
_----_ .~~
....

I"~--' ...- _.0 _•••. .·


't' _ . - ..

_.._-- .--•
..., • - • 12.3. ábra
Az ASP.NIoT cldtll

- ~ ,,0 " 1?<'lfIJ/""IFiddt 'al/dll/or


,.,urio hontlt.drJsa u/(i ..
Z68 IILrMZ • FeIJam6IÓi adItOIr. "'''tgyIlpbl nltklollgo ....

Az ellen6ml 'o'1Uér\öket a Toolbo~ paletta Validation csoportjában találjlJ;..

Ha 3 vezérl6t elhelyeztOk az oldalon, ~ lervez6 ablaIcinak Ogy kell kinéznie. nUIIl


a [2.3. lbcill. lU, 3 könyvbell le....~ képen nem !:llJjzik. 3 RequiredFieldVal1elator
w.övell piros betűkkel jelellik meg.

Az elle06m1 vezár16 által vizsgá~ vezérl6 meghatáromsa


Az ellen6rz6 ,·el.érl6k egy adott lx'm<'''''Jj 't'zérló elle06rz(,sére swlgil[\;lk. 8emeneli
vcZ{'fl6 31~1l ~wkat ól webes vedrl6kct (pl'lillul a TcxtBox ,-.,zenő() <'njilk, amelyekbe
a fclhaswill6nak valamilyen énl'ket kell beirni.

Minden ellen6rz6 vczbl6nek van egy Control ToYal lelne neVU tulaj<;lon.$á&". amely
mcgh.1t~lUZ.Z:l. hogy aZ cllen6rz6 \'ezérl6 melyik vezo..<rl61 v;l:5gálja. Például mivel
3 YalidationControlTeatBed.aapx oIWlon azt szerctnblk. hogy a felhau.n!i16 bcína
.. nevfl, az oIdalho .... ,.doll els6 RcquirodFiddValidalor vcz(:rl6 ControlToYalld,,1Oe
rula;donság:l13 name azonosít6jO v<.'Zérl6re kell illlit:lflunk.

Jegyezzük meg, hog)' az ASI'.NET oldahlkhoz aclolt ellen6rz6 vezérl6k mindegyike


csupin "ID'-'llen bemeoc'ti veZl':rl6t viz.sg:lJ. A val1clationControlTeatBed.allpx
oldalon Idrom kÖlelez6 mez/'ink (n~, (:letkor (:s társadalombinosiLÍ$; sz1m) \':In,
ezén három R~'<IuiredfieldValidator vezérlőre lew. szl1k:;égOnk.

Eg)'el6re teg)iink úgy, muuh:! aZ egyetlen kötelez6 mez6 a ........ lenne. l:!; az oldalhoz
.{loIt RcqutredFoeld\':IJidat<>r \'ezffió ControlToYaUdau tubj<k>nsii~t állítsuk na.e-re.
Ezt úgy tehetjíik n....g, hogy ~ R"'luiredFieldV:iliOOtor velérl6re kattintunk, hogy betöl15ök
~ lulajdon.s;lgait a Properties ablakba. majd kivál:lsztjuk a Connol ToYal iclate tul:1idoo·
>ágat. és ~ mcgjekn6Icnyil61isl:'iból, .. nely n oIo:blon utl.:lIhat6 különböző webes
\'ezb16kel 5OI'OIjól fel (12.4. ábra), a rtame-el '":ihlsztjuk.

12.4. in
t "/assz,d. ~ ti R<"I"irnJFie/dI)'lldmor
álUlI .oJk:nörlumdó ,,,,,,éri&
116r1 • AfIIlamoi6i .... ' . .. 12&1

Egy fonl06 r'8}'elnleZletés: ha 3 ""tr< lToVal ,date tul'I~go( egy:odon \"t'u,l6ie


illil/uk. nujd 3ntl:l.k aZOllOSilój:i1 módositjuk. III ASP.NL'T oldal ~ \':1.16 belölt ... •
""kor 11I!Y.IQzenetet k~punk (i:1si:1 ~ 12.5, ~brát), Ennek a~ n oka, hogy az ellen6rW
"e«rl6k Control ToVa l idat. LulJjdoru.;iga nem frissQl aUI()lllalikus:in, ~mikor rnegv.ll·
lO2\.;I"uk az ~ltaluk viZ$gil\ ve7.éri6k I D tubj<:lon.sjg:ll. El<:tt ha t'8Y yezérl6 3ZOOO11ittIjJt
uuUn m6d0sítjuk. hOSY ellen6rzó ,·eztrk'5IIet \"cttilnk fcl az oIdalr:t, nundiS elk:n6ri1.lOk.
hogy a Control Tl>Vat idaU lubj<:lon.sjgok a Jl'X'8l"cleló "t'~ aktuális aZOl'lOSllOj;lI
u(t;llmau.ik~.

, .. _---
-
..-ver Error in It:haot... 12' Ai leIIt,on.
• •

lJIIHoIIlI> _ COfItrO/ ld . _ . ..,-,./tUd ~r lIN 12.5. an


On_____ _
"OwIrroIT.w._·
;_" ___On_"_'_._
,I .. _ _
_ft)' or ~_"ftI""kfII._1 Ilo .u-..a.:.:&t6 <~
COfllrolTo I Q/j{ja,..
IUlaJdonsA8áI MI)...v..ul
-~~::::;::::::::;==:-=:._=.:.:"---_._--
1-:-' dlJiljult bt!. hlbtlll1:_
- Itapo",1t

Al. ifvénytolen bemenet osetén


megjeIenItend6 hibaüzonet moghatározjsa
A. nt r< lToVahdat .. tulajdonság II1t'IJt'Il nunden ell~ ~"t'zéri6nc-k van
t'S)' Err<)~Me ..age tubjdonsága i!I 12. 3 k:u"k,ffi:ino:: tn(-kl'l tuLajdorujg talUlnuzu
azt a SZÖ\~, amelyt't mes uerc:lnénk pelenileTlI, I... a fdh"S2n:Í16 ~ltaJ meWlOOtI adu
nem felel meg II k6vetelmmyeknek A 5zövegnck cfls1.enl egy olpn 1'Ő\',d leir.hlUk
It-nnte. amely elmagyariu". hogy mi a problkna a bel lit adatl:lJ. és hog\, mit kdltennt
a hll» kijavitisa (:rdcktbcn

A RequiredFicld\'aliWtor eset(:ben p(:ldí.ul az BrmrM... U<H' wbjdon$:iROlll ·V.l •


• lly-n "'rt"'k.. t aoeg k.. ll adnia aE X ... z6bef,· $ZÖ\'egrc: érdm1a állit.lm. ahol III
0J( anIUk a mc:rooek a nc:>'c. amel)"~ kÖlclez6 k1lóllem.,u ItnorKett .... ge Mékekénl;
g)':I.kr:m:ldn:i.k meg eg)' csillllgot 1S:.Klk "....-bhetyefl Lilh:l!Juk, hogy a köldez6
I'Irbpm<.'z6ket csillagok jc:1~,k,

A V.l idationControlTe.tlled. up" okblon elhd~'t'ZCI1 Rl"<;tU,redFicld\'alltL1tOf


l'ezérl6 Brror_ •• ge IU1ajdons:1~t ::illiISuk a YOU lIIU.t provide your name
(Meg kell adnia a rn.'\'1!l) szövegl't'. Miután eu !:tcinuk. a tt.Iqu,troFleld\':Ilidator ft:lir.l1~
a ter."ez6ben az Új ErrorMe '4g...-bttkre \'liltozik (liMl a 12.6. il;rit}
_... _-_ ...
.......
.-2 --~ , ..
>ol il ... .itA. ~ _ ..:...
.. ...."" ...
~ '''--'' ,
r__ r " _~_,..

.-
,; ':" ~::!'"~.• ~..:~

.. ._..
r_ ... .-
~-~

_..__
. , ~

.---- .---.-.
'

.-
12.6. 6bn

, -
,~..w
.~'"

...;,:~ '~ _.
, , .... _'.--
, tlluquirot!FieldlallMI()('
Erro..-.l/<'SSIlg<! IUk'jJrm-
«Igá'Ull! bOOlIi/1Isa "uh,

Az ASP,NEr oldal ~pr6b~és.


MOSI. hogy l1>egadruk "- Control1'ovalidate 6; ErrOOIl'U"II" lulajdons:igoka(,
~ R<..quiredfidd\'alklalor flg)'ellneVeli a felh:u;wál6t. ha elfelejt VlIlamilyen értékel beírni
3 naJlll! mez6be. Ennek k/pr6I»l~ooz löI~k be a VlJlid8tlonControlTestBed.lJspx
oldalI ~ IXlongésWnkbc A weboldalt az első belölléskor a 12,7. ~bra mUlatja. Megfigyel·
hetj11k, 1K:>gY az oldal böngész6lx.-n l:'ilhaló k(1JC Jl61úlcg dll'r "- lervez60ffi Illoa6l ,

__
a RequiredF~ldValklalor vezér16 ugyarus nem jek.-nik meg .

._- _..
........
. ': .:_r
....

- •

._-
.! -
_.._- 12.7, libni

.- .".,-
A lal/d<lI/onConrrol7'es/8eJ,aspx
uWoú1n1 tIZ l'ISV be!lJI/éslror

\105l kmunl.$unk a Chd< Me l(OOIM allé/klll. hogy bámtil}'erl SZÖ\-'t'get írnánk a name
mcz6bc. Mi lÖ1téflik? Ha olyan böngé>z6t haSZIÚlunk, amdy támogaliJ aZ ügyféloldlh
parnna;kódo!<al (lényegében minOC"fl újatJb böngf5z6 ilyen). a gomb llIegnyomiSol nem
killd; cl:lZ arlapot. hanem előh,,;,,- a You ....st pnwide your name (Izenetet "- névmez6
l2.ln-AW 4i6i ...... nl .. f ll m

mellett. Ha ezzel a k~ nem r=deIkeUI ~ v.m (.-agy kiJtapcsoltuk


benne az Ogyf801ddi par.mcsf111ok Iimoga~t), a ifO!T1bra való lattintáss:.! eUrilldJuk
az llr1apot, de a ~zacs;uolúkOf ugpnúgy megJelenik az emlitett ~.eg a Iltvmez6
n~llett.

A 12.8. ~001n aZl ~thaliuk. hogyan f<:5l" v.lidat1onControlTeatBed."llx oldd. ha


nem lrunk be semmit a ..... mez6be, b a aKlc Me gombrll laninnmk.

~ _0- _o..
..... -- ... . -~

..) O r ; .. - - 0

__J_
-' '-- J
12.1. "
A .... _~"'*"
~Ur .. lilu "'WI' pro..úM
your _ _ ~

Most ITJunk be valamit a ntYme:zt'lbe, m:.ljd kattintsUnk egy misi}( me:z6 bel~, hogy
~tvJgyOk ni a f6ku5Z!. lb olyan böngbZŐ!: hasUl1lunk. amely ~mogatj:l. ezt a szolgilta·
1Jst, a szln.-eg beíd5:;r; ulJn a ntvmt'~ vaJO ellanml15 var1zs(ltés!"e eltQnteti a YOU
... at provide your _ O:renetet a mez6 mdl61. Ib bOngbz6nk nem rendelkezik
ezzel a k~, az l1:renet a ktpemyón m:.lrad. de ha a ebek Me gombn utun{\"l!
Úfl1' elkilldjük az llrbpot, az okbl újntöltésekor elulnik.

Ogyféloldali és kiSmIg6/ÓOIdIIi alan&lés


MIM viselkedik m1sk~ a hJ!xltlz:enct a haszn.11t bÖngbZ6t6I filgg6=' Nos azéft, men
az eIlcn6iz6 ,,-dio VeZérI6k ~i ~ alk:dmaZlUk azokban a bOngm&-
ben. amelyek timogatj1k el!l a ROIg;2.kaWL

A7.llg}'f&lldali el~n6zbt egy J;oVllScript-k6d haJlJ:l ,~, amely a feJha5mj}6 ,,'ebbön.


gbt6j&en fut. Amikor a felhaszn.116 ellauint egy 5Z6vegmez6b61, ,,,gy a TfdI btJJen1)'1lt
megnyomva h;OgYj;I el aZl, ez a JavaScript·k6<J eU....-.6n:l, hogy a mez6bm ml'g;ldoo lKbt
trv~ye&-e. Amennyiben az adll ttvénylden. az ügyf~loldali köd autOfTl;iltikusan megje-
lenlll u dlen&z6 vedM &rrorMeaa"!I" luLa~g:l.r'l:ik &tékt!.

Awk a bOngtSZ6k azonban. amelrdt nem Iimogarpk az Og)-íéloMb.li pattncsf1jlolw,


VlIgy kikapcsol~ bcnnllk ell a 1ehet65tgd, csak ~i ~ alkalrT\al.-
nak.. Ahogy a nevtb61 kua~ltu.tjuk, a kJszoIg1l6oIdali ellcr6zls1: a ,,'ebluswlgtlón fulÓ
kód hap;~ ,'tgn' - ezért nem IŰruk el" ~ <I You . . .t provide your na..
i1~, mlg nt kÖ\~6en~. hogy brinunk '':lIJ..rnil <I ~ SlÖ\'~~, CSlk <Ikkor.
<lrTUkor <I fetl~ újnkilldi n art.po:x.~, hogy:lZ i1zene'1 dtflnjön, at ASp.NET
ok:blruak '·ISSZ:iICSl.loU:!t kell kl'~~Vlie. ami a kor.ibbo osmereIeinknck megfcle-
16en:lZ oldal ujb6li Lr~ ~yeli a kiszolgil6r6l. Az uj kktrbntl a wrbkiswl·
IPJÓI'Urn6rti a bevJn 3datok:u , és meg1lJ..pftja, hogy azok megfddnclL:~" kó>'ctd~
n~'eknck

A l\a$ZnáIt böngéuót61 fiiogetlinül mindOfl.....00rz6 vezérl/l 'i&grehaft kiszolg6tóoklali


elen6nést. vagyis III íi9YféIOIdeIi panlocs"ilDklt timoQlltá bOngúz6k tH~ mind
~!f~. mIOd úgyIiWoIdIIi ,.mm IMhHk.. A kiszolg6lóoldlti ltIen&rÚre
lIllIft keN SOf lIkkOt il. ha II oldi] -w1iWnt ÚgYIéIOIdaIi eleni5rrist is WgrehIft. lI.t
IZ ut6bbil • !eiMn ~ ~ IMllIaIwt kerülni - csel:; kl kel kapclOÖ
• bCng&z6bIn • Jw.scnpt·tá\'IooItiIt

Az i1(O-f&llcbh elLrn6n.éS Jrgr6bb rI6n)~ <l1u$wIg.1l6okbli dlrnc'lrz&.sd s.:<'n'Iben:ll,


hogy <lZDrlfUIi "is5z:Ijd:té:ll: ad" fdl\:l$VlJJórlak, és nem i#nrel V>S$UCSIloUs!" ...-<:bki-
SZOIg1IOhOZ. u id6I; aka';l mrg a fl'lh.. ~Jórlak, killön&m lassú kapcsobt ~en

Al (igYIéIOIdaIi lile, ~UII kapcsolatban fnIe!OO$ elolvasni, Form ValidMlOtI ol!


!he C!iefK side dm(! ciUet a ht tp, , 1..--. aitepoint. "0141' art ic: le,
font1~v"l idation-el lent -aide efmen.

A bemenet élvényosségének ollenc5aása programból


Ahogy Uuuk. dég ~ be-~Uil:l.ru:lZ 1'111'1161'26 ,'I'Zérl6k Contr-ol'l\:lVal1date és
IrrorMe....... ruJ..jdons:igilil, és I'uk a \-ezfrl6k aulom:niJrusan fIgyelmeztetik a fd/\a5Z-
~l6t, h3 lO55Z formirumixln adon meg rgy .. <bUJI. De tqp':lln :!;Uapí(rul!~k meg
rgy prosroo.nom. hogy" brvul adrU:Jk megfddOdo:-a

A fl'l~16 11t:ol megadon adatQk;H ~hahlban feldolsmzuk; az rIŐ«i Ircktkbrn pStUul


egy ~l.áloghitel-It:olkuütomak. illetve egy 1~lömeg1lldex-kisZimít6 progr~mn:.lk adtuk
~I6k.a. Mmdkét péltUbafl m:iI!l'm:mlca! szimftásokat kellen ",'gezn\lnk ll! ~d:llokon.
llmel)'cket!~ nem "klunánk ,'égrelt:o~anl. ru.
a fdhaszn.1.IÓ ér\'ényt<.'lcn ad,-
wk~t adna mo:g.

Ahhoz.llOSYeg)' progr:omhlO moeg.1lt.pílha5Sllk. hogy II brmenI'! ~'én}~." PAQOa. I.-


Valid ruJ..;cIorLságot vi1sgá1Iwjuk mo:g, 12 a ruJ..;cJons::i.g csak akkor ad Vi5SZ:I Tnla
btCka, h:o:lZ ASP.r-."ET oId,1Qn [:II:IIh:lt6 IwUamctmJ; ClIm6rZ6 ,-emi6.:ul jelli. hogy
a I'lolú. t:onw:6 ~=étiO megfddG formirumU adatot tanalmu. ~Us ~':lI1. ru.
CSlk
Cg)-eUm 1I1Ut'iben., ~"tn)1e1rn adat t:oUlIl3tó, a P_o I.Valid át8te '/lIHIeL
12. 6ra • A ~..tatok dM16láu l 273

A tula~g hasznlilat:lnak szemlt'hetésére hru.zunk ll:tre egy C5eml:nykezel6t a


Bunon veztrl6nk Cli ck ~"*nrthe7. Emlékezzünk vissza: a Clic k ~ménrkezel6
minden alkalommal végrehajtódik. amikor a we~ űrlap elküldt5b'eI vissutcsalol:tst
k~deményezQnk. Az eseménykczcl6lt1:reoozásihoz egyszcrtkn k:lUinlSUnk duphin
" gombr~" lervező ~zetben, majd irjuk be a következ6 kódo! 3Z esemt'nykezeJ6
,-iúba,
rf P"qe . hV" l ltl then
A be.enet 'rv'nye.
~ •• ul t • . Text _ "In put i a v"ll" . "
llhe
Le-g81 .ibb a z egy ik "tlat ,hv~nyt .. len
re.ulti .Te x t _ ' t nput 1& d»not<lb> v .. litl . •

"" "
. . ...... ,_ ...... •
-.
O - ·O
.'.
.!l; (~
.....
--e
,---
" . "

---
t _ _ oI _
J
l

---- 0'::''''_
12.9. ibrI
Az .irlapol érr.'it.) .cIcrz
,.dmoi<lrt>l n)'ujlolltJlJ be

.....
l ,,~

0-' 0
-_ ... -
" '...... _

. .. ....
'~'_ " """

.!l i] ~,, - -e_· ..


_ -"

T_ _ ....
. "
l
-" .
---
-"''--
_.-
1"'..... 1
12.10. jin

.- - Az e/ktll(/«, r7tWp minden "JC%Óje


m.mp adalOlIOrlalm=
fu :lilfutjuk a kMx, Itthatjuk. hogy ha a Pag6. I.Val id tubjt.:lomlig &1tke True,
az Input. i . valid CA bemenet &vfnyes) $W\'egeI ~Ijilk meg, mb esetben viszonl.
32 Input 1. not v.lid IlZenete! CA be"otnet bvtn},elen). En a ~lket& mUl:llp.
:I 12.9. és 12.10. :libf:l. Az els6n a ValidltlonControlTeat6ed.llpl< oId:.ol akkor

~dUI6, ha a feJl~16llgy kIIldte el az Urbpot. hogy semnulYefl adatOl r>em tn a nk


~~. Megf~lhelJük, hogy az InpJt I. not v.lid Iltenet a ...'ebokblte!e)&\
jdenik meg. A 12. 10 :libf:l ugya...,a az ASp.!\'ET oldalt mutatja, miut:lin a klhaszn:lil6 beírt
\-abmit a n(:o,1nC~. ts újralcillli az GrbpOl.ln az Input b v.lld ütenet ~tó

fu az oldalt egy 01)= ~ tekintjük meg. amely t:limog.l1p. az ügyf&.kbli


parana;f.t~t. val65zínGleg r>em kIIldJleljuk el az GrlapOl addig, amig valamilyen értéke!
nem inunk a né-vmez&e. Ennek ob az, hogy az ellen6rz6 vezér\6k oIy~n ügyféloldali
kódol hozn~k l~ne, amely érvélT)1elen adatok esettn megakadoilyozza a ~tol:liSl.
Az ügyféloldali par~naf:liilok;tt timog:ltó ~ le~l nem fultatl1k le a klszolg;1ló-
oldali eliek e5Cn~,yke-zd6(, amíg a felh:Lsznjl6 &\~yes adatokat nem ad meg.

fu azt ~k, hogy nUI~ ke-.'és fen~16 ~enk i\g)'ÍaokbJi par:ilfICIf:lijlolw


nem Wnog:;itó ~'d, feimtridhet bentnink, hogy ~ ,-:m-e eg)'iI~
:I Palle.hV.lld tulajdonsig viZsgibi:lira a 8OIf1bCliekesembJyk~. No/;, igen:
mlndi,g elko6riUOk az oldal tn-~)~. mielc:itt fell\asznjl6 :liltal megadou adatokkal
'~zntnk mG\'deIcket. mefI a !"OISi\zindulatO felhaszn:U6k könny~ megkerillhetik
32 Ogyfl:loklali clleo6rztst. CA 12.9. ~br~ e1k!szit&éhez úgy :limtOltam be az Internet
Expk>mt, hogya http,llloc .. lhostdmetllltonhelykmtkezelje, ezén a böngész6
automatikusan megakad:lilyozta aJavaScripl-kOd fu~t, é Iehd.~ adon a visszaCS3-
toüsra akkor is, ha a n(:o,1nCz6 üres \'OIt.)

~ogIah-:&, mindig ha~nk,~ ~16okb1i elk>l6tz:6.1. a bOng6z.&ben


ing)= a renddkelt:5O.nl<ne bc>c:Won ügyftloklali e!len6nbl pedig tekinuük ktegbzí-
ttmdo:. Püggoetlenillan61, hogy a wd>helyOnkre lJtogatók milyen böngéZ6t ~lnak,
mindig \'i~ljuk meg aPaIIe. I1Vllid tulajdonsigot, mie!6tt mGveleteket v~znénk
~ bevin ~datokkal

Eddig ~k ~ Requ,rec!F..,ld":didator vezb16t, iller.-e :ilt:oUboIn az ellen6n6


\~%b1ők közös tul~Jdoru:ligai! é5 swlg:tltulsait. MleI&t 1lg)-eImOnket a!Obbi eUen6rz6
\'e7.bi6re forditarulnk, foglaljuk O!i.ue, mit ls t:onuhunlc eddig ezekKila \'ezbi6kr61,

El&zOr is, nunclen ellen6rz6 vezé-r16 eg)'etlen beviteli vezé-r\6t vizsgll, amelye!
a ControlTOv.l1date tulajdonslgban ha~rozhatunk meg, M~.sodsl.Of, \'\llamennyi
ellen6ro'): \'el~ van <'gy EnorHelS'1l6 lulajdons;1ga ls. amelyben U1 u Qtenetet
ad/l2tjuk meg, ame~ meg ~ jeleniteni, ha a \~h \'ClrI6 &vbl)'lekn
adatol. taiUlnuz. Ilal'TlUcbzor, az ~1I~n6rú5 mllkOclbe anól filgg, hogy a ~log;It6
milyen böng6l.Ő\"el ICkinti meg az oldalt. Ha a f~lhasuúló megf~1eI6 kfpess!ge:kk~l
fdvbl~zctl böngész6vd Mc~zlk, II kisl.018~16okb1l ~1Ien6l':1:é!I meUeu üsrféloldaU
eUen6rz6ire is 501" kerül. WgQl, progr:imból ugy ~Uaplthatjuk meg, hogy II fdhann,,16
;iltal beYin adatok rnegf~lel6ek.e, hogy megvizsg1ljuk II Palle. IeValid tubjdondsot.

A ComparaValidator vezérl6
A CompareVa!idatOl" v-e~ II fdhaszn116 :ittal nqadon énaet ~gy "llaOO6 b1&k~l
vagy ~gy misik be\it~1i mez6 b1ék~'d hasonlítja Oos$tt A ValidatlonContrQl·
,.. . tBed. upx oldalon példjul az utolsó kl'! mez6. amelyekben a gyermekde szim1I,
illetve II fiúgyermekek mndt kérdeuük. ad", =gjl arra. hogy a Compare'hlidator
v~zbi6\'el ÖSS2ehasonlílSUk az b1tkilket.

Az.. ouzes gYenne:IC ~Nk megadhira srolgjló mező értéke péld;\u! O vagy enr*1
nagyobb lehet. A fiú~kek sdrrdc kérde7.Ő met&e Ug}"::I.nez ~"0n2tkOZ1k. de ebben
II ~ emeIIetJ. nem SlCf"ePdhet nagyobb érték, mmt az ~l6z6 mez6ben.

Ellen6riuük eI6ször:ll. ~ 8)"ftIDek szirrdt. Húuunk C'8Y CompareV:dldalOl" v-elkric5t


II Toolbox paletL1r6l II terveKíbe, ts hdyeailk el k6zvetJenül a totalehi l~.n szöveg-
metó ut"n (Ibd a J2.1l ~br.iÚ.

"'"
........
.~
~~~
~t" ,~;
~_~
_-_ .... _---""
.-...
.. .- '

y .. _ ' -

_. 4-"
-_ot_I<
11.11. Mn

- ~-
'l)'Comps..llJJlM/W
.edrl6 hm.......d4 ' ..

"""
A CompareVallda.tOr tObbrtle 04szehuonlltbra képes. Megving;l.lhatja abemenetet,
hogy az kisebb vagy nagyobb-e egy adon értéknti, vagy egyerU6-e azzal, de an bt
mes tudja ~lIapltani, ha az adat nem egyenll5 egy adott érttldcd. A vtgrehaj[and6
OSQehasonl1W n~t az Opentor rula~ hatbozza meg.
276 1u. l'ÍI&l • r.lwszroMói eCIItOk ~ " ftIcWuo'.!

{\:r,Operato:" tubjdon.ság beállítisához kattintsunk arra a CompareValidator ve:rerl6re,


amelyiknek e21 a tulai~pt be S2eretnmk :illítani. így betölt jük a '"ererl6 tutaidon·
sigait a Properties ab/akba . Görgessünk n Operator tulajdon.sighoz, és kallintsunk
Iii; igy egy lenyíl61ista ;':Ienik meg, amelyben megtaUljuk a lulajdo~g VlIlaszlható
értéke.1. A lehetséges ö:sszehawnlltiwk a következ6\<,

o Equal o L.eU'l"han
o NotEqual o L.e&l"l'hanEquaL
o GreaterThan • Data'!'y~he<:k
o GreaterThanequal

MIvel most arról sze~nk meggyőződni, hogy az összes g)'ennek ~m~ mez6be bei"
énék {\ ,""gy annil ""g)'abb wm, az Operator !ulaj<;londgot 3 Gre"terThanEqu"
(nag)'Obb vagy egyenl6) énékre illitjuk.

Ha III: Operato:" tUIajdOn~ a D!lta'!'ypeCh..ck értékelIIdjuk., a CornpareVatidalor


csak akior 1!lÜlja éNényesllllk a vilsg6/t melÓbe bei" adatol, lia III: a meghatározott
adattlpusu. A O"taTyp<!Check mOv&let akior hasznos. lia mindenképpen agy adott
típusú értékel (pt!ldául egy datumol) várunk, de magi!! az értékel nem klv6njli vizsgákti
(PéId6Uj JlItfll ~teliük meg, hogy adáium 2005. ianUM l. utári legyen).

A:I. Operator tula;donság mellet! be k('J] :\lIítanunk a Type tutajdonsjgat is. Ez a tulaj-
~g ha~roZZ3 meg, hogy a bemene\nek milyen ad:ntipusba kell !anoznia. A Type
tulajdonság ug)':lnúgy:il Propenies ablakb:ln Mlt'I6 el. min! az Ope:rator tulajdonság,
és a következő értékek ~'iké1: veheti rel.

o String o D!lte
o Integer o C1Jrrency
• Double

Mivel a g)'ermekek ~ma mezőben tizedesjegy nélküli számé"éket szeretnénk kapni ,


a Ty.,.. rulai<Jonsigol az rnt~er értékre kell ~Uítanunk.

Eddig Idd! meghat1ronuk, hogy milren összeh:.lwnlíliSl: szeretnénk végezni, és hogy


a bemenetnek milyen adattIpusúnak ken lennie. Most az kövelkezik, hogy megadjuk
aZ! az értéket. amellyel a lm"z6be l" adalOl ÖSSZe kell hasonlítani. Et aZ énl'k lehet
egy áUandó, illewe egy !lÚ5ik mez6be hein énék is.

Mivel:azt szt'fCUlénk.l>OfW a gyem~kek Wima O vagy annil nag)'Obb Wim I~·en.


al összehasonliL-\s abl'jául a O ~11and6t rogjuk h~lni. Ezt (jgy adhat juk nl('g, hogy
a CompareValida!Of vczl-rl6 Valu~re tulajdons:lg;ll o·ra ~JJítjuk. Ennek a llllaj-
dons:\gnak a beállítása ul~n csak lInn~; van háltll., hogy beáUílSUk II ControlTOValidate
és az ErrorMeu"!le Iulajdoru;;\.gokat. A CQrnpareValidalor ~ totalChildren S2ÖVegme-
ző értl'ké1: fogj., vizsg;llni, ezért a ControL'l"oVal idate tulajdonsigot a totalChi lMen
61~kre kelJ :iJlí!:Ulunk. Az Errodl..... alle rulajdonságban ",hmilyen t::Ijékomló
üzenetei célszen'i ffiCgadni, például eZt: The rotal nUl!1ber of children .... n be a
...hol<! n~r gr ...u"r rh .. n o r equal ro Q CA gyermekek száma Ovagy egy ()"nil
nagyobb egé5;l WIm kell legyen). Az emJitetllulajdons:1gok bcl.llitása ut.!in a ktpemy6n

_ __ ._ __ ..
valami oI~1l.Smit kell látnunk, mint 3 12. 12. :lbrán.

"'''' ... .... ....


4·.J·,_WoII OA

, -...-r--
.. .-"

-- 12.12.6tn

.• ,
• -=. II ComP<'ro\ alfdtl/Ot'
goruJo.</todilt rr'"JI4,
IroSYn betill éné/c O
,~' I/..g)'obh /eg)""

MQI;I ki i5 pr6b:ilh:l\iuk a ComJXIreValiduor vererl6 maki.ldb&: töltSük be a vaU·


darionControl TestBed.IlSpx oldllt a böngésL6nkbe. Ha a 8y<mnekek száma
mez6be ~,...·~n},elen adatOl írunk, a The total number of children .... st be a .. hole
number great .... th .. n Or equal to O hiballzenetet kapiuk (lásd a 12.13. :lbril).

.....
. . ..... ---
),"', _ , . ,.. ,. ,~"


" ..... '.- -
f __ _
-
-.
e. •

,.- or_ ,
___
I ri

_
y ... _

....-
.. - . . .....
~_.I
, ........ _ .. _ _ ... -

.-
12.13.6tn
bU<I/J1c/err bcn"'I/ef~.
megje/ctlilr" m~ hihallzm.ef

Minden olyan ért~k. lmn nem egt'sz szám. nem O vagy rnlgyobb ()"nál. trvén}telen
bemendrlek min6sill. Ussunk néMny t*ldát:
218 111. r6sz • FIIIasmM6i ldItOk m!~." WdOIgO'.'

• Srou
• -4
• 3,456 Ca vessz6 miatt érv~ytelen)
• 3.14159

• 3456
·,
• O
• 45533

A gysllllsbk sz6már. C~ lehet fe1&6 korIétot beéllltarti, Bilonyosség{lal


18k~lelezheljiik például. hogy senkinek sio<:s S().tléltöbb ~e. A fels6 koriét
beállitáúhol adjunk még egy CompareValidatox ~zérlót III oldalhoz. állíts" lI1Ilak
OP"utor tulajdons.i~t slassThanEqual lkisebb vagy egyenl6) éné«.ra,
a v ... lu<>TOC~re tulajdonságot pe~ 50 ......
Ké! ComlW8Validatol' ~rif16 használata Ilety.n azt is megtehetjuk. hogy egyetlen
Rer>geValidatO!' vezérk'lt lIkaImazunk. Ezzel a v.zérl6vel ft követktl6 részben
ismetketlletilnk meg,

IblYqj<5, hogya felhaszn:i16 iln'setl hagyhatja a gyermekek "úma mez6t, ,.. ~ ha


a névmez6t kitölti, <k ebb<- a mel:6be 'lCffiITUl nem ir be. a Cikk Me gOmbr.I klonintbsal
elindltoU visszacsalOIh eredmffiyek~pen az ASP.l\'ET oldal a~ Input i8 v,,-Ucl
(A bemenet erv61yes) ilr.enelet fogja kiími. Ennek az a unul~8", hogy oak
a Requirrol'ieldValidatc:>r veZérlő biZlOllitja, hogy mindenk~ legyen bevitt éné:k
egy mez6ben. TdJ;i1 ha azt szeretnénk, hogy a feLltasmil6 feltétlenül megadjon v:dami·
Iyen étr!ket 3 gyermekek mma mezl5ben, chIlez a mez6höz 3 Compare\'aLidator meUetl
egy RequiredfleLdV:r.lidalor vezM6t is hOZZJ. keU kap<:SOlnunk. (A következő réSZb6I
megtudItatjuk, hogyan vizsg;1Lhatunk egyetle" vezl'rl6t több eLlenörz6 vezérLŐ\tel is,)

Kót m0z6 összehasonlftása a CompareValidator V9ZÓrl6 sOIIltsógóvol


Al: előző pr!Jdáb.an a Compan'V:r.lidator vezérlővel a ~... nnekek ~z:j~t egy ;il!andóval
(a O-val) hasonlítonuk össze. A felhaszn~1611131 bevitt adatokat azonban nem csak
~Lland6 r!nr!kekkel vethetfilk assze, hanem egy mbik bevitel! me:ző r!rtr!k~l is.
A fiógyermekck mma mez&<' belrandó adatn.ak ptltUul kisebbnek kelllenrue
az ÖIl'óles gy=k w1m;i~ (Vllgy legal1bbis egyenL6nek az oda befrt 5Úmmal),

Az 11landó alapjtn, illetve egy mbik mezl'l r!rtr!ke alap~n v!gtelt összeh:uonl1tb
kőzött csupin annyi a kOlönbsr!g, hogy az el56 esetben a CompareVaHdalOl'
VdueToCornpare tulalOO~g1ban adunk meg egy ;illandó r!rtr!ket:, míg a m1sodikban
nem 3 VelueToCompa.re tuLajdo~ghoz fordulunk, hanem 3 ControlToC~re
rulajdo~got ilJitjuk annak a beviteli vezl'rI6~k az azooosíl6j:1ra, amelyiknek
az ~rt~kéveL ooze "'eretnr!nk vetni a kapott adalot.
12. óf1 • A IaIJazn6I6IId11Dt aI& l6:áll 1279

PékL1nkban egy olyan CompareValkbtor veztrl6re \'an szilkstgOnk, amely biztosítja,


hogy a fiúgyermekek ~ma mez6bc' beín tntk kisebb \'liS)' egyenJ6 az W7.<:S gyermek
~ma mez6bc' beírt tnékkeL Kezdjük azzal, hogy a leIVcz6ben egy CompareValXbtor
vezéTl6t húzunlc az oldalra a Toolbox paletdtól, ts a 1M1lltChildren szöv"gmez6 mögé
helyezZilk. Ez udn illitsuk a CompareValidalor Control'l'OVillldate rubjdon.sigál
a .... leChildnn énékre, az Operator rulajdonsiga( LeaaThanEqual-ra, a TYPe-Ol
Inteqer-re, az E~rorMe ••"IJe-et a The number of .... 1.. children ""'Bt ba le •• th.,n
or equal to the n\lmho!r of total childnn (A fiúgyermekek wrNrllIk kisebbnek
kelJ lennie az &.<ize,; g)'ermek sd.mán:iJ ""g)' egyenlooek azzal) szövegre,
a Cont~ol 'l'oC~re tulajdon5ágot pedig tot.,lChildren-re. MJul:Ín beállítottuk

.-_ ... _.... _"" ....... _...


az emlitett öl. tulajdon~goI. a képemy6n olyasmit kelJ hlmunlc. mint a 12.14. ~br.1n_

"' ...
• ·--I-jlol" '~.lI_'.&
=,

.--
"o
--
--- -- 0_

-- -
o 12.14. tibni
A 100aIChi/d_,

"""'-
"8y eompare I 'aIilIator

ue:drl6l adt"""

MOS! néailk meg az ASP.l\'ET oldalt a böogé<Uiben Ha n &szes lJ)",nnek w=


mez6be a 4 tnéket írjuk, a fiúlJ)'ermekek Wrrul mez6bc'n pedig 8-at adunk meg, a 'I'he
nUl!lber of !Mle Children must be leas than or equal to the number of tot.,1
chi 1dren hibaQunet jelenik meg. de akkor is ezt hltjuk. illi a fiúgyennekek stiimak.ént
nem egkz számol: (hanem "gy olyan Wket, mint a SCOtt ""gy a 4.5) lrunk be.

Mi történik azonban akkor. ha n Ö5$u~ gyermek ~úma S, a flúgyerrru:kek sÚffill


mez6ben pedig a -2 érték szerepel? Kos, hibaüzenet nem jelenik meg. mivel a-2
kisebb, mint 5, IÚdúul a -2 egész wm.

lIZ.ilyen hi~k eUen úgy védekemcrtlnk, ha ugyanazt tesszük, mint az összes gyermek
mma mez6 esetében, egy újabb CompareValldator vezM6t adunk az oldalhoz, amely
azt ellen6rzi, hogy a fiúgyennekek sd.ma meUiben O vagy annál rutgyobb ~~k
szerepel-e. Húttunk teJút egy újabb CompareValidator veztrl6t a .... leChUdr .. n
~z6 nW 1&ez6 Compare\'ahcbtor \'e~ mögé. Enndc: a'~
a ControlToValiMt~ rubjdonsltp 1eg)"ttl . . leChildren. a 'fYPe IUbJdon$Itp
Int evet, n OPetato" IUbjdomJ.ga GCHt.rThanEqual. az EtrocM.... -o'·
tub,dond·
ga"nle number of _le children .... t be veHter t.han oc equal to O CA flu~
kd; wm;i nem lehet ~nál Josebb). a Valu.-roc.-pan tub~ga pedig Q.
A 12.1S. Jlrin iJth3tjuk. hogy:!n fest az oldal a Visual \\m o.,'·elope,i)ell
az úl Compare\'alid.:uor vezér\6 hol.Zbd.i$a ~ 1U13~8ainak bdllil:1$:O uL'ln

. . ...--'" ... - ..... -


.......
._--

12.15. an
A}lllg)........ e........ udmtl,
ItInIn8 ma6 ('/kt,~,.
s8tc::: <u" okW/J= "i/,,,"'-'
_o.
- mt'B <xr Co11I(xlro\,<,lldaror
,.-a
M,udn en ~ Compare\~lidator veUrl('k is a~ okblhot. adtuk, az ASp'\n okblon..dr
mclJiclcrnk egy hibaOzenel. tili a fellJaSVL11ó I"ICtptiv Wlimot ír bt a AÚg)"ffTIlCkek
$dma mez6be.

A RangeValidator vezé~6
AllOS)' az előző részben l~nuk, II CompareValkbtor veúr16 arról gondoskod,k, hogy
a bevin ~tk megfelel6en viszonyulJon egy Jllandóhoz vagy egy rrulsik bevitel!
vezér16be beiM ~tkhez. o., mi a helyzet akkor, h:i an $zeremtnk biztOliílanl, hogy
a bemenet egy adon 6ttklllnom1nyba essen:> Compare\'alkbtor vezér16b61 ekkor
kell6c kellene hasznilnunk, eg)T{ II I2rtOfNny al~ h:itlr.:linak elJe~
(Gruter'rhanEQual), egyet pedig a fels6 kort:1l vizsg:lbtlr.> (LUI11>anBqual).

Amennyiben a IlIltOfldny al.56 & feb6 h:il:1rMtke :lllandó. kél Comp;If~Vahdator


helyett ~lhatunk eg)'elJen IbngeV:.llidator veztr16t is. Enndc: a kJ~I:ls;1r.11
a ValldationControl,-,.nBe<! ... pa okblon:lX tletkor mero lŰnik II legalkalma·
abbnak, mivel ennek .!:nl'ke bnen1 hatirok (p8diul O ""'150) k~ kell tS/ien
12. 6ra • AlehSm6I6i lIdStOI; I"~II I ZSl

A RangeValidator vezér16 csak akkor használllilt6, ha a tartamátly als6 és lels6


határértéke egyltfánr állandó, Ezért nem használlat~ ezt a wlérl6t a fiú~rrnM;eII;
Slámánill eUen6rzáséra, a felsó korlátot uvyanis lll: ÖSSlIIS gyermek száma mez6be
berrt érték hat_oua meg.

Adjunk egy RangeVJlkbtor vez~ közvetlen aZ alle szövegmez6 ul~n (12.16. ibra) .

.... __ .... _----_ ..


.. . ' . lj ,II

,. .... _~_
-
... - .-
_ _o
_. 12.1 6.~
Ar ASP.I>IT vidal
<'8)' I«lnsel a/ldal'"
I,ezbú5 h~ uM"

Ahogy a többi ellen6n6 ''ezéM Q;etében tet\ük. most is be ken állítanunk a Cont-
rolToV"lidate 61 ErrorMelsalle tulajdonsigokal. Mivel az alle mez6be beírt i!:rtéket
kív::injuk vizs~lru. az ..16bbi &téke 1('S}'en "\Ie, mig u utóbbié Alle must be between
O "nd 150 (Az i!:letkor mez6ben egy O b 150 közötti szám "dIutó meg).

A CompareValidatorhoz m$OnJ6:0n a Range\'alid:uor vezér16nek is van egy Type tulaJ-


doll5ága. amely meg<ldja. hogy mil}'en adattípu5Únak kelJ lennie a bemen .. mek.
Mivel az életkor me:z6ben egy tizedesjegy nélkllli sz:1mot: s~reml'Tlk kapni. állítsuk
.. zt a tulajdonsigot Integer-re.

Most már csak annyi V,m hátra, hog)' megadjuk az életkor mezllOen elfogadható &tékek
lanorn;\ny1nak alsó 61 fels6 hatáclt. Erre a Rangev"lidator vezérlő M.. xt_V.. lue ts
Min1.mumValue tu13jc1oru:;igai szolgálnak. Mivel <'SY O ts 150 közötti 61éket szeretnénk
kapni, a Hax1mumvalue legyen 150. a Minl!1'tWaValue pedig O. Az említett rulajdonsi-
gok be;1l1ít1sa ul!in a képem)'Ón ölyasmit kell I:\munk, mim a 12. 17. ;ibr:ln.

Ha mo!u mcgnl'zzük a V.. lldationcontrolTeatBed.lIspX oldalt a bön#5Z6nkben,


láth:lliuk, hogy egy h,b;;tllzenet jelenik meg, hacgk nem hagyjuk ilre:sen az életkor
mezőt. vagy nern egy O és ISO kö~é es6 5Úmot adunk meg benne.
ml •. • . H 4I6IedMok~""""w f

n, •.•..• '._ .~ ....

• •

__ 4_-
_.. ... _---
---
,

_
""----_
!I._._-_
--
. . . . .
"'_ .._-_ .. __ _""
_- ~

- _._~

..

.- ..... ... ,
_.

12.17. Mn
lit" oldal .. R.o'W-1W/d<JIor lul.ojdollSÓ(!,.afnm. bI!d/J{ldstJ Ulón

A bemenet ellen6rzése a RegularExpressionValidator


vezér16 sagftségével
A felh2=dl6 ilt2J megaOoI:l aW.lolmak g)'lIkran egy adou fOlll1álumlJgn kdJ bU-lIliük.
Amikor a fdhuvdlólól p8:ti1ul 32 e-mail d~k&jOk . acimet ebben a form.tb:!n kell
beírni: egy vagy löbb bnú vagy súm, a kubc jel ( e). wn& egy vagy tObb bnú \';lgy
ulm, egy ponl , llletve alegfel!i6 szinhI unorNn~ (com. O<:'I,~, «lu. U$, uk, fr stb.)

A Vdida t ionControlT.nBed . u px oldalon a társadalomb1zwslwi n:imot kérjük ,


amely 32 EgyesOh ÁII:uooktxrn kileoc sz:imjeg)'b6I ill, és iluliban igy ~k­
ltXX - XlHOODt

Ha bIztositani ~, hogy egy k2taklm.tnc egy bizonyos form.trumot kOvessen,


a Regu13rExpra.sIonValidatOf ,~Zérl6I hastnaJhatjuk. Et a ,~egy szab4lyor
.wfojc:.tés~el Allapitja mrg. bogy a bemenet íllenkedik--e a megadoa mintán.
A Wlbilyos klfefezés egy olyan kankterlAnc. Imely kan luereket és k\llOnlege5 jeleket
Illl'!lllmaZ. és egy tlwinOlll mindI hadroz meg. Szerencsére ahhoz. hogy hannJlla$wk
a RegularExp!"e5$lonVaJkbtOl' vez!rl6l, nem kelJ tOk~lete5en jAnasnlk lenn(lnk a n:lb::l..
Iyos kifcjezbek nyelVlllruoban.
Szab6lyos kIftjtl6setetllimos ~ lbImalnIk. BlIÍrt fell:ítInW meg4ri
~ • ~ukat. A téma bIlVlbb kilejtbe azonban sajnos meg/IIIIdn6
könyvúnk mittit, IMr csa .mt is, mert I Viwal web oevtioper mmDS bHpkatl
szab6/yos kilejelbsel rflf'ldeiezik, amelyektt ""Ikül használhatunk,. ~gullll'-
ExprtssionVlIidl\of ~, hogy b6rmit il wdn6nk I SZabMYOS kiI.jtzHek

"""""'"
Hameo 1IZtQ~ 1JfUi. SabáIYOS ~ ~ OIVI$$Uk ti N An
Idrodudion 10 ~ b:p-1ISSIÖl!I(http" 1-... 4!11lyafroarolla .coal
webtech/090199-1 .aht..l l, .1\11 I CorI.hM ~ d ~ fxpttssiom
thttp,II-...4guyafroarolla. e_lwebtech 11~O'OO-1 . Iht..l l clmll
cikkHat. Ezen kMiI. htt p, II """,.regIXPl1b.cOQ/ clmen eqv kit..,.dlllIbi-
Iyosk~tjezft:-gyait'"*'vt i. talhllri;, ihM oivasgathstjuk a k616JSég leveleit.

Adjunk ~lút egy Regul~rExpresslonValicblor vez!rl61: az ASI'."U okblunkho~, amdy


gondoskodik rota , hogy a dtsadalombinO$íWi mm a megfdel<'l f~tumú legyen
Húzzuk:l \'eZff\6I: II Toolbox paletWól a ler.ez&bbkba, & helyezzOk el k6zvetlen(l)
III lan.w:n~ mOgötl (Ilsd I 1218. j!JdI).

. . ._4_r-
_...
.......
__ o_ 4 _ _ •• _ _ _ _ •

'!to_".. __.... __ ... _


_~

:=:....._=
'!to_ .... _ _ .. _ _ • __
~-
--
_
:::=:-
-
--- . -
_........ ..
12.11. iIn
lU" ASP.NU oldal tg)' Ikgular~ \'al/dmor verIrl4l1on:c1ndds<1 tUdn

Ez udn ~Jlil5Uk
a vez&\6 Cont r o11'ovalida t t tula~gil az BBn énélrn:, a hibaü-
zenet (ErrorMIl Ma&lIe) pedig legyen 'tour 10;;1,1 lecudty n~r IllUlt be in the
fOnalit lOtX-XX-XJtJ(Jl (A t1rsadaIombil1O$Íthi sdmot lOC(-XX-XXXX fomdban
kell megadni).
284 111. rá.z • flllM:znM6i ldItOk ~ " feIdoIp&'

Az emIf1ett kft tu13jdonság megad'isa ulin .mr csak a ValidationExpression tulaj-


~gOI kdJ bciJJítani: ez ha(~rozza meg aZ! a szabáJyoskifejczés-mintit, amelyre
a bevin ~cbln:lk ilJcszkednie kelL K,mintsunk a Val iclationExp.reasion tulajdonsigm,
hogy ~ jobb oIdal~n megjelenjen a három ponto( taJUllnuzó gomb, amelyre kattintVlI
megjeleníthel.jOk a Regular ~ÍOI'1 Editor p1~bl3kOl 02, 19. ~) .

....'" ""."~' ".,., 1"1 ,;;

12.19. '*n
A RPgu/ar Exptes</o" Ed/mr
párl>i=h/abl<1/tbo" _ ""'8"doIl
"" II <-I
.mbiiJy><Jd.fr}eU$-"",,1d1l ~iJ
,"tl/aut Mtu "Ir

II Regul~r Expression Editor ~rbeszédablakban szab:1lyos kifejeztseket tal~lunk.


amelyek közOl v~lasZlIt.3(unk, de saj;\t kifejezést is beírhalunk aValidltion Expression
(ellen6rl<'.i kifejezés) mezőbe. Mjyel most a tirsadalombiztosítási számot szeretnénk
ellen6rizni. götgessiink a U.S. Social Security Number lehel.őséghez. Ennek a lehet:65tg-
nek a kiválasztása uún a szabáJy06kifejezés-mirua megjelenik a V.. lidation Expressioo
mez<'.iben. Kanin~unk az OK gombra, hogy végJegesí!5Ük" RegularExpresskmValidator
vezérlő Va l ida t ionExprenion tulajdon$ág:inak be:íUíIásit.

Miután ezzel v~geztank. né1.zOk meg a VaUdationControlTeatBed .aspx oklah


a börtg6z6ben. Megflgyelhetjiik. hogy ha:l. úoodalombiZ!osítási s;.jmQI nem megfelelő
(teh~t nem három s;.jmjegy. kÖl6jel. két sz:;Imjegy. kötőjel. n~8Y száml"8Y) forndban
aditJk meg, hibaüzenet jelenik meg. f:n'ényes ú=dalombiztoo>itási sd.m lehet pél,jjul
~ kövctkem 123-45-6789.

Az. ellen6rz6 vezérl6k esztétikai tulajdonságai


Ahogy a Jcck~ben többször IS l~ttuk. amikor a felhaszmll6 tl'\61)llelen ~r1~kct ír oc,
a megfelel~ ellt'nőrz6 vezérlő Er rorMesg"lIe rulajdons:lg:\lxm megadott hiooilzenet
jelenik meg. Ez az ilzenet minden eddigi péld!iban piros be«l'kkel jelem meg, de
32 ellen6rz6' vezérlo%: esztétikai tulajdonsigait bcillic\'a ezen \o'iltoZ!atharunk.

Az. ellen&z6 vezérlo%: is ugyaruzokkal az e.Zt~;kai tulajdons!igokkal (B<lckColor.


BorderColor. BorderStyle. font stb) bírnak, mint 3 többi 1;\-"ebes vezérlő. de ezek
5Qf:IkieghzOl a Dhplay tulajdon.'i:iggal. ~mely ~ZI. h:lt~roz.za meg, hogy mikbIt
jelenJ"ll meg az SHorMeGug" hibaüzenet. A Diaplay rulajdons:1g a kÖ\'etkez6 h1rom
~"~k egyikét kaphatja,
• None
• Sut le (ez az al~pé"elmezés)
• Oynamic

A Nona átl:k.et vtlamva J hiw.OlCll<.'t nem jelenik meg, nll:g ~kkor sem. hól a (ell\ól5wl6
&\'61)tclen be.ile •.etet adon meg. Ha a Sutk bdl!i1J.s mellc:u dönlank,:az oldal akkor
is fer\flGlnj:l. a hib:lüzenet heI).{:t. ru. :az roo=m Uth:ltó. Ib azonb:oon a 01'"t'lay tula~­
go! a ~c tnl:l= tllilruk.:az dlenOrliS vezérlő hibaüzene\e CSlk akkor fogbl heI}'eI
uoldalon, ha!lOf" kerül allNk~.

A Static fs Dynamic bdJlíWok kÖ7iilti kü\6nbilo(:g W::mléltetés(:re hozzunk Il:tte egy oj


ASP mrr oldalt OynamicV.Stuic. aapx nhm, fs hd)'C'zziink. el raju qo"1llis alatt k~
TeXl.I3a:or vcztT1Ol. M.ndk~ :>I',ö\'cgmezO mőgl: Irjuk. a Thia text "weau right after
a text box (Ez a 5ZO\'cg köZ'·rt!enül egy SZÖ\.egmeztl mögöu ulálh;u6) iIZŐ\'Cget,
A 12.20. :ilrin Ulh:llfUk. hogy:ln keU ekkor ~ie a \'Isu:IJ Web I:le\eloperroek.

........ ---- ....... ---


n ••• , •• __ .~_~ ..... _~ ....

"
• - .:0--_ ...... -
--_......-
_..... _...._, -
1
--
12.20. jin
A '"'~ /flt r"",,,,,,, 'oai'rl6l tl(Jruldo az okkJ/JI()%

1\Ö\'elk.cztl J(:pbkl:nl;ll Tal80x \'C'ztrI6k ts a ~ kö~ húzzunk qo'..e-gy


Rcql.i1redF1CId\·alidator ,~z&16I:. (:s állilSUk azok ' ontrolToVOIlldate rubjdons:igit
a megfeleki szöo,'rgmelJ('l aronoosiI~ra,:az Enor14I.Ng" tula~8 értl:k.e pedig
legyen Thl. de.on.trata~ the dl ffeu'lIcel bo!it~ StatiC "nd Oyn.uo.lc Dltphy
(A >!lililrus és dimurukus onegjelmítfs kÖZÖltl killön~ $ZCfTl1(:jlelbe). Ez u1J.n ~lIítsuk
~z c8)'ok RequiredFiddValid:uOf Dhpllily lula~git Oynam.ic-ra,;t máslkl:l pediS
hagyjuk. a SUt!c &tl:k.cn

Wgül hú:uunk egy 81.111on \'C'z~ mmdkok !W)I'cgmelJ('l al:I. A k~)'6n ckkor
oIpsmit kelIlá(llunk, monl a 12_21 ~brin
286 1U. r6sz • FeI1eIZn6I6i lCIItOk ~" fIIdoIO''''''

lZ.2UbnI
flt m.t. ilii R('(jUlrodFk/dll>/idalor ls surepe/

Most néuOk meg a DynMUc:VsStat ic ...... px oIddl a böngész6nkben. M.egfIgyt'lhe!jGk,


hogy az a Requill.'dFiddValid:uor vezérl6. amelynek 3 Display tulajdo~t Stat ic
~Mken ~'tUk. a sz.ö,.'egmez6t6l. 11vol jeleníti meg a This Ilppeara rig-ht a ft .. r
II t.xt tox szóvegeI. A kimatlldó hely a vererl6 hib;t(1zenel&;ek helye. A oynami c
megjodenítési bdllítisű R""luill.'dFíeldV:alídnor ve~r16 :aronOan kooe!lenGl:a 5~'·egme·
~ után jeleníti meg azemlile!l ~lŐ'\.eget. A:l. okblt a böngt:;Wben a 12.22. ~bra mutatja.

~._. ,., .. ~

""-_ ...
n. _ _ ....... _

12.22. ~
Az ares IenIW CIIIr.:I " RequlnldAddI'alld"lOr..,,-hI6; ,,1tU'I)~.n Dfsp/IJy mJajdonsOg<ll
St,,{k·,.,. állflonult

MOiSI kattintsunk:a webold:alon eJhel}'t'ttll gombtll. anélkGl. hogy Mm!it is ifJúnk


a szövegmez6kbe. Ezzel megjelenítjolk mindkét Requill.'dFieldValid:ator hibaüzenetét.
Az eredmfnyt:a 12.23. ~b~n 1~l.h:atÍ"k: aZ:a ReoquiredfieldValidnor vezérió. ame lynek
:a Di s"I IlY ruLajdons;\g;il:a Dynlllllic én:ékre AlJjtonuk. dinamikw.an jO/.>br.I CSÚ5l:l:atj:a
a Thh appea rs d (,lht a ft e r a t."t bo" uövcgel, hogy helye! csin!iJjon 3 hibaÜtt·
netnek
• - '-e

. - ..__...
_ _ . . _ _ tIOO ... _ ....
~'

~-_.~--

lZ.23. 1M:n
Az O/dtJI Q gombra lIall"'1d$ me;"~

vJ.n
• >óize. Bold MI).)

Egyéb ellenórz6 vezérl6k


Az C'I.lben at 6dban 1~1lO':dl négy dlcnőrn'l ".,WW'S mdlen ~ kl'!. clIen05n6 H'~érl6
lo!1ez,k. Az ,,156 a ~om\'JIKblor (~'éru dlcn6rtó). amely _ mIm,. ne\'" iJ mll(lllfil-
~. l~tÓ nzM<'.I, és amellyel,. bcmul..ltou~' ellcn6m5 \'ezm6lőI ekM:!
m6don v,ugiilh:oquk a fdl=zruiJó jl13] bevitt adnak:\!.

Tap;ln!lllatlim szennl lIronbl1n rit.k:1n ""n szOk,;('1I a ClI.'oIom"ahdator no:ren6


ha.nn~l actf1l: a bemUI:.101t négy "czénó :11{3Jiiban <'IegcndOnek bimnyul. Ha ml:g.s
a CU.MomValidator k;:'pe:$SégCll'e lenne szilkstgOnk. ol .....lSSUk el a Using Ih"
CUSlOm\'alidator Control dmü cikket a http:1 '."pnet . '1I1lY"fromroll ... , . ,
ar ol. ~')IOJ- _ .... px ClI1loe1l.
A rnas.ik ell~ő vezérlő, amdlyd nem FogblkoZlunk. a Valid:,tjonSumnu.ry. amely
klÍna n w.zei oly.ln. a ",'clx!ldalon nerepló ellenónó ve~rló Rrr orMeSSal:le tulai-
dons:1.8~t. amely (:n-énytelen bemene'le'l jele?.

A ValidatKll1Summary veléri6ról a ht t p , ! / ."."., ... 311ch 001 s _c om! aspnet /


contro l_vali da tion9.",....,ry .aep címet! olvashatunk b6vllbben.

Összefoglalás
Am,kor a Fclh.Jszn:'l16kt61 "wuokat kén1nk, általában lényeges. hogy ~ bevitt adatok
mcgfelelj(.-nek birooyos követelményeknek. Egye:; mezőket kÖldezó\-é lehetünk. nl.1s
meWkbcn wnlbtéket kövctelhelOnk meg. de az is elólordulhat. hogyabemenelnek
egy adOlt é-nl!knl!l kisebbnek kell lennie. kl!!. ~lIand6 értl!k közé kell eo;n,e, \":Igy
valamilyen mlnUr:I kell illesz.k:ednie (~Idául amikor egy EgyesOlt Államokbeli
irlnyit6.<;;clmot v1Irunk, an~lyn"k fom1lij:l XXXXX vagy XXXXX-XXXX lelll.'t, ~hol
minden X egy-egy wmjegyel jeleni)

A felha~zn:jI6i adatok megfdelő Fom1litum1in:>k bittosí1li"" a bemenelel!en6r-zb.


Az ol)"'ln koribbi lechnológl.'ikoon, mint ~1. ASI' b a PHP, a bcmeUel "Il~
nem voü egyw:ríl; a fqleszt6knek Sól~1t kódot kellen lmiuk elTe a cél",_ Az ASP.t\'ET-ben
azool:>an a külÖflböző ellenőrz6 ve~rl6knek ~hc:t6en nundez már a múlté_
Ebben a leckében ~gy ilyen \"ezé-rl6vel i.-;rnerkedhcttOnk meg: a RequiredfieldValidator,
a CompareVal;dator. a Rangc\'~lidalor b a RegularExpre..sionValidatCJr vezérl6\"eI

Ez a f<'i<'zet aZ utolsó volt azokruk a leckéknek J soclban. amclydcbcn a (cllU5Z.nálói


adatok összegyűjtésévd foglalkoztunk. A köve'lkt"ZŐ 6r:1.tóJ kezel .... fi8)'elmünket
az adatbál.isokkal \';116 munlcirJ forditjuk. IMir ncm 5:7.entelünk több ór.'it a rdl~1ói
~datok összc~1T~ésének. a könr... 11litrJ.le..-6 részét)!..." SZCft--plő pl'ldik oi'melyike ig~nyd
Felhasználói tJevitell, ezért famos, hogy m,,~k a tanultabt.

Kérdezz-felelek
K: Jll)isplay tulajdQ"uis",.k IlÓrom bcál/ítá.Ulle!tct ["olie. Sltlllc és Vpuwric_
.II Sltlllc 6" DJ7ramic bcQllr"rásoJl L"llágo.klk, de ml szrlks<'ge lehet Wirld"ck is
a Nolle énéltrc?
v: ~la egy cllcn6rzó vezérlő Display nrbjdonS>igjt a NoIle értékre ~lIitiuk,
az ErrorMesAag" tulajdc;>m:1gban megadott hilxrilzCTII.'t I!{)/ra nem jelemk meg.
filgget1enlll an6l, hogy a ,i~gált adat én'én)"eS-C. Jogos a kcrdés, hogy mi Wikseg
lehel elTe_
Az egyik ellen6n6 \~1.bi6. :.IlTleUyel fl('ffi r6z/ete;en dlbm
rogl~JkOZlunk
a fejezetben. 3 VJhdauonSllmnury. amel)' kJina n ~ oIran. a "ebokbJon
5Xerepl6 eJlen6rz6 \~1,!rt6 I::rro rMftua!l. tulatdonsá~l, amely ~I'\'énytclcn be-
menetel. jelez. H~ ~'5ZOI11 minden ellen6rz6 ~ez6i(,! Illegjeleníti :I saj:ll hlb:lüz,,-
lle1et. ts a \ ahwllonSumm:lry is kiírjo. azokal. akkor mondt:n hibaOzenet k(uzer
fog sze. epeLru;u: oIcblon, fútt a \';tli<btionSumm:ary v"zérl6 haSloo!at:lkor
qn't'S f~ t;, ~,_,.., :l.llil",k:.l többi dl~ \'e.ttrlc"l Di8pl,oy lUbJClon$;log1it.
Itog). 3 hlb:a~ OOIk a \ 'ólli<:blionSumm;ory ;elen.t5Oe nq.
Iv. II.rro """" U!I.. ;5:l1 Tex~ IUb~gokJcd:.lZ! is meglC'heIiOk. hogy u ellen-
órzó \=frI6IIe1ym, iIkt\."e:ll \'aIKbtionSunvn:lry.oen ~ hibaOzen!:l tclmim
mt'8. Hl! egy ~ "t'z!rt6nek mind a Tl xt . mind n !rro r~.uliI" tulajdon-
~IPI megadjuk, a \"ezl'r16 hel)'b> a Text ml:ke .,-un:pel majd. míg a7. Brror-
1ol ... S4lJe a VahdotlonSunulIary-b<: k.·ru) Ola n oJcbion '.In
ilyen \"czérl6). Te~t
a= is Iehet65tg(lnk ' .. n. hogy u Erro r Melugoe tubjdon.s:1glxin reszk.'teS leir.l'lt
~k a hibáról, mig a Text IUIa~gWn CSlk l'Ö\iden (akár CAk egy oill<lg-
g;.ol) ;elezzílk. hogy \'3bmi gond \'3n:;a bevtn :;acbnaJ,
1(; AmÜllQr ti !f'ih(l$Z>1d16 ti ml'8fekl<5 gombra IIDlttnl. az <!Iknlin6 L'f!Zht1
[('gr-ehajlJa az e1Jc7l<5~ Iródot, ~ qo' o{\WII Mfgse gombol elh<!I.lo.'Z,,1
azOÚfaloll. amdl're Mlltlm/w áwgorhaJó az elkt/6rrés?
v: A Bl.JttOfl, UnkBuuon b hl"l:l~BuUOfl webc5 \"ezMőI< egrar.ínt rendelkeznek
egy CauB"'lva l l o:Sa t !on neViI lubjdondggal, ~melynek alapbtelmcb..'1t bt~ke
True , Ha eZ! a tula;<.lonságol rilb ..... ~ ~lIilluk. ~ gombra lo.t1ÍntVll ~lugot'haquk
az eUen6r7l5 k6dot.

Ismét16 kérdések
I. Melyik IUb~got kell bdllíl:lnunk, hogy egy ellen6n6 '"ezérl6 egy adott
hiwOz"netet ;elenítsen meg, ha a bem .."ék l .... 'en)'t.,Ien?
2. I logyan befol~I~1 a Ol s pjllY tulajdons.íll al ellen6n6 vezérlői< h;b:lo1l~'n('t~­
nek megjelerlbéc?
3. sok ...ehhel)' lehel&"o!: tcszl ~ fellw.zrul6knak. hog)' r,6kokat llOZUr"l:lk It'lre,
H6k lélrehozás:lltor a felllaSlNJ6nak 1ilulában meg kell adnia egy jclsmt.
3metyet k~ keU beimi2. hogy az dgt'pdé5b6l eredő hib1lcl kilcUsn'\bOtfÜk
Tqnilk fd. hogy egy il)"cn ,,~h kdl eikeu,'enOnk. MeI)~k cilcno5rz6
\'eúr\6I: h:&sznilnJnk anrutk el~. hogy 3 k& 5ZÖ\egmez6beTt 3WO()1;
(:nék 5leI"epe1-cl
4, .A Corrtparc\l;ditblor \"ezéri6\~1 dlen6rilh~11i.lk. hogy egy élték megfelei6
acbttípusú-e: Igu \'ag)' h:mlls?
5, Mik awk a ~z.alúl)'OS k,fl'jezésoek, él; mién 11OI5ll\05 a RegularExp~ion\'~ hdalor
\'ezérl6?
6.•.Monden """ildi ,-edt16h6z legfeljebb egy eller06rz6 "ezér\(\( r<'IKieJhetilnk."
Igaz '""gy ha.1f\IS?
290 III. rMZ • fllhllzn6l6j edetok ~ .. ~"f

Válaszok
1. Az Error-lIena\le tulajdonságot.
2. A DhplAy tul~jdons;1g a kö"etkezőlúrom fuék egyiktrt: állítható, None, Sta-
tic v:.gy Dynamic. A None bciUí~:;l v:\.laSZlva a hi!xtOzenet soha nem jelenik:
meg, fiJggetlcnaJ all61. hogy a bevin "nék érYén)1elen~. A Static beállílhsal
helyet foglal unk a hiOOOZ~-nC1 sz:lmánl a weboldalon. akkor is, ha annak ~'g­
jek-nító:sl:re nem h...al sor. A Dyn.....tc be:illil;\s ezzel szemben nem foglal le előre
helyei az ellen6n6 ,'ewrl6 hib:311z~""ek (lásd a 12.22. és 12.2}. ~br:ll).
3. A CompareValidator vezérl6l kell haszn:iJnunk, és anllllk contr-olToValidate,
illetve a Control~re tulajdonslg:lb:3n kell megadnunk a két szövegmeZÓI..
az Operator tula~got pedig az EquAl énék~ kell.illíununk. (A 3. gyakorlat
t'ppen egy ilyen weboldal elk6zítbd célozza.)
4. Igaz.
5. A szabályos kú~;elk:s egy olyan br.l.kterl.ine. amely karnkten.4<et és külOOlcll"5 je-
leket tartalmaz, 6< ~'g)' által:inO'! mlllt!it hat!iroz meg, a RcgularExpressiollValidator
p<'"<llg egy olyan ell0m6rz6 ""zi'fl6. amely a oc'\"iu ~datot egy l<Z:lbálY"" kúejcz(os
Sl.'gitségével viI.sg!ilja. AZ(-rt 1\aSZtIOIS ennek a vezér\6nck a haszt"\illata . lnett [gy
goo~odhatunk róla. hogya bevin adat megfdeljen egy bizonyos minliirntk.
Ha péld1ul nt szcreménk. hogya fdhaSlJl:lló a 1I,lefonszin~1 xx-x-xxx-xxxx
formában:<dia meg. ~hol minden X egy sz:\mjegynek felel meg, en könnyen
elérht.1jOk a Rcgul~rExpressionValidalor ""8Ít~gével, de mls ellen6n6 vezér"-
l6>'eI nem.
6. 1·l3mis. A webe:s velérl6khöz !et5z61eges számú ellen6rző vezérlő ka~lható.
Ha v,m példiul egy Tex\Box vezérl6nk, amelybe a felhasznJilónak a ÚThada-
Iombizl05íl!isi sUinúl kell beimia, ~Iszertl egyszerre igénybe "cnni cgy Regular-
ExpressionValidator vezérl61, ~mely gondoskodik róla. hogy a beín adat meg·
felelő fOmUtumú legyen. ilietVe egy RequlredFieldValidator vezérl61. amely an
biZI0:5ílja, hogy a felh:w.n:\lö nem h agyja ü~n 3 szövegmez&..

Gyakorlatok
l. KbzjlS(lnk egy egys~ ASP.Nl' · oldalt. ~mely kt!. ReqUlredField\'alidalor 6<
egy Com~reValidalor veIkrl&. alkalmaz. és arr~ kéri ~ fclhasm3.1öt. hogy adja
meg a kél kedvenc fagy13lttípus,1t Ehhez ká szövegmez6re lesz Slükségünk
Adjuk az okl:llhoz a szOkséges ellen6rző "ewrI6ket, amelyek gondoskodnak
róla, hogya felh:lszn!iló mindkét mezőbe beifjon valamil, és hogy awk tartalma
dttr6 legyen.
2. 110zwnk létre egy ASP.NEl' oldalt, amely a felhas:m.~IÓlöl az e·mall dmét. illetve
a honlapj:\nak al URL·jét kéri. Ussuk el az oldalt a megfelelő ellen6rz6 "elér-
l6kkel. amelrek biztosítj;1k. hogya fclh:lSzn:\.1ó legalább a levélcímét rnegadj~. és
hog)' mllld az e-mail cím, mind a honlap URL-je a megfelelő fOtltÚlUmÚ legyen.
(lipp, " lI.egulJrEJcpre,;:slon Va!idalor vererlő ReguJar l:Xpres.sion Edilor .uerkcsz-
16abbJdbcan k~zen kapou $1,:ob:lilyos kif,*zbckO!t IlIJ.ilunk az Ífllemela Icvtki-
mekhcz ~ az ÍfllernelC:5 URL-ekhez i:!il
3, sok \\'ebl1dy khO!tŐ'l'é le!IZi:l feltl<Wl'dlóknak. hogy roóknlal hozzall:lk létR'
A rIÓi< ~kor a feIJl<Wl'dlOnak lliW>an meg kell adnia legaL1bb a ki.':!:ru
felhaszn,1IÓocve\. egy ~ ts egy .. _mail címct. K~l.il5Qnk egy otpn ASPI\'I!T
oldali, amely !légy TcnBoJ{ vererll'X 13l1almaz: egy 5.zlJ\'cgmez6c " relhaszn1~,
egyet a 1..'V~lcím. ~ kClI6t a jelszó mega<Üsi ..
A1lho~ t.ogy II bemenet kvblyes \e8)'en, minden mez6c. ki kelllOheni, az "'-ma,l
CÍme! ~~ny05 form,itumbóln kell megadni. a ká pclsz6meUibe bdrt tn~knek
pedlg meg kelJ eg)·eznic. (/';C feledJük. hogy ez ulóbbi kl:t mez6 TextKode
rula)don.d.g;1it PlIss-...ord-re kelJ 1JIíu.nunk..)
(Ahogy II 20. fejetetben Utnl fOSJUk. az ASP "'ET-ben tObbféle ~1 .. ntkez611-
login - vezérl6/.;~ u.Wunk, amelyek felhaszn.116i felillCle\ n)'újl..:mak vAn}(l:S
felhawdl6kezdési mlIvclcthcz, lOObek kÖZÖlt a flókok JétrclJOti.s;thol. Ennek
ellentre trdo::tne!l el....égc:mi en a g)'"'IkorblOl. mert Mtka llIp:l5Zblalhoz
juthatunk a be\'lteli b ellen15rU5 vezér\6k haszrdbt.a len!n.)
III. RÉSZ

Munka adatbázisokkal
13. óra Bewzelés az adath.iZ!5Qk 'lÜgÍb1
14 óq Adatok li . I az .... dotra·~
IS. 6tI AIMtOk megjelenil6se I WIbU ~
16. ln Adatrlt tbrlésa, ~ 6s~
11. Óf' Adatlapcso/t lanYI6 mik, vi1as:z1690Ulbok és
J8IöI&~tek
l B. ln AlIldltUpcsolás is rM$, IldetoUaI ~apcsolat05 témák
13. ÓRA

Bevezetés az adatbázisok világába

• Az ailillbbis fog:llma
• Az adatok drol~J'l;lk módll' 3l adath1ZtWkI);l.11
• A,b!I>:11.i.súbl~k, -<l6Z10p0k éi-rekordok b kapaolaluk n aWlok l:\roI~dv;l1
• Al. ad:lt~zistibl.lk 05zlop:!iban tárolható aoollipusok
• It I,,~~ k~kedelmi ho ing)YIlt'S ~cbMZis-k .. ~eI6 rendszerek
• Adath11.i<;ok é:S 3d:nbbntibllk k.1rehozls.1 a MI<:IQ6Oft SQL SeI'\'Cf 2005 Expra<i
"""oonhm
Az ASp.,,,,, egyik Ieghasznoabb ~ legh:lIékon)... bb~lwisa. hogy.az ASP-.:n
"'icbokbbk ktpaek:ll adalb:bi$-keU'llS ~t"l való zOkken6mentes eg)'l.mmO-
ködbre. lu adJMz,sok. ahogy ebben II fqczcllx"n (jUli fogjuk, olyan szofivcr.dkalma-
d50k. ameJyek<'l. adatok h3!~kon)' r:lroiiSl1ra ter.el;lek.

EbI~n II leckében azt "i~IIUk, hogy mik azok az adalb:i.zook, éi hogyan ~roIJ'ik
az ad:nok:at. Rm;<!en ~('I.Qnk nBdny:ol II Iegnépszer(!bb kerekedrimi & lIl8Yene5
adatl"'ilireo<bzerek kÖZUI is. de els6sofban II .\11CfUk111 SQL Ser.er lOOS Ex~
f.dJlionre ÖMZ[X>I1I,,.,~unk, ~me/}' egy oIpn IOgp:na ~dalb:1tis-k.,~clo'l. ~n~l}'ec
II \'i5ual Wel, Oc\d<J~ t'8}iln telepilellUnk :IZ I, 6r1l»n. A Ic<:kc ,q.:."re énL"f\i
fOS/uk az ~dllb"l.lWk nu1kO<J('Sén.-k alaf'l'lil. k IUJni fugjuk. hogy..n h01.lUnk I('(re
egy 3dalb~~st, e, ho!!y nukfm löl\SÜk fel lIn ~d3Iokk31

Az adatbázis-kezelés alapjai
\al6szinúleg rTÚr lullonunk;lZ f'datUtizisvlmil, de oem bi;o()l!;. hog)' ponlO&:UlluJfUk.
mi is az:lZ ad.llbhJ$. ~ hogy mnt' Il<lSuUljjk A Iehec61eg<..'g}-..zcf1lbben fogainun."
az adul:d1.lS struktu ..~h a<btok gyajtemén~·c. ~lTIC:ly.,kl't h;olékony~n MJelunk cl bo
m6tJ0síthalunk

Az ~<blb;ózisok Jd.,lOkJlt~roIn3k. 6 ""gy mll,'elet ~égrehajúsJt cng..:ddyez,k r.l.ltuk;


.lZ ",<bIOk lek"'rUo:l""''t ~"'gy kinyer60:.'t. ~UJlOk ~ur:isJl. adalok .n6<.kl!>Íthit. é5
az a<b,ok I~ , Az. ... Ua,b4zisok:ll a Ieg&)"JkrJbb;.in Adr beszílrt ad.otok km}Clé ;Ó.,
h;uználjuk. czo!"rl \'zsg:i16dá9.lnk t:il}O-a t'I..&aIban u ... dllak IekoYdc~ IC"IZ-

M,e/6u azonban bes2\lr;i)l. (ris5it6l. ,ÓrIé<t vagy It.-k~ hartllóltn.lnk 'égre


t'g}' aWIb;ózi5b:an. d6:>zór tdepilmOnk kdlu ~d:lM.u.-kezeló .sroft"'_'fI, Il'tre kell
hoznunk n adatbhls!ljlt. és meg kdlll.~IJn')Znunk a benne lárolt adnak szerkezetL't,
1J)/)CIl az 6,-jj);ln elősZÖr at adatbázis..kcz<!lé\ ~lapfogalmai, li~>;t;i:zzuk. nMjJ n ....g;,;rn"r·
kl-dünk a Microsoft SQL Scrv.,,-lQ05 Expl"l-"'SS Edition 11:15....,álat!h."l. amely "SY oIpn
illJO'ene5 adat~ZIS·kl'Zclő. amt'lyCl a \'i.wJI ~'eb OeIdopem:l t'8}iln ldepill'tlilnk
aZ I 6dban.

Al. tdltbirtriat löbbflllallippen illi6rhet;;*. dll az ölbilis~ ~


bato$~ vNrrilyen ~1. .,1eIyeI ao;bItMnrial oomaln "Ire, I.tvv
adat<*1t 4metiri. el, WhatIri: bt, loröIlttilnk v.gy lris$fltletiri..
VllS(I6Iód6suok szempontjából az a legfontosabb. hOQ'1 az ASP.NEl wffilldalllkról i$
elértltllünlc Idatb6D~8t. Ez azt IIIlen1i.1logy Iftreholhatunk.gy olyan ASP.NET oldalt,
ametv képes egy adatbázisbóllldaloltll kiolvlSlll, 'I megJeleníleru IlObI az oldalláto-
~tóinak. Ezt sznos 1é1el'Ó v.ebhe~en ~tiI*: pékIíuI __ or az Amazatl.com
v.ebhe!'Pn kertsiinlc.. 8 kefllS60ldal egy adatbM.t.óI olvassa kl • kertsáre iII0edCí
rlIkordDllI, .. ,wlyetel ..Mf\ii I IÍI azlNdnMnyoklabL
A kÖV'elkel6 ""*'v lackében ali ~p., hOgYIIl Jelllódetiri. mtg adatokat
ew IdatMmból az ASP.NEl oldalakon.
Mlutin megismertük ~t ad:lll:x!zisok kgfontO<:klhh jellenu6it. figyelmünk ...'t uoknak
at ul.:isltásoknak al ~l;t.k~l":I fordítjuk. amelyekkel :lduoka' ny",h...'tOnk k,. :lZunulunk be.
r""""tllelünk ''''gy IÓfÓUlClilnk lIZ adatbizisokban. AZ CTre ~wIg:1ló nydv ~ 'ilmcllm.'rI
Qlwry' lOltga''Rt'(!AAlklurilt 1ekérdc7.6f1rch'l. riMd.,n az SQL :lmt'ltrd ~ a kő­
\"elke7.Ó ft'jezetben fogialkcnunk
Ezt kÖ':et6en az aduh\ZlSOk ad:uainak el~...... és 1TlL'gjelenítésére haszn~hat6
ASP.NEr-\'ezM6Ickel ismerkt'dűnk meg. A 14. fejezetben p;ildául az ASP.NEr D,naSource
\'ez&i6ít nuuat)uk he. amelyek oIyJn webes \'ezérlók. amelyekkel adatol.::1t k&dezheWnk
le, szúm:llunk be, fli$íthentnk \'agy törolhel1lnk, ~ 15. b 16. feje~ lilni fogjuk,
mtlyen könnyű ad.:llok:n megjdeníteni b m6dosiuni a Grid".....'W é:s l)etai(..V.ew \"eZérI61C
S<.'gÍtségl:'"\·cl, a 17. lecke t"'májit pedig a len}116 listák. vi13m6gombok é:s jelöl6négyze-
tek adatb:1zi,;b61 stiif1l1u6 adatokkal \'a16 feltöltése adja. (A II. fejezet:b6I emlékezhe-
tünk rá, hogya DropDownllit. RadioBunon b CheckBox wzér\6k a Texiliox \'cl'Í'rl6höz
1l.1.!iOflloon fel~l6i adatok összcg)'újtl:s&c ~16 \'czM6k)

A jelenleg használatos adatbázisrendszerek


Rengeteg kereskedelmi é:s ingyenes atbtb:1zlsrendszer létezik, amelyek a legkUlÖflf"'lébb
platformokon képesek futni. A legnépszerűbb adalh\zis..keze\6k a kÖ\'l1.kez6k,

• .lflcTOKifl SQL Sen oer- http:// ......... ",i cr< 10ft. cm/.ql/
• Omcle_ http:// ......... or.elo• . o;<lOIt/
• lBJI D82- Iltt." /1.......,-3. it... eom/software/data/db21
• Microsoft Access - 1It.t..,: II ......... .. icrosof t , cOln/oH ic.. ' ace ..""
• 18.\1 b>fonllt>: - http://'''''''' 3. i bm. coml so ftware/da ta/l n fond " l

Ezeket a termékeket a nagy mennyis(,gú atbual dolgozó cégt'knck kl.,;zítik, és a magas


szintű swlg::i.luthnak bizony megkérik:ll :lcit _ "kj. tö/.lb tizezezer dolL1n. Szerencsére
nekünk. :lmalÓ!" fejleszt6knek, sz:,lxodon hozzáft!rhet6 ad.:llbázi5rt:rldsl.erek i~:I rendel-
keresunkre ~lInak. Ezek sinCieflek hfpn az imponáló swlg:\ltatáwkn:lk. de biwn)"os
k~gek, amelyek ~ k.....'Slcedelmi rendszerekben !lle8'annak. hiinyoznak bel6lük,
é:s a tcljesítrn(,nyilk is némileg elmarad awkl-l.ól. Miv.,) :tzonlun mi csak ami fogjuk
használni az adatbáruolcu, hogy kipr6h1liuk az ASP.I\'ET oIdalaink:n. tudísuk b66égesen
elegend6 ~ a $Z:lmunk,..~. A legnl-pszenThb ingyen~... adatlxl~keze-lók az alábbiak:

• PosIgreSQL- http://www. po~ t\lr e"ql. ~oml


• ,\I,)óQL - http://'''''''' . l!IjIoql . ~oml
• Microsoft SQL ~:nlCr.!OO5 E..'l'ress 1-:t/lfjon (MSDf:)-
http://www.~lcr06oft.e~/.ql/expre8.1

A Microsoft SQL St·,..."r 200'; Express Editiorn megk;tpjuk:o VISUal \X'eb Oeveloperrel
együn _ koclbban mir ldepileuük is. B:í. a könyv nlintk!n adatbM..ispéld:ljában
a Micro/;()ft SQL Server 200'; Exp= Ednionre tolmaszkodunk. ne gondoljuk. hog}'
a~ ASP.l\'ET oldalak CSJk a MicJo.o;oIi sai;\l adath\zI5-Juo.zeI6ivel k"'J>C5""'k együnműködni.
t;ppcn ellenkez61eg' I"'nycgében b:i.mdy adath\zi.srendsZ<'1" clM"1et6 egy ASP.NEr
oldalon keresztül . Teh;!t h~ mi vagy a dgilnk ndsik adalb:i;tis-kezel6t hasznil. ncrn kell
agg6dnunk , továbbra is dolgozll:uunk 3Z adott rendszerrel. A könyv példáihoz azonban
II Microsoft SQL Ser:er 2005 üp= Edilion használau aj.>nloo.
12. /in • AleIIIUMI6i edItOk 11100rzh'clc"""'___

~
..... _..... _-,- .... --,...
. . '."", 4 .&..~

_ .._.
_.-'
_.._-"
.....
-"-"

12.2. jin
BedlHtomd. ti .<ZÓt"!!-
~ mltlJdim.«lgaU,

'. '
if< az ""Mihez NI/mIII
'"8J' 8<'mbol is

A RequiredFieldValidator vezérl6
Amikor ~ felhagrill6!óladalbevilell várunk, a bernt-net ké-! tipusba sorolhaló: kötclcz6en
meg:ldandó és nem kÖlele7.15 adalOk. fl kötelező n>eWk olran mezők, amelyek ....
a felh"sználó"'.1k mtm/cnképp"" ki kell löl((:nie, mig:1 nem kÓlclez6 mezők e!ieI&n
3 FelhawI.'i1ó eldönlht,"I.I. hogy 1Tlt-"g kív:lnja-e :.dni:u infonniciól vagy ,.;em. Azt. hogy
a kö«:lel6 mez6kbe beinak-e valamdyen adatol, a Requirt."dFieldValidalor .'ezérl6
segíl5('gt""'el cU ..."IlI5ti UICIJÜ k.

ReqlliredField\'~1idalor vererlöt ugy adhatunk egy ASP.NET oId3Iho~, 1>OgY 3 ve~frlöt


egyszenlen az oldltlr~ huzzuk 3 Too/box paleWIr6I, ahogy:1 löbbi webe" vezl:rl6
e5t.'1I'Ix'1l is lL1.tilk. HlIzzunk telúl most egy l«.'quirt.'(]Ficld\~lidl(or vezl.'rl& n oldd",
a terve~l5ben , és helye~~ük el jobbra al elsCi TexlBQx vezhl6t61

--,
,. _
.. ..--"
_ .. __ .. J
- --
"""*,,, 1
0-,

:-_-::- 12.3. jin
Az ASP.i'iET'oklal

""" - ti Rt'q"Irr.-dF1eldlnUdlllOl'
~Ó houtJadAsa ..UI ..
Z68 IILrMZ • FeIJam6IÓi adItOIr. "'''tgyIlpbl nltklollgo ....

Az ellen6ml 'o'1Uér\öket a Toolbo~ paletta Validation csoportjában találjlJ;..

Ha 3 vezérl6t elhelyeztOk az oldalon, ~ lervez6 ablaIcinak Ogy kell kinéznie. nUIIl


a [2.3. lbcill. lU, 3 könyvbell le....~ képen nem !:llJjzik. 3 RequiredFieldVal1elator
w.övell piros betűkkel jelellik meg.

Az elle06m1 vezár16 által vizsgá~ vezérl6 meghatáromsa


Az ellen6rz6 ,·el.érl6k egy adott lx'm<'''''Jj 't'zérló elle06rz(,sére swlgil[\;lk. 8emeneli
vcZ{'fl6 31~1l ~wkat ól webes vedrl6kct (pl'lillul a TcxtBox ,-.,zenő() <'njilk, amelyekbe
a fclhaswill6nak valamilyen énl'ket kell beirni.

Minden ellen6rz6 vczbl6nek van egy Control ToYal lelne neVU tulaj<;lon.$á&". amely
mcgh.1t~lUZ.Z:l. hogy aZ cllen6rz6 \'ezérl6 melyik vezo..<rl61 v;l:5gálja. Például mivel
3 YalidationControlTeatBed.aapx oIWlon azt szerctnblk. hogy a felhau.n!i16 bcína
.. nevfl, az oIdalho .... ,.doll els6 RcquirodFiddValidalor vcz(:rl6 ControlToYalld,,1Oe
rula;donság:l13 name azonosít6jO v<.'Zérl6re kell illlit:lflunk.

Jegyezzük meg, hog)' az ASI'.NET oldahlkhoz aclolt ellen6rz6 vezérl6k mindegyike


csupin "ID'-'llen bemeoc'ti veZl':rl6t viz.sg:lJ. A val1clationControlTeatBed.allpx
oldalon Idrom kÖlelez6 mez/'ink (n~, (:letkor (:s társadalombinosiLÍ$; sz1m) \':In,
ezén három R~'<IuiredfieldValidator vezérlőre lew. szl1k:;égOnk.

Eg)'el6re teg)iink úgy, muuh:! aZ egyetlen kötelez6 mez6 a ........ lenne. l:!; az oldalhoz
.{loIt RcqutredFoeld\':IJidat<>r \'ezffió ControlToYaUdau tubj<k>nsii~t állítsuk na.e-re.
Ezt úgy tehetjíik n....g, hogy ~ R"'luiredFieldV:iliOOtor velérl6re kattintunk, hogy betöl15ök
~ lulajdon.s;lgait a Properties ablakba. majd kivál:lsztjuk a Connol ToYal iclate tul:1idoo·
>ágat. és ~ mcgjekn6Icnyil61isl:'iból, .. nely n oIo:blon utl.:lIhat6 különböző webes
\'ezb16kel 5OI'OIjól fel (12.4. ábra), a rtame-el '":ihlsztjuk.

12.4. in
t "/assz,d. ~ ti R<"I"irnJFie/dI)'lldmor
álUlI .oJk:nörlumdó ,,,,,,éri&
[!O' mos flgyclmc.-Z1~, 113 3 ~ntrnl ToValidat.IUll~goI eg)':odon \-eléri6re
albIjUk. nujd alUlak azono:>silÓ\;i1 f1'I(')o(b;itjuk, :lZ ASP,NL'T oldal böog6.l:tibe \'::d6Ile1Ohlo-
".,kot hib:lllzenelet k:!punk (Iisd a 12,5, ábrlíl), Ennek 3Z:lZ ok:!, hogy az dlen6rdi
\'elérl6« Cont ro11'oVal idau Lul~jdonsága nem fri.\.sQ1 ~ulon1al.ikusan. 31l1ÍkOf megv:l1-
tuzt;LlJUk az általuk v~l! \'1:7.érl6k 10 nda~g;il, Ezért lu egy \'ezérl6 al'.Ol'105it6j:\t
uu!.;in m6doMljuk, hOSY dk:oon6 \=trl6ket vettOnk fdn oldalra. nundig elk:n6nUOk,
hogy a l".QntroI1'oValldat .. IUlajdons;igok a megfclel6 \'e~ akTWlilI azonosiTój;a1
"'rt;lIrn:u:dk~

---
IMUblO 10 _ <O/IfflH III ' _ I*fe,,1ICH by/fN 12.5."
'COMrtJ(ro"._' _ff"! ot 1t_.rtd""ltNnd_'1 Ilu <ll: ~o&:Ii,~
(.;qo,troITO I al....,.
,"IaJtkm.<4tlllt 10«)....'11

- dlJifjlllr bio, 1rIbar1zv,_


Itapm,1r

Az érvéflytelen bemenet esetén


megjelenftend6 hibaüzenet meghatározása
A ,nt rolT<: Validau luLajdonslig ml"lJeu rrunden ellen6ro'l \-ezérl6nek van
egy ErrorJl" ..age tul3~g:o ill, 12.a u ... kterbrv; btékCl ml3jdonsjg talUlm:lZZll
.azt a QŐ\'~, amelye! meg 5zeretnmk ;elerutem, ha ~ felh.. ~16 ihaj nk'g.:ldolt .. Wt
nem felel meg.a kÖ\'CIellTlo!1l)'cknek A s$, ....gnek d:'1$zcnl egy otpn rö"id l.... irJsnak
lennie, am,eJy dm:l!l}'::I~t7.:a, hogy mi
~ problfma ,. he"u adattal, 6; hogy mIL kelllt'f1ru
a hit,.. kiI3\'ft;lsa tTdcktben

A Re<lutredFieldVa!Jdator esctfben I*kliul az Iirto,JI"ug .. lubjdons:igol 3 -Vala


Milyen 'rtéket ""'9 kell adnia 112. x _z6ben- ~-~ ~ ~Uitam, ah..,l:lZ
.)(' allI\;l.k a mezőoek a nc.'\'e. arnd)·.... kl'xdez6 kJlóll<em Az EI ror_ ..... o;!" M(,k .. kbll
g)'::Ikr:.m adn:.Jk meg eg)' CSlll3go1lS: D ",'ebhd~"ftl UthaLJuk, hogy a kÖlclez6
UlbpmeJ:6ket csillagok jel~Ik

A Valldat.ionConuolTeatlled,lIBpx oldalon elhel}'czt.'11 RequiredFieldValidalOl"


\"ererl6 ErrorMeasaO;!It lubjdonslgáL :'lIlitsuk 3 YOU lIIU.t provide your name
(.\lcg kell adnia ~ nc.'\·tI) 5ZÖ\~_ Miután ezt belnuk, a RequlredF"odd\'alicbIOl" fclmua
~ ler.... zl5ben az (ji ErrorMea.e\lle-áTtm .'liltozik (Usd a 12_6. ;Ü)r;it)_
_... _-_ ...
.......
.-2 --~ , ..
>ol il ... .itA. ~ _ ..:...
.. ...."" ...
~ '''--'' ,
r__ r " _~_,..

.-
,; ':" ~::!'"~.• ~..:~

.. ._..
r_ ... .-
~-~

_..__
. , ~

.---- .---.-.
'

.-
12.6. 6bn

, -
,~..w
.~'"

...;,:~ '~ _.
, , .... _'.--
, tlluquirot!FieldlallMI()('
Erro..-.l/<'SSIlg<! IUk'jJrm-
«Igá'Ull! bOOlIi/1Isa "uh,

Az ASP,NEr oldal ~pr6b~és.


MOSI. hogy l1>egadruk "- Control1'ovalidate 6; ErrOOIl'U"II" lulajdons:igoka(,
~ R<..quiredfidd\'alklalor flg)'ellneVeli a felh:u;wál6t. ha elfelejt VlIlamilyen értékel beírni
3 naJlll! mez6be. Ennek k/pr6I»l~ooz löI~k be a VlJlid8tlonControlTestBed.lJspx
oldalI ~ IXlongésWnkbc A weboldalt az első belölléskor a 12,7. ~bra mUlatja. Megfigyel·
hetj11k, 1K:>gY az oldal böngész6lx.-n l:'ilhaló k(1JC Jl61úlcg dll'r "- lervez60ffi Illoa6l ,

__
a RequiredF~ldValklalor vezér16 ugyarus nem jek.-nik meg .

._- _..
........
. ': .:_r
....

- •

._-
.! -
_.._- 12.7, libni

.- .".,-
A lal/d<lI/onConrrol7'es/8eJ,aspx
uWoú1n1 tIZ l'ISV be!lJI/éslror

\105l kmunl.$unk a Chd< Me l(OOIM allé/klll. hogy bámtil}'erl SZÖ\-'t'get írnánk a name
mcz6bc. Mi lÖ1téflik? Ha olyan böngé>z6t haSZIÚlunk, amdy támogaliJ aZ ügyféloldlh
parnna;kódo!<al (lényegében minOC"fl újatJb böngf5z6 ilyen). a gomb llIegnyomiSol nem
killd; cl:lZ arlapot. hanem előh,,;,,- a You ....st pnwide your name (Izenetet "- névmez6
12. ho A III .a6i __ .1. ótlll l 211

mdleu. tb ~ a k~ nem .....cIelk«6 bOngbl6nk v3ll (V2gy Itik:l.pC5OIruk


brnne az O8}í&ldah paranco;f~ilok Wnogatásil), :I goniln VaI6 k3Ul1l1ással elkükJrUk
az tIrbpot. de :I \.jss....csncti5kor ugy:..ntígy mql/denik az cmIÍIrU. .SWVqj :I ~1,(i
"",I~

A ]2.8. ~bd.n azt l~thaljuk. hog)= fe$!. a Vdl&.tionControl1'ftstBed ... px oldal, 11.:1
ncm trunk be semmit:l name me~6be, k a Cikk Me gomoo. k3ttinrunk.

,.. - ....... _-
: , - lU. "
A...._~...em~1
~,iJJ a lbu must prot.kk
)OUr na .... m5r.q

Most !Ilunk be valamit a névmez6be, maid kaulntsunk cg)' misik meZ(! bel~be, hogy
~tvigyllk li a f6kuszI H~ olyan bön~ hasvl~lunk, amely támogalj:!. ezt:fl. 5zolg:1llll-
\.isi, a szöveg betr.i ..... után a névmez6b6l VlIl6 elk:lnmlh var.i~üttsre eltünteti :fl. You
.... n provide your namot 0ZeneteI a mezt5 mdl6l. Ib bOng&z6nk nem rmdelkezík
enel a k~ , az llzenet a k~y6n maDd, de ha a Click Me: gombra k3uint...a
OJ/'lI elkOk!lllk az arbpot, az okbl Oj/'lltóllkekor ekO"nik..

Mibt VISelkedik másk!pp a ltiboaüZenet a haszrljlt ti1gg6en? NM az!rt, men.


~/II
az eUen6rW ,,'ebes \'Czérl6k ~ '''''-oorzéstalkalnuznak az0kb3n a~­
ben, amelyek támogatják ezt a ~g:1IIllW!.

AZ Ogyf~1oIcb1l ellen6rz!sl; egy ]aV2Script-k6d ha~p. v~. amely a fell\aSZI'llló web/)ön.


~n fuI. Amikor a fel~16 e!kaninl egy szövegmez6b61, vagy a TM! billenl)'lll
megnyomV2 ll:lgyp el azt, ez aJa\'aScrtpt--kód elIen6rzi., l-.ogy a meZ15bm meg:.WOn adaI
~yeH, Amenn}iben az adat ~....61),(Ien.:Il IIgyf&kbH kód aUlQm2tikus:m I/Icsje
lenili az eJlero6i1JG vedrl6 ErTOrHesaage rubjdorlRg:1nak &ttkt1.

AZOk a ~ awnban, :omeIyd< nem t:1moga~k az l18}í~klIdali parancsf~t,


V2gy kikapC5Olt.ik bennük ezt a Iehd~ csak ~i eIIenÓnéSI alkalmaz:
nak. Ahogy:l nev!b61 kitili.lhaljuk., a 1uswIg:1l6okbli ellen6rzésl: a ~16n futó
kód hap;~ ,'tgn' - ezért nem IŰruk el" ~ <I You . . .t provide your na..
i1~, mlg nt kÖ\~6en~. hogy brinunk '':lIJ..rnil <I ~ SlÖ\'~~, CSlk <Ikkor.
<lrTUkor <I fetl~ újnkilldi n art.po:x.~, hogy:lZ i1zene'1 dtflnjön, at ASp.NET
ok:blruak '·ISSZ:iICSl.loU:!t kell kl'~~Vlie. ami a kor.ibbo osmereIeinknck megfcle-
16en:lZ oldal ujb6li Lr~ ~yeli a kiszolgil6r6l. Az uj kktrbntl a wrbkiswl·
IPJÓI'Urn6rti a bevJn 3datok:u , és meg1lJ..pftja, hogy azok megfddnclL:~" kó>'ctd~
n~'eknck

A l\a$ZnáIt böngéuót61 fiiogetlinül mindOfl.....00rz6 vezérl/l 'i&grehaft kiszolg6tóoklali


elen6nést. vagyis III íi9YféIOIdeIi panlocs"ilDklt timoQlltá bOngúz6k tH~ mind
~!f~. mIOd úgyIiWoIdIIi ,.mm IMhHk.. A kiszolg6lóoldlti ltIen&rÚre
lIllIft keN SOf lIkkOt il. ha II oldi] -w1iWnt ÚgYIéIOIdaIi eleni5rrist is WgrehIft. lI.t
IZ ut6bbil • !eiMn ~ ~ IMllIaIwt kerülni - csel:; kl kel kapclOÖ
• bCng&z6bIn • Jw.scnpt·tá\'IooItiIt

Az i1(O-f&llcbh elLrn6n.éS Jrgr6bb rI6n)~ <l1u$wIg.1l6okbli dlrnc'lrz&.sd s.:<'n'Iben:ll,


hogy <lZDrlfUIi "is5z:Ijd:té:ll: ad" fdl\:l$VlJJórlak, és nem i#nrel V>S$UCSIloUs!" ...-<:bki-
SZOIg1IOhOZ. u id6I; aka';l mrg a fl'lh.. ~Jórlak, killön&m lassú kapcsobt ~en

Al (igYIéIOIdaIi lile, ~UII kapcsolatban fnIe!OO$ elolvasni, Form ValidMlOtI ol!


!he C!iefK side dm(! ciUet a ht tp, , 1..--. aitepoint. "0141' art ic: le,
font1~v"l idation-el lent -aide efmen.

A bemenet élvényosségének ollenc5aása programból


Ahogy Uuuk. dég ~ be-~Uil:l.ru:lZ 1'111'1161'26 ,'I'Zérl6k Contr-ol'l\:lVal1date és
IrrorMe....... ruJ..jdons:igilil, és I'uk a \-ezfrl6k aulom:niJrusan fIgyelmeztetik a fd/\a5Z-
~l6t, h3 lO55Z formirumixln adon meg rgy .. <bUJI. De tqp':lln :!;Uapí(rul!~k meg
rgy prosroo.nom. hogy" brvul adrU:Jk megfddOdo:-a

A fl'l~16 11t:ol megadon adatQk;H ~hahlban feldolsmzuk; az rIŐ«i Ircktkbrn pStUul


egy ~l.áloghitel-It:olkuütomak. illetve egy 1~lömeg1lldex-kisZimít6 progr~mn:.lk adtuk
~I6k.a. Mmdkét péltUbafl m:iI!l'm:mlca! szimftásokat kellen ",'gezn\lnk ll! ~d:llokon.
llmel)'cket!~ nem "klunánk ,'égrelt:o~anl. ru.
a fdhaszn.1.IÓ ér\'ényt<.'lcn ad,-
wk~t adna mo:g.

Ahhoz.llOSYeg)' progr:omhlO moeg.1lt.pílha5Sllk. hogy II brmenI'! ~'én}~." PAQOa. I.-


Valid ruJ..;cIorLságot vi1sgá1Iwjuk mo:g, 12 a ruJ..;cJons::i.g csak akkor ad Vi5SZ:I Tnla
btCka, h:o:lZ ASP.r-."ET oId,1Qn [:II:IIh:lt6 IwUamctmJ; ClIm6rZ6 ,-emi6.:ul jelli. hogy
a I'lolú. t:onw:6 ~=étiO megfddG formirumU adatot tanalmu. ~Us ~':lI1. ru.
CSlk
Cg)-eUm 1I1Ut'iben., ~"tn)1e1rn adat t:oUlIl3tó, a P_o I.Valid át8te '/lIHIeL
I
12. 618 • A WMm6l6i IIiItot.IIen6rzMI 213

A ru lajdondg használat1ruk szeml"'lletésére hozzunk l<':Ire egy e~m~nykezd61 a


Bunon vewl6nk Click CSCfI*nyl:hez. Eml"'kezriink VissZ3: a Click eseménykezel6
mmde n alkalommalvégreIla~6dik , amikor a w~ űrlap elkOJdésl:ve! vi55Z3CS;uoI1st
ke:zdeményezOnk. Az esemfnyke7.el6létrehoús:1hoz egyszeTŰen kanmtl;unk duplln
:l gombr:l a 1ervez6 nhetben. majd írjuk be a következ6 kódot az eseml-nykezel6
~~z;íba :

:t ""lIe _hV" l1 <l the n


• " bemenet 'rvénye.
n. s ults .T ~ x t • " I n put iB vaUcI . •
the
Lellal~ ,,;:; egyi k "dH érvény t e l en
r • • u l t •• 1'ex t • "Input 1. <b~not<lb~ VIllld .. •

)
" _......... _.. ..
""'...... -..,~


- ... -
........ '->- ...
O -· O ~ #l(~ "
...
"
t ... _ .. -
,, _

--
..... ~ ...
0;;;.. .. _
12.9. MInI
A : ,' rlapot h!~')T,*,'
"daro/dltl/ ,,)..:iftotráJt be

..... _,---
0 -- ,.)
.... ~ ... _-, .... -
~~ ~,, - - e ' .;

-".... -
T... _ " _

..-
liii.... 1

.~ - -
12.10. Mo
arlop mt"deu me%6je
AJ:- elkillddll
"""mp CldarOl u;m(f/mm;
fu :lilfutjuk a kMx, Itthatjuk. hogy ha a Pag6. I.Val id tubjt.:lomlig &1tke True,
az Input. i . valid CA bemenet &vfnyes) $W\'egeI ~Ijilk meg, mb esetben viszonl.
32 Input 1. not v.lid IlZenete! CA be"otnet bvtn},elen). En a ~lket& mUl:llp.
:I 12.9. és 12.10. :libf:l. Az els6n a ValidltlonControlTeat6ed.llpl< oId:.ol akkor

~dUI6, ha a feJl~16llgy kIIldte el az Urbpot. hogy semnulYefl adatOl r>em tn a nk


~~. Megf~lhelJük, hogy az InpJt I. not v.lid Iltenet a ...'ebokblte!e)&\
jdenik meg. A 12. 10 :libf:l ugya...,a az ASp.!\'ET oldalt mutatja, miut:lin a klhaszn:lil6 beírt
\-abmit a n(:o,1nC~. ts újralcillli az GrbpOl.ln az Input b v.lld ütenet ~tó

fu az oldalt egy 01)= ~ tekintjük meg. amely t:limog.l1p. az ügyf&.kbli


parana;f.t~t. val65zínGleg r>em kIIldJleljuk el az GrlapOl addig, amig valamilyen értéke!
nem inunk a né-vmez&e. Ennek ob az, hogy az ellen6rz6 vezér\6k oIy~n ügyféloldali
kódol hozn~k l~ne, amely érvélT)1elen adatok esettn megakadoilyozza a ~tol:liSl.
Az ügyféloldali par~naf:liilok;tt timog:ltó ~ le~l nem fultatl1k le a klszolg;1ló-
oldali eliek e5Cn~,yke-zd6(, amíg a felh:Lsznjl6 &\~yes adatokat nem ad meg.

fu azt ~k, hogy nUI~ ke-.'és fen~16 ~enk i\g)'ÍaokbJi par:ilfICIf:lijlolw


nem Wnog:;itó ~'d, feimtridhet bentnink, hogy ~ ,-:m-e eg)'iI~
:I Palle.hV.lld tulajdonsig viZsgibi:lira a 8OIf1bCliekesembJyk~. No/;, igen:
mlndi,g elko6riUOk az oldal tn-~)~. mielc:itt fell\asznjl6 :liltal megadou adatokkal
'~zntnk mG\'deIcket. mefI a !"OISi\zindulatO felhaszn:U6k könny~ megkerillhetik
32 Ogyfl:loklali clleo6rztst. CA 12.9. ~br~ e1k!szit&éhez úgy :limtOltam be az Internet
Expk>mt, hogya http,llloc .. lhostdmetllltonhelykmtkezelje, ezén a böngész6
automatikusan megakad:lilyozta aJavaScripl-kOd fu~t, é Iehd.~ adon a visszaCS3-
toüsra akkor is, ha a n(:o,1nCz6 üres \'OIt.)

~ogIah-:&, mindig ha~nk,~ ~16okb1i elk>l6tz:6.1. a bOng6z.&ben


ing)= a renddkelt:5O.nl<ne bc>c:Won ügyftloklali e!len6nbl pedig tekinuük ktegbzí-
ttmdo:. Püggoetlenillan61, hogy a wd>helyOnkre lJtogatók milyen böngéZ6t ~lnak,
mindig \'i~ljuk meg aPaIIe. I1Vllid tulajdonsigot, mie!6tt mGveleteket v~znénk
~ bevin ~datokkal

Eddig ~k ~ Requ,rec!F..,ld":didator vezb16t, iller.-e :ilt:oUboIn az ellen6n6


\~%b1ők közös tul~Jdoru:ligai! é5 swlg:tltulsait. MleI&t 1lg)-eImOnket a!Obbi eUen6rz6
\'e7.bi6re forditarulnk, foglaljuk O!i.ue, mit ls t:onuhunlc eddig ezekKila \'ezbi6kr61,

El&zOr is, nunclen ellen6rz6 vezé-r16 eg)'etlen beviteli vezé-r\6t vizsgll, amelye!
a ControlTOv.l1date tulajdonslgban ha~rozhatunk meg, M~.sodsl.Of, \'\llamennyi
ellen6ro'): \'el~ van <'gy EnorHelS'1l6 lulajdons;1ga ls. amelyben U1 u Qtenetet
ad/l2tjuk meg, ame~ meg ~ jeleniteni, ha a \~h \'ClrI6 &vbl)'lekn
adatol. taiUlnuz. Ilal'TlUcbzor, az ~1I~n6rú5 mllkOclbe anól filgg, hogy a ~log;It6
milyen böng6l.Ő\"el ICkinti meg az oldalt. Ha a f~lhasuúló megf~1eI6 kfpess!ge:kk~l
fdvbl~zctl böngész6vd Mc~zlk, II kisl.018~16okb1l ~1Ien6l':1:é!I meUeu üsrféloldaU
eUen6rz6ire is 501" kerül. WgQl, progr:imból ugy ~Uaplthatjuk meg, hogy II fdhann,,16
;iltal beYin adatok rnegf~lel6ek.e, hogy megvizsg1ljuk II Palle. IeValid tubjdondsot.

A ComparaValidator vezérl6
A CompareVa!idatOl" v-e~ II fdhaszn116 :ittal nqadon énaet ~gy "llaOO6 b1&k~l
vagy ~gy misik be\it~1i mez6 b1ék~'d hasonlítja Oos$tt A ValidatlonContrQl·
,.. . tBed. upx oldalon példjul az utolsó kl'! mez6. amelyekben a gyermekde szim1I,
illetve II fiúgyermekek mndt kérdeuük. ad", =gjl arra. hogy a Compare'hlidator
v~zbi6\'el ÖSS2ehasonlílSUk az b1tkilket.

Az.. ouzes gYenne:IC ~Nk megadhira srolgjló mező értéke péld;\u! O vagy enr*1
nagyobb lehet. A fiú~kek sdrrdc kérde7.Ő met&e Ug}"::I.nez ~"0n2tkOZ1k. de ebben
II ~ emeIIetJ. nem SlCf"ePdhet nagyobb érték, mmt az ~l6z6 mez6ben.

Ellen6riuük eI6ször:ll. ~ 8)"ftIDek szirrdt. Húuunk C'8Y CompareV:dldalOl" v-elkric5t


II Toolbox paletL1r6l II terveKíbe, ts hdyeailk el k6zvetJenül a totalehi l~.n szöveg-
metó ut"n (Ibd a J2.1l ~br.iÚ.

"'"
........
.~
~~~
~t" ,~;
~_~
_-_ .... _---""
.-...
.. .- '

y .. _ ' -

_. 4-"
-_ot_I<
11.11. Mn

- ~-
'l)'Comps..llJJlM/W
.edrl6 hm.......d4 ' ..

"""
A CompareVallda.tOr tObbrtle 04szehuonlltbra képes. Megving;l.lhatja abemenetet,
hogy az kisebb vagy nagyobb-e egy adon értéknti, vagy egyerU6-e azzal, de an bt
mes tudja ~lIapltani, ha az adat nem egyenll5 egy adott érttldcd. A vtgrehaj[and6
OSQehasonl1W n~t az Opentor rula~ hatbozza meg.
276 1u. l'ÍI&l • r.lwszroMói eCIItOk ~ " ftIcWuo'.!

{\:r,Operato:" tubjdon.ság beállítisához kattintsunk arra a CompareValidator ve:rerl6re,


amelyiknek e21 a tulai~pt be S2eretnmk :illítani. így betölt jük a '"ererl6 tutaidon·
sigait a Properties ab/akba . Görgessünk n Operator tulajdon.sighoz, és kallintsunk
Iii; igy egy lenyíl61ista ;':Ienik meg, amelyben megtaUljuk a lulajdo~g VlIlaszlható
értéke.1. A lehetséges ö:sszehawnlltiwk a következ6\<,

o Equal o L.eU'l"han
o NotEqual o L.e&l"l'hanEquaL
o GreaterThan • Data'!'y~he<:k
o GreaterThanequal

MIvel most arról sze~nk meggyőződni, hogy az összes g)'ennek ~m~ mez6be bei"
énék {\ ,""gy annil ""g)'abb wm, az Operator !ulaj<;londgot 3 Gre"terThanEqu"
(nag)'Obb vagy egyenl6) énékre illitjuk.

Ha III: Operato:" tUIajdOn~ a D!lta'!'ypeCh..ck értékelIIdjuk., a CornpareVatidalor


csak akior 1!lÜlja éNényesllllk a vilsg6/t melÓbe bei" adatol, lia III: a meghatározott
adattlpusu. A O"taTyp<!Check mOv&let akior hasznos. lia mindenképpen agy adott
típusú értékel (pt!ldául egy datumol) várunk, de magi!! az értékel nem klv6njli vizsgákti
(PéId6Uj JlItfll ~teliük meg, hogy adáium 2005. ianUM l. utári legyen).

A:I. Operator tula;donság mellet! be k('J] :\lIítanunk a Type tutajdonsjgat is. Ez a tulaj-
~g ha~roZZ3 meg, hogy a bemene\nek milyen ad:ntipusba kell !anoznia. A Type
tulajdonság ug)':lnúgy:il Propenies ablakb:ln Mlt'I6 el. min! az Ope:rator tulajdonság,
és a következő értékek ~'iké1: veheti rel.

o String o D!lte
o Integer o C1Jrrency
• Double

Mivel a g)'ermekek ~ma mezőben tizedesjegy nélküli számé"éket szeretnénk kapni ,


a Ty.,.. rulai<Jonsigol az rnt~er értékre kell ~Uítanunk.

Eddig Idd! meghat1ronuk, hogy milren összeh:.lwnlíliSl: szeretnénk végezni, és hogy


a bemenetnek milyen adattIpusúnak ken lennie. Most az kövelkezik, hogy megadjuk
aZ! az értéket. amellyel a lm"z6be l" adalOl ÖSSZe kell hasonlítani. Et aZ énl'k lehet
egy áUandó, illewe egy !lÚ5ik mez6be hein énék is.

Mivel:azt szt'fCUlénk.l>OfW a gyem~kek Wima O vagy annil nag)'Obb Wim I~·en.


al összehasonliL-\s abl'jául a O ~11and6t rogjuk h~lni. Ezt (jgy adhat juk nl('g, hogy
a CompareValida!Of vczl-rl6 Valu~re tulajdons:lg;ll o·ra ~JJítjuk. Ennek a llllaj-
dons:\gnak a beállítása ul~n csak lInn~; van háltll., hogy beáUílSUk II ControlTOValidate
és az ErrorMeu"!le Iulajdoru;;\.gokat. A CQrnpareValidalor ~ totalChildren S2ÖVegme-
ző értl'ké1: fogj., vizsg;llni, ezért a ControL'l"oVal idate tulajdonsigot a totalChi lMen
6t~kre kell illitanunk. Al. EnorHes""ge tuLajdons;1.gban ....!amilyen Illjékonató
(Il.enetet célszenJ megadni, pfldiul ezt: The total numbo!r o f children ..... st. be a
wole nwober greater than or equal to O(A gyermekek ~n'" Ovagy egy O-nál
1lag}'Qbb eg6;z ~m kcll k1O'en), Az cmlilelllul:ijdons'igok bc:illil1sa ullln a képem}'6n

....... _... __ ._ ...


.... ' .•U'
__.-
'lIlami oIya5ffiil kell litnunk, mim II 12.12. itrin .


• ,,' --- ,

-= .-
12.12. im
A ComparelWldmor
go ..do!.ilotlfk róla.

-,-.. hogya bco.o/II ~ O
'....o' .wgyobh /W.'"
/>10$ kj is pr6bálhaljuk a OmlJXIreValidalor vezérl<'\: mfl'köd&a: löltsük be a Vall-
dationControlTestBed.!lRpX oldalt a böngélil6nkbe. Ha agyennekek sziima
mel6be ér"l"én)llelen adalOl írunk. a ThI! total number of children mu.t bfI" who1e

. _-_ ...
number greater th<t.n or equal to O hiba (Izenetet kapjuk (lá:;d II 12.13. :ibril) .

'_.'~' ''' .. _~~


"'
l


:-e
"
f __ _
i>
-
"l1l~~~-
- , •

-_...........
,. 0-·
T...

-" -
_ol_-I,. ""''''''_''__ 100._

I .,.,.... I
12,13. 6bra
ln.>bl)fei<", be"'etlCf ereib.
I~/." 'nqJfr1e16 hibarb:eoU!1

I>londen oly:m érték. ami nem egkz sziim, nem O VlIgy nagyobb O-n11. éTvénytelen
bemenemek min6sill. Ussunk nélliny I*ldit:
218 111. r6sz • FIIIasmM6i ldItOk m!~." WdOIgO'.'

• Srou
• -4
• 3,456 Ca vessz6 miatt érv~ytelen)
• 3.14159

• 3456
·,
• O
• 45533

A gysllllsbk sz6már. C~ lehet fe1&6 korIétot beéllltarti, Bilonyosség{lal


18k~lelezheljiik például. hogy senkinek sio<:s S().tléltöbb ~e. A fels6 koriét
beállitáúhol adjunk még egy CompareValidatox ~zérlót III oldalhoz. állíts" lI1Ilak
OP"utor tulajdons.i~t slassThanEqual lkisebb vagy egyenl6) éné«.ra,
a v ... lu<>TOC~re tulajdonságot pe~ 50 ......
Ké! ComlW8Validatol' ~rif16 használata Ilety.n azt is megtehetjuk. hogy egyetlen
Rer>geValidatO!' vezérk'lt lIkaImazunk. Ezzel a v.zérl6vel ft követktl6 részben
ismetketlletilnk meg,

IblYqj<5, hogya felhaszn:i16 iln'setl hagyhatja a gyermekek "úma mez6t, ,.. ~ ha


a névmez6t kitölti, <k ebb<- a mel:6be 'lCffiITUl nem ir be. a Cikk Me gOmbr.I klonintbsal
elindltoU visszacsalOIh eredmffiyek~pen az ASP.l\'ET oldal a~ Input i8 v,,-Ucl
(A bemenet erv61yes) ilr.enelet fogja kiími. Ennek az a unul~8", hogy oak
a Requirrol'ieldValidatc:>r veZérlő biZlOllitja, hogy mindenk~ legyen bevitt éné:k
egy mez6ben. TdJ;i1 ha azt szeretnénk, hogy a feLltasmil6 feltétlenül megadjon v:dami·
Iyen étr!ket 3 gyermekek mma mezl5ben, chIlez a mez6höz 3 Compare\'aLidator meUetl
egy RequiredfleLdV:r.lidalor vezM6t is hOZZJ. keU kap<:SOlnunk. (A következő réSZb6I
megtudItatjuk, hogyan vizsg;1Lhatunk egyetle" vezl'rl6t több eLlenörz6 vezérLŐ\tel is,)

Kót m0z6 összehasonlftása a CompareValidator V9ZÓrl6 sOIIltsógóvol


Al: előző pr!Jdáb.an a Compan'V:r.lidator vezérlővel a ~... nnekek ~z:j~t egy ;il!andóval
(a O-val) hasonlítonuk össze. A felhaszn~1611131 bevitt adatokat azonban nem csak
~Lland6 r!nr!kekkel vethetfilk assze, hanem egy mbik bevitel! me:ző r!rtr!k~l is.
A fiógyermekck mma mez&<' belrandó adatn.ak ptltUul kisebbnek kelllenrue
az ÖIl'óles gy=k w1m;i~ (Vllgy legal1bbis egyenL6nek az oda befrt 5Úmmal),

Az 11landó alapjtn, illetve egy mbik mezl'l r!rtr!ke alap~n v!gtelt összeh:uonl1tb
kőzött csupin annyi a kOlönbsr!g, hogy az el56 esetben a CompareVaHdalOl'
VdueToCornpare tulalOO~g1ban adunk meg egy ;illandó r!rtr!ket:, míg a m1sodikban
nem 3 VelueToCompa.re tuLajdo~ghoz fordulunk, hanem 3 ControlToC~re
rulajdo~got ilJitjuk annak a beviteli vezl'rI6~k az azooosíl6j:1ra, amelyiknek
az ~rt~kéveL ooze "'eretnr!nk vetni a kapott adalot.
Il6n • A i1IIIazIi616i ldIItOIt 8111&1 f 1279

Példinkban egy olyan CompareValidator vez&l6re van s1';!lkségilnk. amely biztosítja,


hogya f1úg)'ermekek ,,~tima mez&>e beirt érték kÍ5ebb vagy eg)=16 az összes g)~k
szlima mez6be beirt értékkeL Kezdjük azzal, hogy a tervez6ben egy CompareValidator
vezérl6t húzunk az oldalra a Toolbox paJet~r6I. és a mall!lChildren szövegmez6 mögé
helyeniik. Ez utin tillí\.')Uk a CompareValidator Cont r ol TOvalJdate rula~gát
a _leChi ld.en értékre. az Operator rulajdomJ.go( r.eaaThanEquaI-ra. a Type-ol
lnteqer- re. az ErrorMesS951'e-et a The nUlllber of male chJ Idren DNst be less than
or equal to tha number of total children (A fiugyermekek sz:;írru\nak kisebbnek
kell lennie az összes g)·ermek 5Zám:ínáJ ~'agy egyenlőnek azzal) szövegre.
a Contro l ToCanpa.e rulajdons<'igOl pedig totalChildren-re Miután bdlJitouuk

_-_ _--
az emIilett Ölllllajdonsigot. a képernyőn olyasmit kelj l1tnunk, mint a 12.14. ~Imn .

....... -- ...
•. .J . .J IH'
....
t .. _ _ _ _

,-.-'
..."""_
•.
J
.
'I't. _ __~
.. _ _ ... _ _ _ .....

- --
_ .. c
"
o
o. ,
.............. • •••

--- --

•,

- -. - 12.14. 6bnt
.ti /OltllCltlldre"

"lY Compt>rel alldlllOf"


tedrl6I <'dlu ...

néUílk meg az ASP.t\'ET oldali a böngésl6ben. Ha az öss>:es gyermek sdrru


Mo:;t
mezőbe a 4 Méket iljuk. a fiúgyermekek sz:;írru mez6ben pedig 8-al adunk meg, a The
nwnber o f NIe children must be less than or equal to t he number of tot al
children hibaQzenet jelenik meg, de akkor is ezt 11tjuk, ha a f1úgyermekek sz:lmaként
nem egbz SÚmOI (hanem egy olyan Méket, minI a scot t VlIgy a '.5) irunk be.

MI tört61ik azonban akkor, ha az ~ gyermek $z:lm;! 5, a fiúgyermekek mm;!


mezőben pedig a · 2 Mtk nerepel1l\os, hibaüzenet nem jelenik meg, mivel a-2
kisebb, minI 5, r.iadhul a -2 esész sdm.

Az ilyen hilmk ellen (igy vtOekezhetünk, ha ugyanazt le5SZÜk. mint az &szes S)"Crmek
.száma mez6 C5Cttben, egy (ijabb Com~Valldator ve!trl6/. adunk az oldalhoz, amely
w ellen6rzl. hOSY a fiúgyermekek szim;! mez6ben O vagy ann11 flag)'Obb Mtk
nerepel-e H(izzunk I<'~! egy (ijabb CompareValidator veztrl6t a maleChiIdren
~z6 nW 1&ez6 Compare\'ahcbtor \'e~ mögé. Enndc: a'~
a ControlToValiMt~ rubjdonsltp 1eg)"ttl . . leChildren. a 'fYPe IUbJdon$Itp
Int evet, n OPetato" IUbjdomJ.ga GCHt.rThanEqual. az EtrocM.... -o'·
tub,dond·
ga"nle number of _le children .... t be veHter t.han oc equal to O CA flu~
kd; wm;i nem lehet ~nál Josebb). a Valu.-roc.-pan tub~ga pedig Q.
A 12.1S. Jlrin iJth3tjuk. hogy:!n fest az oldal a Visual \\m o.,'·elope,i)ell
az úl Compare\'alid.:uor vezér\6 hol.Zbd.i$a ~ 1U13~8ainak bdllil:1$:O uL'ln

. . ...--'" ... - ..... -


.......
._--

12.15. an
A}lllg)........ e........ udmtl,
ItInIn8 ma6 ('/kt,~,.
s8tc::: <u" okW/J= "i/,,,"'-'
_o.
- mt'B <xr Co11I(xlro\,<,lldaror
,.-a
M,udn en ~ Compare\~lidator veUrl('k is a~ okblhot. adtuk, az ASp'\n okblon..dr
mclJiclcrnk egy hibaOzenel. tili a fellJaSVL11ó I"ICtptiv Wlimot ír bt a AÚg)"ffTIlCkek
$dma mez6be.

A RangeValidator vezé~6
AllOS)' az előző részben l~nuk, II CompareValkbtor veúr16 arról gondoskod,k, hogy
a bevin ~tk megfelel6en viszonyulJon egy Jllandóhoz vagy egy rrulsik bevitel!
vezér16be beiM ~tkhez. o., mi a helyzet akkor, h:i an $zeremtnk biztOliílanl, hogy
a bemenet egy adon 6ttklllnom1nyba essen:> Compare\'alkbtor vezér16b61 ekkor
kell6c kellene hasznilnunk, eg)T{ II I2rtOfNny al~ h:itlr.:linak elJe~
(Gruter'rhanEQual), egyet pedig a fels6 kort:1l vizsg:lbtlr.> (LUI11>anBqual).

Amennyiben a IlIltOfldny al.56 & feb6 h:il:1rMtke :lllandó. kél Comp;If~Vahdator


helyett ~lhatunk eg)'elJen IbngeV:.llidator veztr16t is. Enndc: a kJ~I:ls;1r.11
a ValldationControl,-,.nBe<! ... pa okblon:lX tletkor mero lŰnik II legalkalma·
abbnak, mivel ennek .!:nl'ke bnen1 hatirok (p8diul O ""'150) k~ kell tS/ien
12. 6nI • A feIhaZMI6i ~ Ihn&r' IZSl
A RangeValidator vezérl6 cHI; akkor hasmhtó, ha a tartomány als6 és fels6
hatáfénéke egyllfém állandó. Ezén oom hasznéllatjllk ezt a vezérlót a fi6gyermebk
&n\mának ellenőrzésére, II fels6 korlátot U9YiWlis lll: ösmtS IIYl!fTTlek száma mezőbe
beln érték. halkozza meg.

Adjunk egy R2ngeValid:uor ~'e~rlŐ! köZ\'etlen az age szövegmez6 llt~n (12. 16. :\bra).

•.
.. __ ...
. HIIII
_----_ ....
:.06

l
. ,-
---- -
, .
_. 12.1 6.~
Ar ASP.NEr oldal
"8)' R(I''8<'I"aIIdllIO'
,,,,,,,"*, ~1il1A«J mti"

Ahogy a többi ellen6~ vezl:rl6 eset&en tettük, lI105l is be keU :\lIit~nunk ~ Cont-
rol ToVelidn .. és ErrorM....ag .. tula~gokal. Mivel az ag .. mez6be beírt tntket
kh'liniuk \'izsgáJni, az el6bbi értéke legyen age, míg ~Z U!6bbié Alle ...... at be bet.. een
O and 150 (Al életkor mez6ben egy O és 150 kÖZÖIti szjm adható meg).

A CompareValid:llorhoz h3:>;Ofl!6a" a RangeVaJid:llor vezérl6nek is van egy Type tulaj·


donsJga, amely megadja. hogy milyen ~dattlpusúnak keU lennie a bemenemek
Mivel az életkor mez6ben egy tizedesjegy nélküli sumot suretn{onk kapni, illítsuk
ezt a tubjdon~goI Integer-re.

M06I már csak annyi ' .. n hjtnl. hogy megadjuk az életkor mez6ben elfogadható ktl'kek
tan~ny:\nak alsó és fels6 hatir.1t. Erre a R2ngeValidamr vezM6 M<lxilOWllValue és
Minl!11Ul!lVillue tulaiOOn.ságal szolgálnak Mivel egy O és 150 kÖZÖlti I'nl'ket szeretnénk
kapni, a Maxi!llUl!lValue legyen 150. ~ lIin1111U111value pedig O. Az emlitett tula~­
gak bdllitisa ut~n a képemy6n oI)'11smlt kell Utnunk, mint a 12.I7.libr.1n.

Ha most mcgnl'nlik a V... lidati'mCont r oITestBed.espx okbh a böngl'sz6nkben,


láth3!Juk. hogy ein' hiooOzt:nel jelenik mt:g, hac5:ilk nem lugyiuk Oresen az életkor
mezŐ!, ""gy nem egy O éi!; 150 kÖlé e:;ő SLá.mot adunk meg benne.
ml •. • . H 4I6IedMok~""""w f

n, •.•..• '._ .~ ....

• •

__ 4_-
_.. ... _---
---
,

_
""----_
!I._._-_
--
. . . . .
"'_ .._-_ .. __ _""
_- ~

- _._~

..

.- ..... ... ,
_.

12.17. Mn
lit" oldal .. R.o'W-1W/d<JIor lul.ojdollSÓ(!,.afnm. bI!d/J{ldstJ Ulón

A bemenet ellen6rzése a RegularExpressionValidator


vezér16 sagftségével
A felh2=dl6 ilt2J megaOoI:l aW.lolmak g)'lIkran egy adou fOlll1álumlJgn kdJ bU-lIliük.
Amikor a fdhuvdlólól p8:ti1ul 32 e-mail d~k&jOk . acimet ebben a form.tb:!n kell
beírni: egy vagy löbb bnú vagy súm, a kubc jel ( e). wn& egy vagy tObb bnú \';lgy
ulm, egy ponl , llletve alegfel!i6 szinhI unorNn~ (com. O<:'I,~, «lu. U$, uk, fr stb.)

A Vdida t ionControlT.nBed . u px oldalon a társadalomb1zwslwi n:imot kérjük ,


amely 32 EgyesOh ÁII:uooktxrn kileoc sz:imjeg)'b6I ill, és iluliban igy ~k­
ltXX - XlHOODt

Ha bIztositani ~, hogy egy k2taklm.tnc egy bizonyos form.trumot kOvessen,


a Regu13rExpra.sIonValidatOf ,~Zérl6I hastnaJhatjuk. Et a ,~egy szab4lyor
.wfojc:.tés~el Allapitja mrg. bogy a bemenet íllenkedik--e a megadoa mintán.
A Wlbilyos klfefezés egy olyan kankterlAnc. Imely kan luereket és k\llOnlege5 jeleket
Illl'!lllmaZ. és egy tlwinOlll mindI hadroz meg. Szerencsére ahhoz. hogy hannJlla$wk
a RegularExp!"e5$lonVaJkbtOl' vez!rl6l, nem kelJ tOk~lete5en jAnasnlk lenn(lnk a n:lb::l..
Iyos kifcjezbek nyelVlllruoban.
SlabiIYOS killljlzHtkll lZámOS PrOWarnINn ~ tm!rt t./I'lIIRl ~
1TI8~ • hHm6l.tI*;.t Á térnl! b6vebb kilejtHe azonban sajnos ~
~önyvünk ket'''IIt, m6r Clak aMI: is, m8fl • Visual web [)eyeloper sz6rnol bHpltltt
szaMlyos kiI.jmsstl rendlllkelik, ..-netv-ktt nlOl h~al\ri; I Regul.·
ExpressionVliOator YI~ hogy b6rmit il tudNnk • szabáIy1Is kifejtmet
mIllOd6dr6l.
lia meg SlIIlb • • IIr'IlR. SabítYOI kiIejeliSel hasznMaút, OIVISSUII; ti IZAn
Imuduction tf1 ~ E.q;wessiollS !http,. 1....,.,. 4guy,trcarolla.".,./
web .. ech/ 0901 99· 1 • ,ht.ao.l ), ilelW • Cor,.,IOII ~ CI RegUI4r &preniDM
!h .. tp,llwww . 4wuy.froarol1a . eom/webtech/120400- 1 . lhtml )clmú
eikbktL ElItI kMlI. http, Ilwww. r~upli b .".,.1 elmen a;v kiter)tdt ~
lyoskifeilál·gyújtlrMnyi is Idatunk. ihtve o/vasgllthat~ I közösMg levtltit.

Adiunk tehá, egy RegularExpre5SiooValidator vez&l61 U ASP.NEr oldalunkho.z, amely


gondoe:kodik róla . hOSY a WsldaJombiztosítbi sUm a megfelel6 f~1Um6 legyen.
Hllzzuk a veúrl6t a Toolbox p:ilJemról a lerw!z6ilbbk ba, & helyeuük e l köZ\'etlenQI
at . .n sw.-egmeUi mlIgÖn (1J.Sd a 12.18. ~lril) .

.
~ -
.-
- --
..
--
-- -

-
12.18. an
..u ASP.NEr OJd(Jl tg)' Rtfj"InrE.-.pN!SS/o"lalidtlror ~ /rorrdlJdtbll "111M

Ez utin ~lIítsuk
a vez6i6 Contro l 'l'ova lic1llta Nlaldorui8~1 u BBn b1! kre. a hlb:lQ·
reneI ( Irre rKeaaa ga) pedis legyen Your .ecid lecurity n~r """.t
be in the
fe .... t xxx- xx -xxxx (A Úl'$adalornbiz106ltbi sUmot XXX·XX·XXX:< formiban
keH mep;Ini).
284 111. rá.z • flllM:znM6i ldItOk ~ " feIdoIp&'

Az emIf1ett kft tu13jdonság megad'isa ulin .mr csak a ValidationExpression tulaj-


~gOI kdJ bciJJítani: ez ha(~rozza meg aZ! a szabáJyoskifejczés-mintit, amelyre
a bevin ~cbln:lk ilJcszkednie kelL K,mintsunk a Val iclationExp.reasion tulajdonsigm,
hogy ~ jobb oIdal~n megjelenjen a három ponto( taJUllnuzó gomb, amelyre kattintVlI
megjeleníthel.jOk a Regular ~ÍOI'1 Editor p1~bl3kOl 02, 19. ~) .

....'" ""."~' ".,., 1"1 ,;;

12.19. '*n
A RPgu/ar Exptes</o" Ed/mr
párl>i=h/abl<1/tbo" _ ""'8"doIl
"" II <-I
.mbiiJy><Jd.fr}eU$-"",,1d1l ~iJ
,"tl/aut Mtu "Ir

II Regul~r Expression Editor ~rbeszédablakban szab:1lyos kifejeztseket tal~lunk.


amelyek közOl v~lasZlIt.3(unk, de saj;\t kifejezést is beírhalunk aValidltion Expression
(ellen6rl<'.i kifejezés) mezőbe. Mjyel most a tirsadalombiztosítási számot szeretnénk
ellen6rizni. götgessiink a U.S. Social Security Number lehel.őséghez. Ennek a lehet:65tg-
nek a kiválasztása uún a szabáJy06kifejezés-mirua megjelenik a V.. lidation Expressioo
mez<'.iben. Kanin~unk az OK gombra, hogy végJegesí!5Ük" RegularExpresskmValidator
vezérlő Va l ida t ionExprenion tulajdon$ág:inak be:íUíIásit.

Miután ezzel v~geztank. né1.zOk meg a VaUdationControlTeatBed .aspx oklah


a börtg6z6ben. Megflgyelhetjiik. hogy ha:l. úoodalombiZ!osítási s;.jmQI nem megfelelő
(teh~t nem három s;.jmjegy. kÖl6jel. két sz:;Imjegy. kötőjel. n~8Y száml"8Y) forndban
aditJk meg, hibaüzenet jelenik meg. f:n'ényes ú=dalombiztoo>itási sd.m lehet pél,jjul
~ kövctkem 123-45-6789.

Az. ellen6rz6 vezérl6k esztétikai tulajdonságai


Ahogy a Jcck~ben többször IS l~ttuk. amikor a felhaszmll6 tl'\61)llelen ~r1~kct ír oc,
a megfelel~ ellt'nőrz6 vezérlő Er rorMesg"lIe rulajdons:lg:\lxm megadott hiooilzenet
jelenik meg. Ez az ilzenet minden eddigi péld!iban piros be«l'kkel jelem meg, de
32 ellen6rz6' vezérlo%: esztétikai tulajdonsigait bcillic\'a ezen \o'iltoZ!atharunk.

Az. ellen&z6 vezérlo%: is ugyaruzokkal az e.Zt~;kai tulajdons!igokkal (B<lckColor.


BorderColor. BorderStyle. font stb) bírnak, mint 3 többi 1;\-"ebes vezérlő. de ezek
5Qf:IkieghzOl a Dhplay tulajdon.'i:iggal. ~mely ~ZI. h:lt~roz.za meg, hogy mikbIt
jelenJ"ll meg az SHorMeGug" hibaüzenet. A Diaplay rulajdons:1g a kÖ\'etkez6 h1rom
~"~k egyikét kaphatja,
• N::me
• Static (ez az aI3r*nelme1.é!I)
• Dyn&nlic

A None tttékl1 vila5Zlva II IÚOOOlet\CI nem jelenik meg, mfs akkor sem. ha a fell\;l~,g16
& ...6lyte!en bernene!.et adon meg I-b a Stati~ be:iJlds mellett dOntonk. az okbl akkor
is fenmanp. a hibaillerln heI)~, ru. U ~ ."th<ttó, lb a;ronban a Display IUL:I.~-
8'JI a DynaIIlic &t&re ;lllill'1k. at dle..(i..l>'h·~ hibatizencte oak akkor fogbJ hd)'el
az okblon. ha SeK keNI Jruuk megjekIlÍl~,

A Static 61 Oynamic bdWt:1sok közOOi külOnl>stg nemltllet1's&e hozzunk létre egy Új


ASP "-'ET oldalt DynamicVBStatlc ....... px néven. és hdyezzilnk el r:ljta eg-,'fIÚ,S alat! ké!
TextDox vcztrl6l. Mindké! nóvegllle~6 nlÖgé Irjuk a 'l'hh text "w-u rlght ... fter
a text box (Ez II szöo,'cg köZ"etLenOJ egy SZÖ\'egmez6 mögOct talllh:u6) :JZÖ\'egeI.
A 12.20, ~lrin láthatJUk. hogyan kell ekkor kir1hnle,. Vlsu:il Web De-.·~mek .

• ,..-_.......-
""'-_ .......-.

,'- _.•. _._, - - =--tI


-- -
12.20. 1i1n
JI u·"u~o5bc" lilit TI'XIlJax ,.,.,1rlfiI ad/lmJt az oklaJQ
Következ6lépbkf:nt II TCXlDox "eúrl6k é!I a Rö\'I:'gek kIkt lriizzunk egy-qn'
RcqUlredF'oekI\':didator vezbi6t. és :1llitsuk:azok ,'>IIt ~olToVelldate tubjdon$1pt
a megfd~SZÖ\~z6 alOl"lO!SÍt6jU3,:l2 Erro~Me..a9<' tubJdons1S &téke pedig
1eg-,'eIl "MIls desoonBtnte. the difference. between StaUc and OynaJIUc Dhplay
{A 5I:Inkus és dirumiku5 megjdenilé!l kÖZÖltl kOIlln~ szcmléltetbe}. Ez utJn :1l1itsuk
az egyIk RequiredFleldValldlltor Dhpl .. .,. tul3fdon.s:lg:1t Dynamic-r:l. " mbiké! pedig
hagyll'k a Static énékcn

VtgOl húuunk egy Hutlon "eztri& mindk& SZÖ\-egmez6 al.1. A kq:,em)"t5n ekkor
oIpsmit kell "'tnunk. minta 12_21. ibrán.
286 1U. r6sz • FeI1eIZn6I6i lCIItOk ~" fIIdoIO''''''

lZ.2UbnI
flt m.t. ilii R('(jUlrodFk/dll>/idalor ls surepe/

Most néuOk meg a DynMUc:VsStat ic ...... px oIddl a böngész6nkben. M.egfIgyt'lhe!jGk,


hogy az a Requill.'dFiddValid:uor vezérl6. amelynek 3 Display tulajdo~t Stat ic
~Mken ~'tUk. a sz.ö,.'egmez6t6l. 11vol jeleníti meg a This Ilppeara rig-ht a ft .. r
II t.xt tox szóvegeI. A kimatlldó hely a vererl6 hib;t(1zenel&;ek helye. A oynami c
megjodenítési bdllítisű R""luill.'dFíeldV:alídnor ve~r16 :aronOan kooe!lenGl:a 5~'·egme·
~ után jeleníti meg azemlile!l ~lŐ'\.eget. A:l. okblt a böngt:;Wben a 12.22. ~bra mutatja.

~._. ,., .. ~

""-_ ...
n. _ _ ....... _

12.22. ~
Az ares IenIW CIIIr.:I " RequlnldAddI'alld"lOr..,,-hI6; ,,1tU'I)~.n Dfsp/IJy mJajdonsOg<ll
St,,{k·,.,. állflonult

MOiSI kattintsunk:a webold:alon eJhel}'t'ttll gombtll. anélkGl. hogy Mm!it is ifJúnk


a szövegmez6kbe. Ezzel megjelenítjolk mindkét Requill.'dFieldValid:ator hibaüzenetét.
Az eredmfnyt:a 12.23. ~b~n 1~l.h:atÍ"k: aZ:a ReoquiredfieldValidnor vezérió. ame lynek
:a Di s"I IlY ruLajdons;\g;il:a Dynlllllic én:ékre AlJjtonuk. dinamikw.an jO/.>br.I CSÚ5l:l:atj:a
a Thh appea rs d (,lht a ft e r a t."t bo" uövcgel, hogy helye! csin!iJjon 3 hibaÜtt·
netnek
12." 0.'" iMI!i ..... ' •• ',, 1287

_ _ .. _ _ u. .. _ ...

.._-_._--_ ....... --

u. .. _ ...

12.23.6In
Az oItJJú a gombro IIa,IU,/ds ut,j"

lU U", ,'lz,IIo ..6ra6 ' u"". . . ,,,,, ...,,..'J' q'

hogy a I"OGI tub)dons;;ignak

!oZ.in a \'ŰfÜ!o.)

Egyéb ellenőrző vezérl6k


AZ ebben az Odban •.1IlO.. h négy ellcn6rz6 vezé16 rN'Ueu ~ két ellen6n:6 vez61(l
lo!1elJk Az. e!,;6 a CwromYahdllor(egyéni eUen6n6), amely _ mini ~ neve is mulat",-
1:8)' I~IÓ "ezbI6. ts a.nelJyel ~ bemut:ItOIt~' ellen6rUi 'ezérl6l:~ eltm:!
módon \'Iag;l11wo1Iuk a fell=zniló álul beviu adawb..

Tap':IS:culal~im .szerint azonban rilk::ín ' .. n szuk>L'I! ~ Cu5tOm\"abdalor \ezél16


h:1.51.nálalJra: a bemutatou ,.egy vezél16 ~Ital!ioon elegend6nek biWflyul Ha mé~
a C\l~om\'alidator képe55<..:geire lenne .szilks(:gQnk. olva5~tlk el a Using Ihe
Cuswm\ aJ1d:Itor Conlrol cimú cikket a http, 'aapnllt. 'lIuyafromrolla., """
an '3102-1.lIlIpxcimen
A rnas.ik ell~ő vezérlő, amdlyd nem FogblkoZlunk. a Valid:,tjonSumnu.ry. amely
klÍna n w.zei oly.ln. a ",'clx!ldalon nerepló ellenónó ve~rló Rrr orMeSSal:le tulai-
dons:1.8~t. amely (:n-énytelen bemene'le'l jele?.

A ValidatKll1Summary veléri6ról a ht t p , ! / ."."., ... 311ch 001 s _c om! aspnet /


contro l_vali da tion9.",....,ry .aep címet! olvashatunk b6vllbben.

Összefoglalás
Am,kor a Fclh.Jszn:'l16kt61 "wuokat kén1nk, általában lényeges. hogy ~ bevitt adatok
mcgfelelj(.-nek birooyos követelményeknek. Egye:; mezőket kÖldezó\-é lehetünk. nl.1s
meWkbcn wnlbtéket kövctelhelOnk meg. de az is elólordulhat. hogyabemenelnek
egy adOlt é-nl!knl!l kisebbnek kell lennie. kl!!. ~lIand6 értl!k közé kell eo;n,e, \":Igy
valamilyen mlnUr:I kell illesz.k:ednie (~Idául amikor egy EgyesOlt Államokbeli
irlnyit6.<;;clmot v1Irunk, an~lyn"k fom1lij:l XXXXX vagy XXXXX-XXXX lelll.'t, ~hol
minden X egy-egy wmjegyel jeleni)

A felha~zn:jI6i adatok megfdelő Fom1litum1in:>k bittosí1li"" a bemenelel!en6r-zb.


Az ol)"'ln koribbi lechnológl.'ikoon, mint ~1. ASI' b a PHP, a bcmeUel "Il~
nem voü egyw:ríl; a fqleszt6knek Sól~1t kódot kellen lmiuk elTe a cél",_ Az ASP.t\'ET-ben
azool:>an a külÖflböző ellenőrz6 ve~rl6knek ~hc:t6en nundez már a múlté_
Ebben a leckében ~gy ilyen \"ezé-rl6vel i.-;rnerkedhcttOnk meg: a RequiredfieldValidator,
a CompareVal;dator. a Rangc\'~lidalor b a RegularExpre..sionValidatCJr vezérl6\"eI

Ez a f<'i<'zet aZ utolsó volt azokruk a leckéknek J soclban. amclydcbcn a (cllU5Z.nálói


adatok összegyűjtésévd foglalkoztunk. A köve'lkt"ZŐ 6r:1.tóJ kezel .... fi8)'elmünket
az adatbál.isokkal \';116 munlcirJ forditjuk. IMir ncm 5:7.entelünk több ór.'it a rdl~1ói
~datok összc~1T~ésének. a könr... 11litrJ.le..-6 részét)!..." SZCft--plő pl'ldik oi'melyike ig~nyd
Felhasználói tJevitell, ezért famos, hogy m,,~k a tanultabt.

Kérdezz-felelek
K: Jll)isplay tulajdQ"uis",.k IlÓrom bcál/ítá.Ulle!tct ["olie. Sltlllc és Vpuwric_
.II Sltlllc 6" DJ7ramic bcQllr"rásoJl L"llágo.klk, de ml szrlks<'ge lehet Wirld"ck is
a Nolle énéltrc?
v: ~la egy cllcn6rzó vezérlő Display nrbjdonS>igjt a NoIle értékre ~lIitiuk,
az ErrorMesAag" tulajdc;>m:1gban megadott hilxrilzCTII.'t I!{)/ra nem jelemk meg.
filgget1enlll an6l, hogy a ,i~gált adat én'én)"eS-C. Jogos a kcrdés, hogy mi Wikseg
lehel elTe_
Az egyik ellen6n6 \~1.bi6. :.IlTleUyel fl('ffi r6z/ete;en dlbm
rogl~JkOZlunk
a fejezetben. 3 VJhdauonSllmnury. amel)' kJina n ~ oIran. a "ebokbJon
5Xerepl6 eJlen6rz6 \~1,!rt6 I::rro rMftua!l. tulatdonsá~l, amely ~I'\'énytclcn be-
menetel. jelez. H~ ~'5ZOI11 minden ellen6rz6 ~ez6i(,! Illegjeleníti :I saj:ll hlb:lüz,,-
lle1et. ts a \ ahwllonSumm:lry is kiírjo. azokal. akkor mondt:n hibaOzenet k(uzer
fog sze. epeLru;u: oIcblon, fútt a \';tli<btionSumm:ary v"zérl6 haSloo!at:lkor
qn't'S f~ t;, ~,_,.., :l.llil",k:.l többi dl~ \'e.ttrlc"l Di8pl,oy lUbJClon$;log1it.
Itog). 3 hlb:a~ OOIk a \ 'ólli<:blionSumm;ory ;elen.t5Oe nq.
Iv. II.rro """" U!I.. ;5:l1 Tex~ IUb~gokJcd:.lZ! is meglC'heIiOk. hogy u ellen-
órzó \=frI6IIe1ym, iIkt\."e:ll \'aIKbtionSunvn:lry.oen ~ hibaOzen!:l tclmim
mt'8. Hl! egy ~ "t'z!rt6nek mind a Tl xt . mind n !rro r~.uliI" tulajdon-
~IPI megadjuk, a \"ezl'r16 hel)'b> a Text ml:ke .,-un:pel majd. míg a7. Brror-
1ol ... S4lJe a VahdotlonSunulIary-b<: k.·ru) Ola n oJcbion '.In
ilyen \"czérl6). Te~t
a= is Iehet65tg(lnk ' .. n. hogy u Erro r Melugoe tubjdon.s:1glxin reszk.'teS leir.l'lt
~k a hibáról, mig a Text IUIa~gWn CSlk l'Ö\iden (akár CAk egy oill<lg-
g;.ol) ;elezzílk. hogy \'3bmi gond \'3n:;a bevtn :;acbnaJ,
1(; AmÜllQr ti !f'ih(l$Z>1d16 ti ml'8fekl<5 gombra IIDlttnl. az <!Iknlin6 L'f!Zht1
[('gr-ehajlJa az e1Jc7l<5~ Iródot, ~ qo' o{\WII Mfgse gombol elh<!I.lo.'Z,,1
azOÚfaloll. amdl're Mlltlm/w áwgorhaJó az elkt/6rrés?
v: A Bl.JttOfl, UnkBuuon b hl"l:l~BuUOfl webc5 \"ezMőI< egrar.ínt rendelkeznek
egy CauB"'lva l l o:Sa t !on neViI lubjdondggal, ~melynek alapbtelmcb..'1t bt~ke
True , Ha eZ! a tula;<.lonságol rilb ..... ~ ~lIilluk. ~ gombra lo.t1ÍntVll ~lugot'haquk
az eUen6r7l5 k6dot.

Ismét16 kérdések
I. Melyik IUb~got kell bdllíl:lnunk, hogy egy ellen6n6 '"ezérl6 egy adott
hiwOz"netet ;elenítsen meg, ha a bem .."ék l .... 'en)'t.,Ien?
2. I logyan befol~I~1 a Ol s pjllY tulajdons.íll al ellen6n6 vezérlői< h;b:lo1l~'n('t~­
nek megjelerlbéc?
3. sok ...ehhel)' lehel&"o!: tcszl ~ fellw.zrul6knak. hog)' r,6kokat llOZUr"l:lk It'lre,
H6k lélrehozás:lltor a felllaSlNJ6nak 1ilulában meg kell adnia egy jclsmt.
3metyet k~ keU beimi2. hogy az dgt'pdé5b6l eredő hib1lcl kilcUsn'\bOtfÜk
Tqnilk fd. hogy egy il)"cn ,,~h kdl eikeu,'enOnk. MeI)~k cilcno5rz6
\'eúr\6I: h:&sznilnJnk anrutk el~. hogy 3 k& 5ZÖ\egmez6beTt 3WO()1;
(:nék 5leI"epe1-cl
4, .A Corrtparc\l;ditblor \"ezéri6\~1 dlen6rilh~11i.lk. hogy egy élték megfelei6
acbttípusú-e: Igu \'ag)' h:mlls?
5, Mik awk a ~z.alúl)'OS k,fl'jezésoek, él; mién 11OI5ll\05 a RegularExp~ion\'~ hdalor
\'ezérl6?
6.•.Monden """ildi ,-edt16h6z legfeljebb egy eller06rz6 "ezér\(\( r<'IKieJhetilnk."
Igaz '""gy ha.1f\IS?
290 III. rMZ • fllhllzn6l6j edetok ~ .. ~"f

Válaszok
1. Az Error-lIena\le tulajdonságot.
2. A DhplAy tul~jdons;1g a kö"etkezőlúrom fuék egyiktrt: állítható, None, Sta-
tic v:.gy Dynamic. A None bciUí~:;l v:\.laSZlva a hi!xtOzenet soha nem jelenik:
meg, fiJggetlcnaJ all61. hogy a bevin "nék érYén)1elen~. A Static beállílhsal
helyet foglal unk a hiOOOZ~-nC1 sz:lmánl a weboldalon. akkor is, ha annak ~'g­
jek-nító:sl:re nem h...al sor. A Dyn.....tc be:illil;\s ezzel szemben nem foglal le előre
helyei az ellen6n6 ,'ewrl6 hib:311z~""ek (lásd a 12.22. és 12.2}. ~br:ll).
3. A CompareValidator vezérl6l kell haszn:iJnunk, és anllllk contr-olToValidate,
illetve a Control~re tulajdonslg:lb:3n kell megadnunk a két szövegmeZÓI..
az Operator tula~got pedig az EquAl énék~ kell.illíununk. (A 3. gyakorlat
t'ppen egy ilyen weboldal elk6zítbd célozza.)
4. Igaz.
5. A szabályos kú~;elk:s egy olyan br.l.kterl.ine. amely karnkten.4<et és külOOlcll"5 je-
leket tartalmaz, 6< ~'g)' által:inO'! mlllt!it hat!iroz meg, a RcgularExpressiollValidator
p<'"<llg egy olyan ell0m6rz6 ""zi'fl6. amely a oc'\"iu ~datot egy l<Z:lbálY"" kúejcz(os
Sl.'gitségével viI.sg!ilja. AZ(-rt 1\aSZtIOIS ennek a vezér\6nck a haszt"\illata . lnett [gy
goo~odhatunk róla. hogya bevin adat megfdeljen egy bizonyos minliirntk.
Ha péld1ul nt szcreménk. hogya fdhaSlJl:lló a 1I,lefonszin~1 xx-x-xxx-xxxx
formában:<dia meg. ~hol minden X egy sz:\mjegynek felel meg, en könnyen
elérht.1jOk a Rcgul~rExpressionValidalor ""8Ít~gével, de mls ellen6n6 vezér"-
l6>'eI nem.
6. 1·l3mis. A webe:s velérl6khöz !et5z61eges számú ellen6rző vezérlő ka~lható.
Ha v,m példiul egy Tex\Box vezérl6nk, amelybe a felhasznJilónak a ÚThada-
Iombizl05íl!isi sUinúl kell beimia, ~Iszertl egyszerre igénybe "cnni cgy Regular-
ExpressionValidator vezérl61, ~mely gondoskodik róla. hogy a beín adat meg·
felelő fOmUtumú legyen. ilietVe egy RequlredFieldValidator vezérl61. amely an
biZI0:5ílja, hogy a felh:w.n:\lö nem h agyja ü~n 3 szövegmez&..

Gyakorlatok
l. KbzjlS(lnk egy egys~ ASP.Nl' · oldalt. ~mely kt!. ReqUlredField\'alidalor 6<
egy Com~reValidalor veIkrl&. alkalmaz. és arr~ kéri ~ fclhasm3.1öt. hogy adja
meg a kél kedvenc fagy13lttípus,1t Ehhez ká szövegmez6re lesz Slükségünk
Adjuk az okl:llhoz a szOkséges ellen6rző "ewrI6ket, amelyek gondoskodnak
róla, hogya felh:lszn!iló mindkét mezőbe beifjon valamil, és hogy awk tartalma
dttr6 legyen.
2. 110zwnk létre egy ASP.NEl' oldalt, amely a felhas:m.~IÓlöl az e·mall dmét. illetve
a honlapj:\nak al URL·jét kéri. Ussuk el az oldalt a megfelelő ellen6rz6 "elér-
l6kkel. amelrek biztosítj;1k. hogya fclh:lSzn:\.1ó legalább a levélcímét rnegadj~. és
12. óra • A felhasználói adatok ellenőrzése 1291

hogy mind az e-maii cím, mind a honlap URL-je a megfelelő formátumú legyen.
(Tipp: a RegularExpressionValidator vezérlő Regular Expression Editor szerkesz-
tőablakában készen kapott szabályos kifejezéseket találunk az internetes levélcí-
mekhez és az internetes URL-ekhez is.)
3. Sok webhely lehetővé teszi a felhasználóknak, hogy fiókokat hozzanak létre.
A fiók létrehozásakor a felhasználónak általában meg kell adnia legalább a kívánt
felhasználónevet, egy jelszót és egy e-maii címet.KészítsünkegyolyanASP.NET
oldalt, amely négy TextBox vezérlőt tartalmaz: egy szövegmezőt a felhasználónév,
egyet a levélcím, és kettőt a jelszó megadására.
Ahhoz, hogy a bemenet érvényes legyen, minden mezőt ki kell tölteni, az e-maii
címet szabványos formátumban kell megadni, a két jelszómezőbe beírt értéknek
pedig meg kell egyeznie. (Ne feledjük, hogy ez utóbbi két mező TextMode
tulajdonságát Password-re kell állítanunk.)
(Ahogya 20. fejezetben látni fogjuk, az ASP.NET-ben többféle bejelentkezési -
Login - vezérlőt is találunk, amelyek felhasználói felületet nyújtanak számos
felhasználókezelési művelethez, többek között a fiókok létrehozásához. Ennek
ellenére érdemes elvégezni ezt a gyakorlatot, mert értékes tapasztalathoz
juthatunk a beviteli és ellenőrző vezérlők használata terén.)
III. RÉSZ

Munka adatbázisokkal
13. {WI Bevezetés az adatMrisok ~
14.6ft Adatok . . ! az_dOflás·~
15. óra Adatokmewele ít6se.webes~keI
16. 6rI
11.601
beslírisa"
Adatok tö!Ié:s8. ~
Adalhpcso/t Ianyi.\ . . rilISlI6gombok és
j.lüló"'g'fzetek
18. 61', Al adalkapcsolú 65 IMa, IldatoUtl '-ipCsoIatos témát.
13. ÓRA

Bevezetés az adatbázisok világába


A k<t;1Il' larfal..wbóL

• lU 3Wlbózi5 fogollma
• Az adnak lirol~n.:I.k módj::! lll; adath:i.7.ll.Okban
• Ad:Ilb:izi>t1bl~k . ~Z.IOPOk él; -rekordok & kat>C'Olaluk az adatok Ilrolb.iva!
• Az adatb:\ziSl~bI1k oszlopaiban tárolható adanfpuwk
• A legnép:s7.enJbb kereskL>delml és ingyend acblb:llis--kezcl6 rendszerek
• Acbtb:izisok és adatWlLdbljk IttrehoZólSa II MieJOSdt SQL Sel",er 200S Exp~
Ediuonben

Joz. ASP~ET egyik \qtI=znoos:Ibb és Iegh:ltaon)'lIllIl s.wI~l!aUsa. hogy az ASP ''ET


,,'ebokbbk k~ az ad:llbóm-keze!6 ~kkcl való :eökken6merues qn.lImml-
ködésre Az adatl»zisok. ahogy ehbm II fejCZClbt,n IjlnJ fOSJuk. oIpn sroftvcr.dk;ilma.
Ú~. ameirekel acblok hatékony tároUsil':l len'ellek

E~ II leckében all "'15g1ljuk. hogy mik azok az ad:uIA1JSOk. és hogyan Ilrol~k


III ad:l.lok:u. Röo.id= ~(Ink nHt.1nY:;1I II legnéP5ZerObb kereskedelmi és 1rl8)'ene5
lKblW~ kOzOJ is. de d5&arb:an II MICTOIOI't SQL ~,....er 2005 Ex~
f.dJlionre ÖMZ[X>I1I,,.,~unk, ~me/}' egy oIpn IOgp:na ~dalb:1tis-k.,~clo'l. ~n~l}'ec
II \'i5ual Wel, Oc\d<J~ t'8}iln telepilellUnk :IZ I, 6r1l»n. A Ic<:kc ,q.:."re énL"f\i
fOS/uk az ~dllb"l.lWk nu1kO<J('Sén.-k alaf'l'lil. k IUJni fugjuk. hogy..n h01.lUnk I('(re
egy 3dalb~~st, e, ho!!y nukfm löl\SÜk fel lIn ~d3Iokk31

Az adatbázis-kezelés alapjai
\al6szinúleg rTÚr lullonunk;lZ f'datUtizisvlmil, de oem bi;o()l!;. hog)' ponlO&:UlluJfUk.
mi is az:lZ ad.llbhJ$. ~ hogy mnt' Il<lSuUljjk A Iehec61eg<..'g}-..zcf1lbben fogainun."
az adul:d1.lS struktu ..~h a<btok gyajtemén~·c. ~lTIC:ly.,kl't h;olékony~n MJelunk cl bo
m6tJ0síthalunk

Az ~<blb;ózisok Jd.,lOkJlt~roIn3k. 6 ""gy mll,'elet ~égrehajúsJt cng..:ddyez,k r.l.ltuk;


.lZ ",<bIOk lek"'rUo:l""''t ~"'gy kinyer60:.'t. ~UJlOk ~ur:isJl. adalok .n6<.kl!>Íthit. é5
az a<b,ok I~ , Az. ... Ua,b4zisok:ll a Ieg&)"JkrJbb;.in Adr beszílrt ad.otok km}Clé ;Ó.,
h;uználjuk. czo!"rl \'zsg:i16dá9.lnk t:il}O-a t'I..&aIban u ... dllak IekoYdc~ IC"IZ-

M,e/6u azonban bes2\lr;i)l. (ris5it6l. ,ÓrIé<t vagy It.-k~ hartllóltn.lnk 'égre


t'g}' aWIb;ózi5b:an. d6:>zór tdepilmOnk kdlu ~d:lM.u.-kezeló .sroft"'_'fI, Il'tre kell
hoznunk n adatbhls!ljlt. és meg kdlll.~IJn')Znunk a benne lárolt adnak szerkezetL't,
1J)/)CIl az 6,-jj);ln elősZÖr at adatbázis..kcz<!lé\ ~lapfogalmai, li~>;t;i:zzuk. nMjJ n ....g;,;rn"r·
kl-dünk a Microsoft SQL Scrv.,,-lQ05 Expl"l-"'SS Edition 11:15....,álat!h."l. amely "SY oIpn
illJO'ene5 adat~ZIS·kl'Zclő. amt'lyCl a \'i.wJI ~'eb OeIdopem:l t'8}iln ldepill'tlilnk
aZ I 6dban.

Al. tdltbirtriat löbbflllallippen illi6rhet;;*. dll az ölbilis~ ~


bato$~ vNrrilyen ~1. .,1eIyeI ao;bItMnrial oomaln "Ire, I.tvv
adat<*1t 4metiri. el, WhatIri: bt, loröIlttilnk v.gy lris$fltletiri..
VllS(I6Iód6suok szempontjából az a legfontosabb. hOQ'1 az ASP.NEl wffilldalllkról i$
elértltllünlc Idatb6D~8t. Ez azt IIIlen1i.1logy Iftreholhatunk.gy olyan ASP.NET oldalt,
ametv képes egy adatbázisbóllldaloltll kiolvlSlll, 'I megJeleníleru IlObI az oldalláto-
~tóinak. Ezt sznos 1é1el'Ó v.ebhe~en ~tiI*: pékIíuI __ or az Amazatl.com
v.ebhe!'Pn kertsiinlc.. 8 kefllS60ldal egy adatbM.t.óI olvassa kl • kertsáre iII0edCí
rlIkordDllI, .. ,wlyetel ..Mf\ii I IÍI azlNdnMnyoklabL
A kÖV'elkel6 ""*'v lackében ali ~p., hOgYIIl Jelllódetiri. mtg adatokat
ew IdatMmból az ASP.NEl oldalakon.
Mlutin megismertük ~t ad:lll:x!zisok kgfontO<:klhh jellenu6it. figyelmünk ...'t uoknak
at ul.:isltásoknak al ~l;t.k~l":I fordítjuk. amelyekkel :lduoka' ny",h...'tOnk k,. :lZunulunk be.
r""""tllelünk ''''gy IÓfÓUlClilnk lIZ adatbizisokban. AZ CTre ~wIg:1ló nydv ~ 'ilmcllm.'rI
Qlwry' lOltga''Rt'(!AAlklurilt 1ekérdc7.6f1rch'l. riMd.,n az SQL :lmt'ltrd ~ a kő­
\"elke7.Ó ft'jezetben fogialkcnunk
l l. 6rI •

Ezt kÖ\'el6en n ad:llbá~i$Ok


adat:llJuk elí:'1'6ére &. megjeleníl<.'sére 1U.';zn~1J1.~t6
ASP./'.'ET-,·e1hl6kkel ~'fkedilnk meg. A 14 fejezetben padlul az ASP./'.'ET DataSoun;;e
vezbl6it mut~tjl.lk be. ~mdyek oI~'~n webes vezbl6k, amelyekkelad:noot ké1dezhe«Jnk
le, szUrlwunk be. fri.ssíthctonk vagy törölhctilnk. a IS. &. 16. fejezetben Litni fOSl'uk,
milyen körm)'Ú adatok:u megjeleníteni és ,n6dosil:ini a Grid\íew és lXüilsVoew vez(,r\<'ik
scgílS(~'eI, a 17. lcrl:e 1~f11..1iát pedig 3 Ien}iI6liscik, v:llam6gornbok ('5 jelölooégyze-
tek adatbázjsb61 S7J.muzó adatokkal ~"316 feltöJtboe adja. tA l\. fejezetb61 emI<'kezhe·
tünk r:í. hogy a DropDownÜ5t, RadioBunon éi CheckBox vczl'f"l6k a TeXlBox v('z616höz
h~>Onl6an fclhaszn:lJói adatok Ö65Zl.'gYIJJlés&e szoIg:\I6 v(.'z&l6k.)

A jelenleg használatos adatbázisrendszerek


Rengeteg kereskedelm, és ,ng)'enes ad:ubáz,srendszer létezik. amelyek" legkülönfeJébb
platformokon k~k futni. A legnépszeru"bb aduWzis-kezd6k a következ6k;

• .\IIcrosoft SQL !x!n'l!r- http://www .... icrosoft.cOIIIfaql/


• Omcle_ http://www.or .. cl ... COIII/
• {RIf D82- hHp: /lwww-).iboo.cO<II/aoftware/dltta/db21
• .lllcrosoft Access- http,llwww.olÍcrosoft.cOOl/office/acee....
• 18.11 Illformix - http://www·).lbm . com/ .. oftware/dltta/ infoonix/

Ezeket a tcnnékckct" n~8Jl mcnnyl<égú "datul doll,'WÓ ""geknek készítik, és ~ magas


SZUlla szoIgihatjSl13k bimny megkbik <IZ ~r:ít _ ;lid. több tízezczer dollán. S,z"""ocsl:re
nekünk, am.ltör fejlO"SZtdknek. $Z:I.b:ldon h()v.áf~fhel6 adatbázisrcndszcrek i~ a rendel·
kezésfinkre jllrok Ezek sincsenek hlPn az iOlpon~16 szoIgiluW;olmak. de bizonros
képcMégek, amelyek II kereskeddmi rendsu'l'Ckben lTX'8'annak. hjjnyolnak bel6Iük,
éi II tel;e:Jtnl{'flyiik is nl'mile8 elmarJd ~zuk(1ól. Mi"d 2zonoon mi c;..1k ~rrn fogjuk
hasznjlni 3z ad;lIbázi.';okm. hogy klpr6b:iljuk az ASP.~Er oIdalaink:lt. tudisuk ~
elegend6II"SZ 3 stámunkra. A legn(opIóZ<.1iJbb ingyenes ad.ltbJztS--kerel6k az aLibbiak,

• Pos/greSQL- ht-tp, //www.post!jresql.c<>ntl


• ,I(I'SQL- httptl/ ......... mysql.cOIfI/
• .Iffcrruoft SQL Scnw.lOO5 Express EdiliQn (II1SDE)-
http:/twww.microaoft.eom/.ql/expr.... /

A Microsoft SQL S<-'r\'cr 2005 Elt:press Editiont megk:lpjuk a VLSUal Web De\'eloperrel
együtt - korfibban n-dr telq>il<'1tlik is. lll. a könyv minden ad:t!lXizispél~jában
~ Microsoft SQL Server 200S Express Editionre t:ima~zkodunk, ne gondoljuk. hogy
az ASPNET oId.lk1k csak II Microooft saját ad:atbázis-kezcI6ivel képe-;ek cg)'lJttmaködni.
f:ppen ellenkez6Ieg, lényeg&en bármely adatbázistt-"fKlszer elérltet6 egy ASP.NEr
old:alon keresztul. TeI!;!t ha mi "agy a c~unk n!;!sik adathhis-kezel6t hasznji, n<.'nl kell
agg6dnunk. tov:lbbra is doIgoz.hamnk aZ adon rendszerrel. A köny" pl:ld!í,hoz azonban
:o Micn::J<Ioft SQL Server 200S Elt:p~ Edition hasUlálau ajánlOIt.
Strukturált adatok tárolása
A korábbi n1ol:gha(;l roús alapJ!in .mr tudjuk, hogy:lZ adi.tn5.zis sm,ktllráll m/mok gyífj-
teménye. lImetycht I"'lfkonpn &het:ünk cl ts m6d05rth3runk. Az ad:Itb:1nso1c az lIda-
IOlat IlibUfkbt, rendezlk. A t.\bUk 3O!'Okb6I &; O6Zlopokból :lJ1Nk. amelyek egy k~di·
menzi6s r.íCiOl ~lkoclUk (A t~blIk oszlop:ul ~ II sor.oik;u pedig 1Y'Ito,.dolm". is
nevnik. A kOnY\~ \'l-gIg :lZ oszlop kú~ haszniljuk.) MInden OWOP az adon
:adat qp'-qy jd~k felel meg. míg a soruk INgubt:lZ adatdemeket ktp\'iselik
Ettn khiillJlUlÓel\ dbb egy qo...di ""'~ lap. amely megkillönbözktl II UbUl az adil.
b1tii többi dWf-ItóI

Hogy lisrubban 1~$:Iunk. képleljil k el , hogy "8Y atblbh:isban ,-isárl6kr61 nen.1J>énk


adatokat l!irolni. MJ\'cl :uLII.b:\zi.sUbI1tnkoon v1~rl6k 3d!.!:!. il szeretoénk tárolni. ~djuk
a LlblI""k" CU.t~ra (\-:isirlók) ne'o't't. Ahhm. hogy eldönthesMlk. l-.ogr..n áro/juk
eu;krt:u; ad:l.loot."~ meg kell h:odroznunk, hogy melyek azok II jdlemz&.
amd}~k k~k a:;ron(lO:lit:oni f'gY ,~ri6L TqJ)'Uk (ri, hogy II \'i.dr!6 ""'~. teIefOnSti-
mit és irinyftÖQJm,1l kdllirolnunk, ,o.bnunr. an a dllumot. amikor az illel6 ek'i5zlrJr
vh:irolt ktpzddbdi ctgünkt61. lU cmlitt'tt jeU~~ fogjlk adni II CUU"..u !libia
~It. A tfibb kt:p i jbr.\zo/js;i( II 131 ~brln lalhlllluk

.' -
-
• fl

,...
13.1. "
... Cl_ "d' "''' ...../tfMii " .okdrló~ wrolJ<t4'

- - - N'.
" " • "
"

_'a._
Mf.32\·\U4 _ 2 1. 1001
-~

-- 11"12).4)21 IllGl

•••
_.
... 1101_ ",-n,l.
~-

--
--
11 ....."'1

115f.I\oIoQ41 N'.
,

_:'.lOOO
..m

lU'-'
.~ eo.- Uj/Jld 61 ,t..... dot IdruJmtU; ...Ioukot ,oISIIrl6hoz ~WnaI
13. ón • a.. ... * IZ WIe!MZjSM vi6g6bII lz99
TegyQk fel. llOg)' cégünkoek ol; vá5;irl* volt (csod:!, hogy még nem mcntunk c:s6dbe).
~kiknck ~z :«btai a kö"ctkez6k :

• Jisun 1.=. 8)8.321-12}4, 92109,January 27,2001.


• Yates. 619-123-4321. 92101, October 10. 2000.
Da\-C
• Todd Calli.s!er, 6.30-555-9898. 60126, August 27, 1989.
• Marie Vogan, 314-555-1111. 65401, September 8, 1997.
• !\atc W,,;eman. 858-555-<1343. 92108. November 24.2000.

Mind az ol; v~~rl61 egy-egy rekord jdk~zi a CUstOlDftU l<1blában. A táblát az öl.
víisárl6 hOzz.'Í3~5:l után a ]3.2. :ibmn láthatjuk

A táblák oszlopai
Az adHb:hiscibl~k oszlopai a Viwal Basic \'liltoWihru: ha~nJ6an rendelkcmek
egy né\...·el és egy IÍpus.'I'I1 is. A CUstcmeu pfldat:\.bla ~ébcn a négy OIlzlop oc"e
N_ (név). phone (tch:fonszim), ZipCode (irin~1t6sz:im) és 04teBecameCustomer
(e1s6 \':isá,Us d;jtum:i) lehCI.. A nb melle« minden oszlopnak meg kell adni a IÍpu~1 is,
v:agyis a benne t:\.rolh316 inform;ici6 adallípusiL

A NaIM CllS<:Iop típuSIkén! pélct;ul v:ai6szín!lleg az nv.. rchar (50) -Cl, a Phone oszlophoz
az nv .. rchar (121-1.. a 21pCode O6Liophoz at nv.. rchar (5)-öt, a Dat.eBec..-custOllM':r·
hez pedig a dat .. time IÍpust érdeme~ választanunk. A IÍpusok neve ugyan különbözik,
de az 062.I0P0k tipusai meglchet6sen hasonlook a VISUal Basic \':\ltoz6tipusaihoz.
Az nv.. rchar (501 ... Visual Basis Stdng típusának felel meg, mégpedig t-gy olyan kar.ok-
terlállCllak. :uni !egfdjebb 50 karaktertX'il lllhal. A datet i .... aWopciJlU" nl('gt.'g)'ezik
a Visual Basic Dat.eTi.... lÍpu~v...1.

lu. nv .. rchar (n) és a d .. teti .... tipuson kívül a !.ibl1k oszlopaihan mis tipusok is
lehetségesek: a leggydkrabl,xm lu~ltak:1l 3 Visual 1b5ic-ml'gfelcI6ikkcl együn
a 13.1. t:\.bl~zatlxm soroltuk fel.

1.. .. .. _ .4 • ,., .... , ... 'p


'1, "". nM •

.
3(1) III nu • MIri:a ecWbi' u'"

Arrukor a f~zrt kés6bbi ré.«zébm ld.rcllozunk eg}' ad3tb::izist;íblit, Litni fOSJl.lk.


l-.ag} ~ II I t;iliIiz':l.lb:m frlsoroh..:okon ki.iil 5Z.:ÍmQ!. má;§ OISZIoptípus IS léteZIk. de
uck a leS8yakonbb:U<. Az. SQL Se,..-", ~ :od:Iuipus""",k teljes Il.>clj:ll ll1cgt.:oUI,uk
.:o hllP', ,..,<In .lIÚc~O" ,tt.< ./llbT.ry/e -ul 'taqlrefl1:B_""·db_7_w. "Bp

cimL'Il.

Amikor adatbánstMll1it honri: "Ifil. nzrevehetiink néhány, az nv .. rch&r adattl·


pushoz hasonló nevú tf!>ust: az nchu·t ft varch .. d, iIetv. I char·l
Az nvarchar b az nehar, illetve ft v .. rchar H' ChaT tlpus korolt az I különb-
s,ég. hogy azok I típusok. ~ • I\IIWben I Viii $.lÓ uerepel, vüOld
(v.illble) hol'511'15igú kllllkt .. OIIIopot. VIV'fIS evv nvuchu I t\PU$Ú oRlop
aUf SO kinktert is ~ de csat Im'(i helyet foglal el, .:nemyi • ~.
MIt UrakrM'llk mm... Az '.... r- VIiIJ'f oha.r-I!;! ~ 0$lI0P0k ezzel
kMllben mindig 50 knltel't lO{IIIInek ti. függetlenül attól. hogy 1 VIiIJ'f 50 knl·
tamyi .ml tlllflhltó trennük.
Az lHIIIl kezdr\d6 n8VÚ lIIIattIPUd UntC:OdIt ka-lirlerebt tá-ONk. A lheode kflt,
tertn:ISt il ka-ilkl" '" lIB!I'fObb ~ k~ ibrw.,1gy II ilyen UPI,lS(i
os.6opoknak IeheIM lesZ!, hogy WrmeIV "*:6 wlirteRÍt tíroli'k. A var 'hal
és char tipusok uzellIlIImben lOkbI ki$ebb kill'lirlelt.8slIettel rlll'ldebznlk, és
csat • szabvllnyos IIOQOI 6b6d betiilt kiplselt tírolni.
Mlod&gyik k8l'1lkterlénc~ttlpusntk migvlllll maga fel\aszrlélúj teriiktlil, de
IZ nvarcha.r·1 használják a Ie{Iszlilnebb körben, és ebben I kOOYVben is eml
I tIpussaI fogjuk üron a tAblák szfwlgeS adatait

Az. "WIJ»zi.5ok oszklp:IJ" h:ann:ilt aebu'pu~61 függetfenii113rtaJm.:ozhalnak egy külön·


leges ~n"ket is, a ,\ ',.111, :Imely ISmeretlen entkct,aez. Teg}iik fel ~kliul, h08Yegy
t.:1bJ.ib.:ln a ,-h.iri6k ol)'lIn aebtalt l'ÖgZill\ik. mint a no!v, a sz!imlb2si dm, 61 igy lodbb
11.:0 egy ,~sjrl6rurk p8dául nem tudjuk a leJcfooszlmal. ebbt,.~ o.szlopbor :-;ull tntket
irh:llunk_

Amikor mcgh,.t.:í.rozunk egy 06V0P0I, ,. neve 6\ n :ubtúpus:o mellett nt is meg:ldh:ll-


juk. hogy dZ omor t:lrtalmazhal~ :-.'ull 6t~ko:t. Egyn ~ekben elófordulh;u. hogy
egy oszlopban nem ki\'1njuk megengedni az ismerrtlen ~ntkekct: ekkor al 057.lopol
úgy kell bclllrunuflk, hogy ne ens~'<l(,lr" ue a Null l'n~ k.,k beir:iS'lI

Els6d1eges kulcs OSlIopok


Al. adaiokai drol6 o.nlopok meU~11 3z aoolblimUbl;; k 8)':lkr.In l;irtalmaznak egy eMl.
/etIt'S Imks oszIcpoI.s, amcly ~ltaUb:.n CS)' i I t tipuw oWop. kalönJeges fclz6kkcl
lAZ Admbfl..."""1SIiíbIQlt /élf't'hoz<iw rinltl rb;{ben J~lnr fOlJlUk. hog)= adllalUnk els6:Jle..
gc:> kulcs oszlopot egy úblihoz.) Az. ~ kulcsktnl megreIöIl O5ZIopokb,m
mioo.m rd<ordhoz egy ('g)OOI ért<*,,,*(a~6nak) keU l;inozrn:o. "úri al II)'"",
oezlopok ",",'e ilul.:iban,. 'I'''bld<fvll f()l'Tfloll kÖ<-·eti.
At i n t tipusii els6dJeges kulcs OI<llopok bdllith~t6k mllmnal!lt/IS JOISUlmozi1m_!1II
(aulo-increme"t) is. AUIOffillhkus .5OI"StlmowfLIlll7. el5Őd1eges kulo 0iSU0P önmi"lkl'>-
dc5en növekvő $On;Úmokk:l.l Utja el ~ 1.11>1,. rekordjail. Vltgyis amikor egy új rekordot
adunk,. t:ibl:l.hol, ennek al. oszlopna k nlo"!T1 ~dhalJuk meg az értéké!.. '1ll.'11 n ,.utomat;-
ku ... ",. sorlxIn kö\'etkez6 sunlOt k:l.pj:I.

A fenud< szemltlle\é:!;(-re lérj\lnk VISI<VI a CUsto.er ; ~bUnkhoz. és ~djunk hozz;t


egy el~ kulcs OIZlopD( cunomerI D nb·en. A úbb ilyelé-nképpnl m6d05itQlt

.,, :
5l'erkezetét ~ 13.3. ~br.l." láth:lljuk .

... ,- ,
-
, $' _
:";
" ?
"""
C

13.3. "
A CW.<IOmen tJdsIbthlsuIt!W 1'J)'...t.W' l":I hdu ~ IrottdoilAsa II,á ..

l b ~ kor.ibbo!.n emlitett öt rekordot most adn.1nk a úbUho,t, a ~ 5Qf:I.ib:l.n a 13.4 ;lb-


rin ~th:nó adnak v.erepclnének. FI8)'C'I;Uk ml""8 al. aUlom:mkU$ son;z.:ÍmoÚ5ú els6d-
I~ kulCl O5Zlopl»n IllUIIUl6 értékeket, m,r.dt.n !lOf!lOl "'1D· ..rdi érték tartOzik. és a
~m .'lOItlI1kl:n\ n6. Al.I .... és7.n..... ehetjűk. llOgy az adatok b,..'SZÚr'.tS:Ikor nem ml :.dIUk
meg a CU Bt o.er I D (/57Jop 61dél: azt az ,.d:ltbllzi.s .. kc7.I.'16 illesni be helyettünk.

",
,
etil
• I II
-
- - -.,.
orr t li • \I

_,m
I II

.-ru.men
, ,

-~
,
, -- -- .,. ;'''1l3-132t 'ltDt _ t a . ZIJ1II


~-

-- ..
.,.
..... u.t_

• ..t.l

--
li f.M!o.l1 ti

• B~ $' , 1I, :rtDI

13.4."
rl/im/{.'l, $OT <'JO'<'<1I C'IS/vrncrll) hfN«.11<Ifttrlma"
Adatbázis létrehozása
l>Iiel<kt elk~ használni egy olran ~da\bal~.en, mIN n SQL ~
lOOS D;press fAition, elősZör !(:tI'(' kell oo:rnunk eg)' új awtbbiSl. MJndtn ad:ltlxilJ5
egy "'SY több adath1u~bJjl urulmaz.

AZ SQL S<efver 2005 D:prn:s Ed'Ilon minden adalb:l= killön f~Jloon bp helyei
!itek :WllÚr~ n ASP.NET külön kön)"'lár:lt <"""-Pllta) biztosí\. l:,gy új adUWzis I~
hucls:! td)~( csak ~nnyib61 ~U . hogy howadjuk a megfelel6 ad;llb4zisf~jll a~ "-WJlat..
kÖl'll"timoz.

Az6ItaI, hogy az IdaIbázrsoWlk IZ """.....Jat.. könyvár.lele~"" meg,


rerd.JVíj ~ "* egy _tVeZnII ASP.NET4111maás ~
.~egy'>lil~gl"", ~ kl!.' oIQNót'rL Csak.myrt kellennIInk. hoqv
az ASP.NET .. et M' OkUl együtt /reIt6hji& III App....o-u t~ js
• klpCtol6d6 adatbÚlSf6jlokhl.

A \"su:l1 Wd> [)eo,~loperben ugy Il(lzh;uunk I~re ad>tb1zi5l.hogy el6stör létrehozunk


eg)' uj webheJ)'d az ASP VET Web Sli", .sablon aIaPi~n, Emlékezhetünk r.1, I\og)" ez
:ol sablon többek kÖWll egy AIlP_o".t. mappál ad a webhe1yhez. (lb:ol ,,"cbhdy(lnknck

nem letltle AW.....D<o.u mapp:lja, vjlaslI1;uk a Wt-b6ite menü ASP.NIT Folder pom~lt­
magyarul Webhely, ASP_t\'ET mapp.:l -, majd az App_I>Jla lehet&égct.)

Az ada~ ligy adjuk;l "'ebhclyhez. hogy az eg&- jobb gombjival :Il: Aw.Polc.
kOfIpuJT:I. unmlunk" SoIutiorl ElcpIomt:om. ts n Add a New Item (Új elem hou;,i·
~(Ü$:I) mtnűponmt v,ib""",k. EkkO!" megrcknik az Add ''''''' Item p1~bbk.
lmd)"bm Idrom Ld>etc'islg kÖlUI .'oibmh;ltunk - az egyik egy új SQL a<btlllim
hozzhdl", (SQL [l:U:lb>se; \hd ~ B_5 ~br.ít)

-- .
,

-....._---,,~,-~" '

-----
-- .'-
13.5. ~
Ha "Ill' adaItJ4zIsr .mnt,......
"",,{ .. uWJNl}.mJ/lt6~.
<'gr ") 5Qt /)dInb4Jl..-
Wfo/l""' ........
l3.n · S.' . . . . ·""!I ,· +d' t .... !:m
nl~SI0lk lelUt az SQL Database Idx:t&éget. k a flóan1o;" mez6ben \<'illOZl2!iSUk n adn-
bbw:l.jl n('\'1'! Dat .. bioS8 .lIICIr-r6I Hyf'j ntDo!lt ..b&.e.lllClf-re_ MiuWn.n OK gombn.
k:ll1lruOltunk. II v!SUJI ~d) nc\'clopcr létwhol.Z3 az U) "Ql. adatWzis{ájlt Amikor
\'~8l!en. fns.~rli a Solution ~;Xpl<m'r abl~lclt. am<'lybcn Igy nlelll"lenik az App~t ..
kOnY"Wr uj adal~zisfáil~ ( l ~,6_ ;il;>r;>).

lUh
,1,. uj ado/bázis ~"k
az .<llJPj)<ua .....pptj/)(!"

A:lujonn:1n lárehozotl adatbi<:isf;ljk:12 AwJlota kOnY'1aron kÍ\-ill a [)'U:lba5C r .... pIorer


IAWlhi7.15--laJI6W) :lbbk [}J\;I Con~ 'lId:ukJ!X'5OI~lok) ro!:szében i!; Ulnunk kdl
II OaI.oOOse F.XPIOrer ala~1.él o;zcnlll közó:.;m h35VU1 egy abbkbbllt a SullItKln
Ex~I. ~ lu II D~ubasoe EXPIOrCn nem l:ítjuk II ké'pemy(!n. k:IIUrllsunk a \'Í\"W
nlenti D:n:lba5Oe Explon.... pontFil1I_

A Daul:we Explorer rt'szle\~hb ~1:<-'Wt :Id az adnb:1Zi!oOk elemeir61. nunl II S,olu!J()O


Expk>rtT Ahog)':I 1;1.7. Jhl"J is mU!.1!p., II Visual Wd) fkvdoperben az :ld:llb:tzl~ ~l.:1111O$
e1cmtl rtlÓdo:l5íthatjuk. Igy II di:lgr.Lmolm. II t:iI>lJlk~l. II n(::zetckct, a eirol! clj;ir.lsokat, k
Igy tmibh

ll.Um
Az fUla/bdrts """"'-"I
Q Orllmx.w E.~"

Mlholjt,1I

II ktlnyv adat\-'ezereII p&iliNn az rgydlen ada~ :lmeUyel fogblkozni fogunk_


II l:ibb, II kÓ'.. etke~ ré$2ben rnegneU'Ük. hog)-::un hoz/utunk ~ és haúfUlh:lrunk l1lI1I
adath1:ust.1b1ibt. =)(1 azt unull'-'k meg. hog)- nukmt tölthetJÜk fel II Úbl.ilt:al :tdatokkal
a \'L$Wl ~Cb DeI.-eIopt.'Iben

A fejlenebb lIdalVmre~ webalkalmazások gy.ran haszn6lnak néreteket •• l.oIt


eljirásokat, de erek tMgyalésa kivül esik k/inyYiinll. kerelslII. Ha tőbbel Sl8f.tOOt
Iu!ii ~ O/YamJk" az SOL Server Views Ihttp://odetocode.cCIaII
Anicleall99 .upx l. lelVe I wribng I Stortd l'I oceckn
lnnp: i_. 4guy.fr.,.,...olla. e"'.II_btech/1l14'9-1. • -U CIn..:i
c:ikketet
Adatbázistáblák létrehozása
MOS!. hogy van egy aclalblizisunk. ktszen ~Uunk am. hogy lé1rehouuk els6 adatbázis.
t:íbl:1nk.at. A (ábl~k 1l1rehozásakor semmilyen adatot nem adunk meg, csak alábia
~zerkere\éI {:.tz osz)opaiÚ h:.t1rozzuk !ll<."g. Tehát egy ój (:ibla Iétrehoz~sakOT 3 [jbla
"",,'k. iU("{\e '" t~bJa oszlopainak fle\'ét 6; !i~t kell megadnunk

Az adatU1z,súbl:1k Ifuehoúsa a Visual Web De-veloperben ",eglehet66en egyszeru.


A D"~tabase Explorerl><"fl (lj.7. ~br~) ndnden ad:nW-zishoz ulálunk egy T3bles (T:ibl:1k)
neVU mapl':ll; erre kell az egér jobb gambiá",,1 kallintanunk. majd aZ AdU a i"cw Tabi"
(Új tábla hozzáadása) leM~get v:ila.o;uanunk. Ekkor megjelenik aZ au:uw'zist:lbb-
szerkeszt6. amelynek ablakában megadhatjuk az új \.ibia 05zJopainak nevét és típusj(.
II képernyo: egy új t:1b1a hozza:íd:lsa m!in úgy kell hogy fessen, mim a 13.8. ~brJ

... '----
n _ .. ,. ... .... , • ...,~ "'" '" ~",.~ -:. _ ..

~"'---_
•• •

--
;--·"·'··0.---------------------·1 - •• 13.8. 6bnt
íJ adatbázis/tibia
JélrdrozÓSl<l«Jr
"'~ AId! ",I"""k
a", Q$:dcp...,."*'-'t <ls
az <f(UlItíp1<SCks11

ViZ-sgiljuk meg kÖ1.clcl>hről az 3dalbáZJ.Stibl~k =keZ<'li'nek megh3t!irozá~hoz


szOksége5lépl=h-t! Épltsilnk fel <"gy <"gys;eeru adatbAtist:lblát, amelyben egy
könyvgyi1jteményről t:!rolhalunk adatokat. Az ad;.t.bázlst~bljk elkkntbekor lényeg"",,,
hogy kdl6 időt szinjunk az 3dalWzisban tárolni ki,,:!.nl jeUenudk rncgllllt~rm1~rJ.
;unelyeknek =Jd ~ tíibb o:s:1.lopal fognak megfelelni. Könyv"",, péld1nkb;;m teg)'I1k fel ,
hogya köve.kez6 adatok,." \':In s:r.UkségOnk

• A könyv cime • A könyv á,."


• A könyv szel'l:6je • A könyv utol:s6ol~~n3k d;ttUrllJ
• A könyv kia<bsAn.k tve • A könyv oldalainak száma

Most, hogy meglllltíiroztuk, mil~'CI1 infonn:id6kat szerl:tnénk rögzíteni. a következő


lépés az, hogy eZekt1 oszlopolud alakílSuk n ad;.tbázist:lbl~ban. Egyet.len. 900ks
(Könyvek) nevil táblAt fogunk hasmjlni, amely a fenti lilit adatot lilit megfe1e16Iipu~ú
oszlopban tárolja maid.
13. 6ta • 8t';wlii ll· ... ' ... · +tR'"" t :115

Hozzunk ~ cl6ször ell)· Tl to le (am) rlC\-U 05ZIUP0I, amelynek típusa nvar


:har IlSO), és nem engedi nq a ~ull énB<ek h:l~\a[;jl. Ehhez írjuk be II Column
/\:111"-' (QWopnév) mcz.őbe at ój O/izlop nevét (TI tle), matd:l Data Type (AdaurpuS)
Icnyfló 1!~.1b61 Yálasszuk az nvarchn 11S0) elemet, .~Ol pedig kapaoljuk kj az
AJlow NuUs (l\uJl eng~lycl6;e) jelOl6rlég)'zCleI. Az cmJiIClI I~k ,·~h:lll~sa
uún a ktpemyoo oIpsmit kelllltnunk. IllInt:l 1.~ 9 Jbrln.

-"'
n_~_

-
...... _ . . _. . . _<----
. . . . . . . ._ • • • • _ . _

-_--..... _.- -...


• u •
-.-,.
. ... ~~
~.,.

- - • •

-- ----
- - lU. !!tn
JI ltÜJla lIK'/I/ratdroz4saiKu"
hozrliadmlf Q 1I11f1 ou/opof

.... _---"..... _--- ... ..


----- ---- --• . .....--
,. . oI "~ .- 1..
•• e-

--

u

g
...-
...
--
--
-
-
• •

"
• ••
• .---. ~-

--
.-. . . .--------.0; ..
~ _-
_ ....(1

-- - "'·" t

- 13.10. !!tn

- .~ fábIa mos: hol ouloptJl


",,,,umaz
• "'''thor - tipus;! nvan "uor 1501. a Hull fttade nem megengcdcitek
• V_rPubI iahed - hpusa Int. a Hull fttfkd<...-ro megengcdenek
• prlca - típusa KlflIIIY. a Hu I I fne,kek nem rneg<"Tlgcdcilek
• L... tReadOn - tipuS:.l datet i ..... a Hull fn~kck meg<."flgedettek
• PalIeCount - LÍpU.<.:l int. II Null fnékck no:m mo:gengcdenek

A h:u O$zJup hozzáadása ut~n ellene;riuilk. 1\Ogy azt I~tl"k..., a kfperny6n. mim
a 13, IQ, ~bd.n.

M<w ment.Wk a I1ibU.I a~ esT.kÖ;n;or ",",..;: gornbj;1r. vagy a File menO S,m~ Tabk-l
pDnlFira kaninn.,.. Ekkor egy ~ kell adnunk a t<lbUnak - a nb' Ieg)"ttl BOOk ••
Cralulilunk - dk6zíleltuk d'lÖ adatb::lZlSLibLinkatl

_ .._ _ jban

Amikor :.Id.alvez.:..reIt alk"Jlrru;d~:u q,inlnk, ~l. mia/bázis meg/en~kiemelt fontOl!-


sigü, A:z adatb::lzis.tervezl:$ az adatl;4;d" uerlcezet/;\ rneghal1in;>z6 dönté5ek $QI"();e:lt.ibó!
~II el kel l dÖmenQnk. hogy nlllyen t.:Ibl1kra lest :;zOk~nk. azok mil)'eIl oszlopokból
foy,nak ~lIn;, l:$ hogy a tlbl~k kÖZÖlt milyen k3f'C'iOIal:\.1I fenn Ha rossruller"\.'ell11
ad.:nb::lziS<:l ~IQnk egy 31k1lm:1z:1~, elOre nem 1~lh:u6 probl&n.1klxl é-s korl:1toktXl
Qlkö;dlelllnk II fejles;tt6 során M~ kbl,'jlJb bukkanunk ""Iamil}"ttl hilny<)6sigr:l,
annillöbb ~ és o:nergi.1\ kdl Inóljd fonJiununk a hllxl kija,"~"'. o:ttn. ctlncnl kelk:5
.Me =inni az adatok megfe1e16 modelle~,

Sajn06 ebnflClo!'\-d & ~,..-J ebben a koo)...tlrn ...-m III


Il.lId:ub::lzis.len"e~
módunklxln kunerit6en fogblkozni, de a ~nak mi5OIr::: leljel köteleim ~~rueltek.
Mmdazon.ilt:>.1 néh:iny fogalm:lt netll ~n IblUznunk, nudo5n to\'~~

MIvel al('ll:llx.t.n egy atk>tt adatb::lzis(,lbla egy adon rekordjának elfrtsne, frissitbérc
vagy törl~ '~~n sziik5ég\lnk. nllnden l'ekordnak egredileg aZOl'106ítlutÖfl;lk kell
lennie, A:J. azonosítás számos módon meg\"~I"",jth;1!6. de leggy..krabban egy automaLÍ-
kus !IOr'S.Z:1moz.hú e~leg.::s kulcs O$~lop 5<:/Iil~ gondoskodunk r6ta AmIkor
egy OWOPOt d!;ódlega; kuko.:l. l~nk. al ;adatl:dlZlS-kezdő autornatilMoan k,kén)'-
uerftl. hogy rrunden benne 1...-'6 fnék eg)N Ieg)'en, Ennek cllentre ll., hogy
el56dlege5 kulcsn;tk llC\'el.Onk ki egy OWOPOt. ..q...-ro elég, men al egyedl tf1éke..
ket attól még nekünk kell IfK'8'Idnunk. lia uonban al 0!!Zl0P0t lIutonuhkus 5OfSZlmO...
úsu\"l Í$ t~k, az adatbdi~ OrlmtlkOr;kkn gondo6kodilc 1'Ób, hogyeg)'edi
ftt~kek kmllJCOek bele mindo..'n UI ~kordn1J.
Booh acbtb:llidbl:inkbiln ~ runcs olyan O6lIOP, amely gannl1h.an qn.~ btaek..,
tOlfllllm;lZ!U. A Titl. oszlop Jehet eg)-edlllZOOOo\.ilÓ, h:l biztOi5llk ... gyunk benne. hogy
~ gyt.í~eményben ~ nem Ie.'l. kl'!. Uon05 dmll körl}'v 11:1. Jzt szerelI'I61k , IIOg)'
~ könyv time ~~ílWfl eg)'ahl"g minden rekordol, tcgyOk a Tit!", 05:OOpot II ~b13
",ls6dlcges kuk:sá>1. Ehhez jeJölIOk ki II Titl. 05ZI0P0t a Visual Web Devcloper
1JbI:aszerkeszt6ja>en. m;ljd k~umL<;unk JZ els6d1eges kula Ikonr" JI eszkömm:ln
(\bd II 13_1 L :íbr.il).

--- - --
.. .... "" "". '....

-
--._ -.-
. ..
~- ......
...
"~_;';'"U
...,,,,,;;,_,,,,,,,,0, ,,",.-_ ........
.,.._ ....

--
"
-
"
13.1Ubra
jddI}ll ,'" ld qI' oszJoprX. Is ••III"ts,mll az oIs&llqfcs lIula Iltt:mrt<_ Iot:!ip' az !">$rlopoI
Idjt!l(Jftllt a UJb(U e/56d/qJ<ls It..kw' 'iti

De mili hdyzet akkor. h:l nem bi;r;lOlo. hogy nunden könyv time különböz:6le5z?
Elófordullui., hogy k& awnos amIT kOn}'" kerilla 8)~jlemkI}'i1~. Il)~ ~
ll'8Y ÚJ 05Zl0P0t kellltU'dloznunk II tibl.1bi1n. amd)'nek klmondoll2n U a dl",. IIOfIY
.,gyedi\cg awnosllWfl nunckn rckordol:. Az Ilyen tipusú O5Zlnpok neve ;tI1~n
II '1'4bl.N4vIO fOl"TlÚt k&.eti, ahol a 'f'4blaN~v:r.n~ k a t.J.bUnak II rte\~. amel)"l~z
az Úl oszlopot adtuk. Az ilyen onI0p0kal nem <:$a k el5ődleges kul~, hanem aUtoma·
tiku, 5OI1lÚmoz.1sUv{i is kelllennOnk

Gpkorthktppen adtunk "'8)' automatikus 5OI1lZ;imo~5Ú elsődleges kula 06ZI0P0t


II Ek> lk"~ L:lbI.1hm./u oszlop ne\<e ~ BooklD. lIWtltipu.sa int. ~ ne~ mes
a Null tnékek..,. JelölJuk ki az 0If.l:1opo<. él az eszkölUr els6dl<"gt-'":§ 1mb ikOllJln
laltmt." te-gy\lk J ubb eb6dJcges kuk:sá.'l'j,

A táblaRMtaw6 ~1I~ ~ beSlimtllllk uj ~l Ehhel cs.


&! egér jobb gombjív~ I klvánl OSZIOPnt keH ka«intanunk. majd &! Insert Column
I~ beslírisa) Iehet6segllt vál~ HI • 8ook! D-t például • 161111 itIS6
OUIOPM ~ 1t!WIi, katmls\ri. • jOI)tI "gomObII •
Ti t le OtlIOPnI
IwneIy IZ tISi5 I bdblnl, v6'"Sl" &! Insttt COUnn pwarlCS(Il és nOOI meajllenik
-vv iHS IOIIl .........tllat~ iIhOVj ~ I SooklO OS2lop lIdItart..
308 j II. réIr • MriaDtb'risokko!

Következő It'pbkbu aUlomatikus wrszámoúsúd kell lennünk az új O!;Uopunkal.


Ehhez jelöljük ki Q BOOklO O/illopo!, hogy belöh.silk a lulaidons;\g.1il a képernyő alján
Ulhl1l6 Column Properties (0S7Joptula~gok) ~,bl:tkba. maid görgessúnk aZ Idemi!)'
SpeciI1cauon lulajdonsjghoz, an>elynek jelenleg No az .:'néke, és m6d0sitsuk:l.z ént'kel
Yes-re (Usd a 1}.12, ~br:il) .

.... __ ... _.... • _----_ ...


_
• ..,.;,0 ,
. u..... - .._- ---
---,-- -- --
--~
~
., -'''' ,"

--- --- •


o
o

---
o
• •
o

._-
.--- •
.,-
--
--
,•
--"

-- - 13,12. 6bra
" lJQcJdD ,mtornallln«

- ~n=ánl d.<ótJ~
Inde< ou/o{l

Ekkor a IIookIP aUlomaukus sorsúmozású els6dJcga kulq; oszIopp.1 \'~hk,


Kattintsunk a &I\'t: goml:>r.1 az eszköl.úrb~n, hogy mentl;fik a tibia m6d0sít1sai1.

EIlV rendszer logikai elemeinek modellezése kapcsolt táblákkal

Amikor arról döntiInk, hogl' milyen tibl1kal tanaimauon aZ ad:ub:izisunk, 1hal~l:xIn


azt szeretnénk, hogy minden tábla a rend'iZCl' egy-egy logikai elem<'( ko.pviselje.
A könyvgytljteményt leíro adalb,ilisunkoon erek a logikai elemek a következ6k
lehetnek:

• Könyvek • Maf:l.jok
• Szerz6k • Kiadók

Ha letuil "8)' olyan renclszen szeretnt'nk fel~íleru. amt'ly a könyvek S7~, mafaját és
ki:>~t is rögzrli, ,,,lÓ«;dnükg <><'gy t!íbUra lesz m1ks(,gl1nk, , ... lanum 31r.1. hogy
valahog) iClc-LZilk, hogy ezek 3 t.'lb/ilk kapoolódnak cgymi5hoz. A kapcsol:llok megha-
L;Írozás5r:1 az arnnb:izisrendszerek ki)1önfe~ ~rek(.'I binO!;it:lflak. Az, egyik dolog
~cUu!, 3nut I"!ezni szeretnt'nk, hogya Books l~bIa nllndcn rekordJa _egy a löbbhöz·
k:lpcsoblban1!Uh:l!:IZ ,o.ulhou (S7,erz6k) clblá""l, és eZ 3 kapcsolal adja meg 3 könyvek
11" . ~ • •""' · +flfptts l _

~! 1'..7.<.'fl kivűl UI I!o ,.,k.·znilnk kell. hogy II lk"." ubI:! ~'ai rekonJpihOl. cgk
~"t:tlen egy rekord kapao/ódh,:u II l'ubli5hen (lWdókl úbl.ihan, m<:Tt eg)' kOn}'\'TlCk
csak egy kiadója kh.:!..

AZ ~Uatb5.ZisoI< ide:1lis .~:tbcn rninden Iogika.[ elemet egy·egr c~blávaI1bri7,(>llUk,


amel)'ek közö« ponlo:s;ln rneghatlro.wo ka.pcsob!oIi; lllouk fam, II kOn)'v ptldllOUk
c~'fl:iZOllb;on ~lntihU..~ adatbbisoklc:al dolgozunk lu ad:itok~,
d(~, be:mlris3, fri.ssil.~ ~ tOrlke Í8)' 50kkaJ qo~), de ez csak I:lJlUlisl relokat
szulg;iJ -,. g)~n nem j;lV;UO& lel"':'ezéSl rneg:kÖzdlléo;

Ha az Ildatb411Hervezáf6l1öbbet Slefitnénk tudri, ~ ai6nIlat,..MIChael


Hemandez kiv6J6 k6nyW~ amelynek elme D4f/tbau {)wgfl for Mere MOItI/$
(ISBN: 0201752840; maovarul AdatbMS . tMWZb: A ~ adMbázJ$Ok l18pj&róI
f6Idi hallIfIdóknM cllMIIll jelent meg a KisklpU Kiadó opvtorádban, 2004 .. ban;
ISBN: 9639301752),

Adatok hozzáadása a Books táblához


Eddig cet~c ~ hollunk eg) ~(Lu~ZIS( .. 15 benne .. Ik >k, úbUI. A úbl:;ioon ~zonlY~n
mtg semmilyen .. dll ~ L1.l.ilhaIÓ, Nén,. követke~ It<pts k....rnt'szetesen az, hogy
a t:ibl.11 felt/)It..ruk ..dl.\okk .. 1 En .. Vi5lJ.;l.] Web Developerben b ~ ASP,NEl' old:iloo
kereszliII i>' mo:.'gIehetjilk Ebben ~ ledctben ~ \",sual Web I)ew-!oper segi~el
adunk rekon:lok2c u ad:il~ushoz, az ASP_"ET oldalról eI\'tgzecl ,.daúellóllc!5.sel
,. 16, fqezctben foglalkownk rniljd.

A \"1SU:i11l'.-b o.,.,'eIoperboen lU ,.d:ilok szerkenlé:sére, Il~re ~ hozZ:bdi!ólt3


II rnlal»~ Explorer w:>Ig,iJ ln bOnlsuk ki a Tablö 1ll3-pp;lI, .. melyben az ,.(\acbb.LS
úbUhuk I~ja uWlwUó, rniljd kanmlSUnk az eg<.'r jObb gombja\"al arra a bbUrJ,
amelp.ck .. z adat3'I $~erke<;7.lenl slert.""I.nénk, b VJlll$l;zuk a Show T3bl~ Da!;, (Tl1.>l~
adat~in:ok megje!enlt~) Ich<'16stget, Euelmcgjelcnlljük a kiJelölt lábi .. lJrtalnúl.
ahogy ~ ]3, H . ábr.1n il>lo'itha1luk Az á!rin mcgf'gydlt«j\lk. hOSY jelenleg nint:!lmck
rekordok:l Book. ú1.>l~ban, Ahhoz. Iw:lg)' fel"'együnk egy n:kordol;;1 úbUlJg.
egr<;;z~en c5:lk .. Bo< < I D oszlop :W.lli SZŐ\egmeza~ kell kallIlllllnunk. Az egyes
mez6k Ic~ .. TAS bollentyúvd rnozogh:I.tunlr., és a bollent}'Üzl"U'6I irttalJUk be;l Ili\'~m
acbtok:u

Amikor a cdlikba adatOk~1 irunk, taru;uk~, hogya bein btékcknek meg kell
felelniük az adott CIiSLIop !ubjdoonsjg;linak A Paqecount (Oldalszám) oszlop Ifpu:\:!
pé-ld:lul int, !ellát ide egy WmO{ kell írnunk. Ha oIy~smit pr6b1lunk beírni ebbe
az oszlopho. hogy Scott \,,.gy '>ne hundred pallU (WZ oldl!), hil»i1zen<--1C1 Ic:.tpunk
Ehh~z hasonl6:ttn eg)'e5 0IIZI0P0k elfogadj:ik:a Null értaekec, nú50k azonban nem
lu utObbi:okb;l mindenképpen I~ kell imunlr. v:obrniJytn &léket., míg.u el6bbiek ak~
(lre5en (\':Ig}"I'l :>.\tn tnélcen) I!I hotgylu.tók.
- - -- -- -- •

_
-~
_o

13.13.6M
A iJOOIl:J ulhIa '"",,'nui,,,,1J ""'1/JCknf_
Egyel; admípuwk ~ében az adatok fomdturna is Itnycge5_ A Price (Ár) OQlop
például "",ney típuW. fl; e<ak otyan sz.'imtntkekt:.1 fog<ld el. minI a 14.95. Ib megpr6-
b:lljuk beimi a pénznem telét ;5, hib;i\ kapunk. Dálumok bcírisálÚl a d:ítum fomúrunu
a sz:1miLÓgép megfelelő beillit1(.a;r61 függ_ Az EgyesOlt Államokban a d:itumot
hónap/nap/év romúoon irll3ljuk be (2005. november 19. escIében példíul igy,
11/19/20(5), míg számos európai országlxln ~ formátum nap/Mrupiév (19/1] 120(5).
A dllummal ka~:IlO:S probl~mlik elkeriUke érdek8:>en celszenl minden dilUmot
3t év-h6nap-nap :'ilulinos formátumban mesadni (2005--11·]9).

Ne aggódjunk, ha véletlenül 6rvénytele!1 értéket Inri. ba egy új rekOfd esetében.


Az adatbázis adatai ilyerokor nem vesznek et sól haszoos hi~ kaPIri, amely
lelria. mi volt 8 gond.

Adjunk maM egy új rekon:kx a t1bl:iho~ a Title tnel6be írjuk be a Visual Studio
Hacka dmct, az I\uthor mezőbe Ja",.. 1.very nevét, a i'euPUbllshed (Kiadis éve)
.,.,lJálxl 200$-öt. a Prlc .. o:<zlopba 24 . 95-öt. " PageCount mezllbe pedig 47a-at
A Book!D 6; LaDtReadOn mez61wt hagyjuk U alapénelmezeu én~kilkön, ami NulL.
" képemy6n ekkor oIyaWlit kelL I~tnunk, mim ~ 13.14. ábrnn

MegfIgyelhetjOk, hogy ~mikor ~d:ltoka! kewilnk bcimi a celJákba. a.sQl" alau egy új~bb
i1res sor jelenik mcg, amikor pedig rn6dosítjuk egy cdl~ énékl1. és a követk"z6 celllrn
Iépilnk, megjelenik egy vörös felki~Jt6jeI. Ez az ikon ielzi, 1108)' ll. ~Ila értéke mesv~)­
tOlOU_ lia a kurzor a Pag..count mez6ben ~IL , b; a vörös felkij.lt6jelek tov.1bbc:i is
Ilthat6k (ahogy a 13_13. "bdn), aZ űj rekordot még Iéi,.., kell hozni. A rekord véglege_
~í\b;{:hez (vagyis az adatb:lzis/xl való fch'élcléhez) egysn."f\k-n kalhnt.runk a kö....:tkcz6
sortx. (V"~gy nyomjuk le a TAB billenlyt1t, hogy a kurzor a köv<.1k"z6.sorix1 kcruljön).
13.6nI • E\eYIZIléS IZ 8dMMMok YiI6gjM 1311

. ""~--

,
... ... _ __ ... .__ ...
, --_---
.... -
-- - -
- - - - - -
- o •• 0-

_..

---

.,~

""._1
-,
-
13.1 •• 6bnI
0'

El$5 "")'1-0)"" n Book:< lál>Mbn" Jnmes A,"'), Ils""" Stm/to Jloch cfm"WJ/",,,
A &OOk TO osz\oj) automatikus SOfSZámozásÚ. ami azt jelenti. hogy fI&IT1 határOlhilt·
jtlf; milli ill értékét, mart ill adatbázis·keze16 áUapf~a mag. hogy milyen értéket keH
ide ","e. Tehát iIfTlikor felveSliink egy rekordot a IIoOk8 ~II,' BooklD
oszlopot NuH értéken kell hagynunk. Ha megpróbá!\6lk beimi valamityllfl értéket,
hibflÜlenelet lapunIt.
Ha a 8ooklO·1 Null értéken ~juk, de a rekord mentésekof a program figyel-
meztet, hogy ebben III oszlopban nem adtunk meg értéket, biztos, hogy az oszlopol
nem jelö/tül::. meg automatikus SOfSlámozásOlo;ént. Ha III lenne a helylltl, olvassuk el
újJa A rekordok ewedi amnosÍlNa cimú részt, es gondoskodjunk róla. hogy ft
IIoOkID (lSlIOP iIUIomatikus sorsrimozású (Auto4ncrement) legyen.

A fentiek clv(,gzése ucln ~ \'örös felIW1l6jelek eltünnek, és ~ BookID ~-ellába aut<>-


m~lik\~'<an egy énék kerűl (1~5d ... 13. l S, ~I)r:lt) Emléke1.Z11nk viss?.:!. hogy ~ IIoOk ID
automatikus sor.;;ziJl"l()Zjf>Ö oozlop. VJgyi5 aZ értéktt n adatblzis-keleló szurj:l be.
lIa a tábl~hoz egy úpbb rekOfd<:>{ adunk, ann~k BooklD oszlopában a 2 bt(ok fog
5Zerepdni.

G)'3korl~sk"ppen ~djunk néhány rekordot a Books t~bl~hoz:

• Cn>ale )Ollr 0""' Wcbsile, Szerz6: Scott Mitchell. Kiadis éve: 200S, A könyv ára
19.99 dollM Hossz:.: 195 oIchl, A könyv utolsó oh".l$1$ál13k <Uturna legyen
2005_ augusztus l
• nw NllmW. Szcnó; Alc'(' &n?n1lQ1I. Ki~d::is éve: 2003. A könyv k J , 24.95 dollár.
Ilossza: 274 oldal. A könyv utolsó oh"5lsinak dátuma legyen 2005. ,J{wemlJer 14.
312 1_,. . ""'*' -ww · Rt"
• The Qltt:/I(!T' /" the Rre {7.Db/Ieg)"t76}. SZerz(i:j. D, Salingcr AZ ..dou ptldány
ki.:l~n:lk éve: [9')[, A könyv j ... , 6,~ dolUr. Ilos.sza: 224 oldal A könyv u!oI5ó
<Jh.",,-d:~n:lk dl!un", legyen:zoo.t Junlu~ II
• FIS/U allb (l1(.rro:K>li klubjaJ SlC'l'"l6: Chutk I'abhnluk Kj~d~s he: 1999.
A könyv kJ 16.95 doIlir. HO/i.SU: 187 oldal. A kooy\"Cl még nem oh'aS/uk
(~.. gyis ~ LaltlttoadOn-t :-Juti trt~ken kell hagynunk).

" .. _......... ...


..
~" ~ ~- .-'"
... "'-----------
,
, ---! .. "
--..-,--
, _ _ _~O"o

..
-- -.-..._--- -
- - -.
':lJIiI

• o• •-- ..0....--
..,,-
~-

._--.

•• o

·.-_...
"
o>;.=:_~
o
~.

_
--'" " ' " , " o

- .." " •.- -


13.15.~
JI BOOItS l4bIa '2)' uj rr:IIOnl horrtiadAstJ lIUJ"

,

•-, -..--.. -- -,- - -
• .-, '
• • o

- ---
--"""-'-'
- --
----- - - - --
-,-- ..·--•
- •- ~
• o
__ • • x

--.--.. --
--
.- -
... .-
--
- - .. -
"'--

_.


••
••
•• o
• ~..

o,o,••
..
..
- - - - · .....•

••
•• •
• ~

" .. .. ,-"._-
--- • ••

-
13.16.1i1n
JI BOOItS lIibIO MOll lJf MNt u.n"I"...%
13. ÓI'I. Blvlat'-IIZ~ ~ 1 313

MIUtán II fenli n~gy son is besriinuk ~ Books táblába, a k~pemy<'lnknek úgy kell
kin~Zflie. mint II 13.16, .ibrIinak. Figyeljilk meg, hogy ~ BookID oszlop éTt~kc (~mcJyet
nem mi ~dlunk meg) minden rekordn.il automatikusan nö\...,kszik_

A Visual wiib ~ oom tuk új rekOfdokat vehetünk fel egysrenlen


II téblákba, lIanem a mM megleY1l adatokat is ugyanazon a feliileten keresztül
sze~eszthetjiik, Ha egy rekord tartalmát meg szeretnénk v;tttollatn~ IlJVSZ8rUen
kattintsunk a megfelel6 SOf megfelel6 mez6jébe, és hajtsiJ:. viQl'e II kivánt
módosltásL

Az óra elejér61 cmlékczlte\unk rIi, hogy az ~d1tb.i7jS :llruklUr!H1 adatok g)'lTJleménye,


amelyeket ha!('konyan l"!'helunk el és ITIÓdOIillh~tunk. MQ6I mjr !.inuk, hog)'an ho.cllat-
juk leu.,:u inform:1ci6k.:n tároló szerkezetet (az ud:ttb.izisclbl~k;I\), és aZl i5 megtanul-
ruk, hogyan v(']>C\ünk rel acL1tokat ~ t.~bUkha, Az ad:t.lb.izisok legfontOS:lbb swlw1lt:ttá",
azonm.n ull'g hátravan: az ad:ttbhi5b:m tárolt ad:ttok h:nékony eI&ése. Ez lesz a kÖ'o'et-
kezó ón té.mja

Összefoglalás
Ebb"" a leckében megtanultuk. hogy az adatb.i~ olyan .-zoftverrendsrerek. ame-
lyeket slruktur:ilt adatok tárol:\s:ir... illelve hatékony elérkére és m6d0sílásjrJ tt:n'e7.tek,
Az ad:tlolo: az adatlMzisb;,n úblákba szervez6dnck. a lábl1kat pedig ~Iopok írják le,
arnel)...,knek r\e\ilk (>s típusuk v~n.

Az oszlopok mellett az ~datlAziSl.iblák somicH is t."1!t1lnuznak; ezek L\rolják II IlIbia


adatait. A 13,\6. ábr:in péld:lul aZl I~uuk. hogy a Bookl tábl~nak öl sora van, ' .. gyis
a t~bla öl: köoyyr61 tárol tnformációkal. Az ad.1tb.iZJ.stáWk tart3lm~t ~ Visual \X'eb
l)eveloperbcn úgy Ickinthctjilk mcg, illetve szerkC5Z1hc1jük, hogy:lZ egér iObb gombj~­
val ~ tibia ne,·&.. lumin!unk, maid ~ Show Table lfJta leh ..'\.~gct ,'iI'l$Zljuk. Ugpflllt
nyllik alkalmunk új rekordok felvételére is.

M05I. hogy meglSrrtenük n adatlA1.;sok S7.erkczet<'t. illetve megtantJlttJk. hog)'an hoz-


hatunk l&re ~datb.izisobt és ~datb;izist:\bl~kat, készen állunk arr.., hogya IlIWkból
adatokat olvassunk ki - a kövctlu.-z6 6r11nn aZ adatb.izisolr. adataínak clér6tre :QOlgiló
lekérde1.6nrelwel ismerkedünk meg.
314 11. r6R - hbU*' 1 f' "kol

Kérdezz-felelek
K: I,m Ic/IL1áWtJ li} aulopfr!hJ/Clbl! l~'8Y ,u"8f..~6 au/opoll eI/r.!,ooI!/dsAm
cSy utlmbdzls/tlb/ábóI, miII/an /érrclloz/II1i f!IS lnerllettak a tlJbldt, ,~IJt)'
csak akkor. IUl a /tib/fI m<'R IIL~" tarwlmar ~I'
v: A t:ibI~k Slcrl<cwe (~UO u!Jn b m6d06íthll\6, hofn' mmt~'\tilk
a úbUt, m(,g akkor is, h:i !Tdr adtunk ho.zz.i o;omkat, és a megl<"v6 ~
clu\'oI,tú3t S<"m korülOZZ:O semm, (T<"m1&ut""",":lZ riúvolJton oszlop adau,
nlindcn 'lOri""n eJvesznt'lc:.)
új oszJopob\ uln'llruJyen qo.,.zeriIen adll.3lUnk m.ir Iltezó ubI.ikhol, anl:lkill,
hogy i5Ot'OIcIt kellene felvennünk, nyt$SUk meg II tábl""Z<."fk~Zlo5t, adjuk II db-
l:lh01 II kiv:lnl 0!i1Jopot vag}' os7.lopok~I, 1'5 mentsük II Libl.1l. Amcnn)'1tx'll
II t'ibUban n\llr \'lInn:l.k """"', a műv"'!et kksJl bonyoluJubb, mert n aoolb;tzis-
kezdőnek el kell dönten~, hogy milyen I'nl'keket szúrpn be az uj OSZIOPba
II m~r Ittezó 5orok QC\ében, Kt1leheUSKgünk \.n, az eg)o',k n IKIg)' uo (lj
oszIopbgn engedtlyczzilk a SuU tnl'kekcl, II nW,k pedig n, hogy az oszlop
súmar:l megllólurozunk egy aJapbtelmczen &ttket. (Ez utóbbit II Column
P'open'e!I ablakban lIdhatjuk meg.) lia a núsodik mcgokLh mdlen döruünk,
a rn1r lt1eZÓ..otOIc nundegyikl-ben UO alólp61elmcZdl énl'k kcriJl az uj 06Zlopbo.
Ha nem adunk meg alapénelmerettértékCl, Il.3nem II i'lull I'nékek engedélye·
z6e mdk"u döntünk, aZ OSZIOPba mJnd,m rnegl~...'6 sorban Null &ttl< kerül.

Ismétl6kórdések
I . Ml!)..... '"Iswnyban ~Unak qomá55al az 0IW0P0k, ~ t;iblik & az :l(blb;tnsok?
2, Az aoolb;tzi5l.iWk !oO!'3iban szerepl6 oszlnpok a progJlHl1ozbi nyelvek ,,:illo-
wihoz hason~!an:l.k, mert h.1rom ,ellen®\..... p,,.lIQSan leÚ'hat6lc Melyik
ez ~ h:irom iCUcnu6?
3. Mdyen énekel kép,',sela Nuu?
rt. Hogy~n biZlO!ilt~k n aUlOmaliku5 iIOrSz:imomu e~leg<$ kulC$ ~
UO qo'e.!; $OI'Ok egredi aZOflO5it'isj(!
5. J.tU1den ~lQIt ad:nh:br<libUrulk ~Ikeznie kell ~ kula
oszIopp;al" 19u >agy hanus?
Válaszok
l. A tábla egy vag)' tObI> oszlopból ::Ill, az adalb:l.~s pedig egy >'agy több t:\bl~l
tartalmaz .
Z. A:l oszlop neve, az oszlop lIdanfpuSol., éli az oszlop "lttkc az adon ~orb"Jl
3. A Null n umarcl/cn b1é1«?k, illetve II ilfá./)'Zt'J m<,J.'f'k hely/!n szerepel. A Sooks
tábl::lban a LastR .... dOn ~z1op ~ldául nén fogadj:l el 3 Null é"tkCl is. ""'"
elófordulhat, hogy egy könyo.et m(>g ntom olvastunk, melyesetben ebben
n oszlopban nem szerepel énék.
4. Amikor új.llOn 5Z1ínmk be egy úibI100. amelynek elsődleges kulcs OS2.Iop;l
automatikus sorsz;jmozá5Ú, az ad:HWzis-kis201g~16 hatifúzz:l meg ennek
az oszlopnak n új sorbeli érlék(1, k ügy v::llasztja meg az énékt'!.. hogy minden
sorb:!n kOlÖflbö~ ént.k kerüljön az elsódleges kula; oszlopba. M. ad:!tb;lti$-
kiszoljpl6 ezt úgy éri el, hogy az ul0lpT<l beszún sorhoz képe$l eggyel növeli
az automatikus sor:;z;lmozásil e1s6dleges kulcs OS2.Iopban 1.,..,6 é"éket.
5. H~mis. Az t.'SeIck túlnyomó többség{-ben uID'3n olyan úbl;ik:u hozunk !élre,
amelyek automatikus so~moclsú elsódleges kulo ""7Joppal rendelkeznek ,
de úbl~t els6dJege::; 1mb n~lkíills lé1reh02.harunk.

Gyakorlatok
1. A Visual \X'd) Developer és az SQL Se,."er 2005 Express Edition haszn:\latát
gy~koroland6 hozzunk lé1re egy új ad:nb:hisl Te..tDB né... en. és adjunk hozzi
egy Albums n<.'\-i1 tábl1\. Tegyük fel. hogy ebben a láblloon a lemezgyűjtemé­
ny{lnk adllait szeretnénk tárolni . Adjuk ~ t1bláho~ a szükséges oszlopok~1
a megfdel6 ni:wd 65 típussaL ~éltány javaslal, w1ksfg lehet eg)' automatikus
SI)r.;Z:lmo:cl.sü els6dleges kuk$ osrlopr.. AlbumlD n(""cn~ egy nVllrclulr (5(1)
tlpusú . Name nevi']' oszIopr:l: egy nVllrchar (751 lípuSÚ . A,-ti at (El6adó) ntM1
oszlopr.!; illet... e egy d.at<!/ t il!le lÍ~ú. Dlitepu,-chaaed (V~rl:b dátuma) nevű
osz.lopra. (Ezeken ki...ül gondos terveres utin további oszlopokat ~. a táb!:l.hoz
adhatunk.)
2, A S,,,,14,,.-6/1 mkllOk I<'íroill$o dmi! reszben bemucmunk (,gy CU Bt CllO!U llC\'\l
rábU\. amely v:'is.1.rl6kt61 tárolt 011':011 adnobi. rrum a ne-'I1k, a lelefonszámuk.
az irányílóstiÍmuk, és így tovább (I~ a n,l. ábrát). Hozzuk létre eZt az aduh:.\-
zistábl~1 a megfelelő szerkezeltet és adJuk hozzi a n.2. ~n lithalÓ öl. rekordot.
14. ÓRA

Adatok elérése
az adatforrás-vezérlőkkel
A Iet:ke tmtalmálXil..

• Az ao.ufom1s-\e:rerl6k használata
• Az 3d:Il~zisok nyelve, az SQL
• Oszlopok kinyerése adatbá:r.wáb!ákból
• Bizonyos feltl:le1eknek megfelel<> adatok kmyeri:ose 3(btUázi50kból
• Az 3dalbázis-lckérdezés eredményének rendelése

AZ előz6 órioon 1tf0g6 képel k"phanunk arr61, hogy mik is arok az adalb.izisok,
milyen 3 bel$6 szerkezetük, b milyen eth wgáln.1k , és létre is hoztunk egy ad31b:1zist
ll. Visual Web Developer é5 az SQL Server 2005 Expfe5.S Edition .-egitségévcl_ E=1 kí\'Ol
meg\:lnulluk azt is, hogyan hozhatunk Ikre arnlbázistáblák:u , és hogyan Iöltlleljilk fel
azokal ad:nokkaJ.
318 111. lÚZ· MII1U ~kol

G)"dkr~n dófordul. hogy az adatbb.isb61 kinyt'fl mformkiókat egy ASP.NIT w~>boIdaJon


m:reménk megjl'leníu·ni. Ahhoz. hogy erre k~ dljunk. meg keU tanulnunk,
hogyan oIva.~hatunk ki adatok:ot egy adat~zisb6I Az ASP_NIT úg}'nevezeu admfom1s-
vezérlői pont~n ev a célt swJgjJFlk. Scgíl>kgllkkel az ad.ltbázisok adatainak kiolV"Js;\$!
csupán annyib6l áU. hos>' egy yezér\6I az ASP.K"-'· okL11rn húzunk. 6;; egy v:U:áz,JÓI
követve loc'gadjuk. hogy melyik ad;uhu.1S meJy adal!l.ir~ van .szilksé'g\1nk.

A felszín mOgött:u: adatf<.>fT"oÍS--\·ez&\()k olpn p;it':mcsolm küldenek az adatbá1.isnak,


amelyek nyelve aZ SQL (StnJ<.1Ured Query 1..:lflgtJage, vagyis Slt\Jktur:llt lekéTdeWnyelv).
AZ adnok k!nye~ minden modern ad1\bázis~er:u: SQL nyel\'et ha5Z.n~lia.
ezén az ASP.I'iET adalforr:ts-wzér\6inek ismettelbén kivül a leckében sDnunk némi
időt az SQL nycl\1arclnak bemutatá.<J:ra is.

Adatforrás-vezérl6k
Az ASP.NIT webes \'"l'1'rI6k széles vilas7.1ék11 tart.1lmaWl. amelyeke! a korábbi leckék-
ben különböző c:.oponokoo sorolmnk. A 8. fejezetben pékUul a 5Z,Ö\'egrnegjClcrutésre
1ta:>"7mlható \'ez.ér\őkkel ~kunk meg, a 10.6; II fejezetben pedig azokk:tJ.
amelyek a felhasw:\l6i adatok ÖSS7.egyú~ésére alkalfT1ó1zhat6k. Ebben az ór1ban a ",ebe;
\'ez&l6k egy új csopo<tjit mutatjuk be: azokat a "ezér\6kct, amelyeke! adatbázisok
adlt3,nak elétésére te'''elIek. A webe:s \'ezk16k ezen csoponjjt admfDm1s-tuz..>riókncll
hívják. és a Toolbox paletta [)ata résún taLiUUI!6k (llid a 141. :limit).

-
-
. ..,......... ,,..16.
"'~ $

...
......... . ..' .----....
1 ,60

...... J-

-
Sil." .,._S ..
~~
,
14.1. itbnt
A \ ",tul Web Der.o:/op<:'r T<>Oibo.>: palcttdja gAlliO< adaifomls-<-'CZérlót wrtallll=

Az adaúorr:ts-\'ezerm rl...'61 az adatbázisok adatainak elérése csup:1.n annyiból ~1I,


hogy a megfelelő vez(:rl& az ASP,NIl, oldalrJ húzzuk. a program k{'résére tTlegadjuk
az ad;Hh1ziSl, amelyhez kapcsolódni akarunk. m..jd aZ ad:'tok~l. amelyekhez hom
$Zeretnénk férni. Mlrldezt anélkültehetlük meg az ASP,NIl, old~1 o...."ign n"'Ze'lé{x,n,
hogy egyetk'n sor kódot kellene [munk,
14.6n·AdIIo\:;.I,h lIladlcb,"; f16tbl ! 319

Az IldetlOfT6s-veztn6k eI4lP6n hkltérll SZOIgjInIIt az ASP.NET oldal " az ldatMm;


között, VaqYII • 'o'elér16 csak kioIvil$$B • k*t adatoUt az adatbál'lsból, lM 118m k6pes
azok ~t'w. az oldalon. Ehhez eov úJabb webts vezérl6re lisz ~,
például Igy OropDownlist, Igy GndV_, Igy Dtttailllist, 1'lY ChedBoXUlt vagy
eov eMeZ hesonl6 vezér16re. Ebben Bfej8le1ben az .&itoknak az adatlO/Tn-Wlzért6k
segí~ IOrtW ~ Ö$$ZpOntosltook,. ulyen adatok ~
az ASP.NET OIdeIOn . kOvttbz6 ón """'" lisz.

A7. ASP.:-''ET-hez /'ll :Kbúomb-\'NérIót lapunk, ;l.rneI}"kt1;1. ,,, l :1lrln Uth.:nunk


\1mdeg)'íknek DarnSoul"ClMll C:Kbúorrb) vtgzólbk;l. neve: SqID"1t;r,'iglrce. AtteI5-
Dat.source stb. A7. Cg)-e!I ~datflJlT:b-\"ererl6k<.1 kOlönböz(llipusú forn'isokbt .... tó
munldra tCIVCzt<'k. A7. SqID:lt:lSource pé-tdíul atblok ~d;lLt:.Iw.bóIv~ló kiol\"J"jSlra \":1)6,
a~ XmtDacSource XMLfiljloMlldarnin:ok k;n}"~re, ~ Sile.'>{apDarnSource po.odlg
qn" .. -ebIIl.'I)1érl«"'p lekl'ttk:zbl-re b ;l. webhely sa.,.kckttnek V~l"d , ~mely.:t
llldll qn"Tree\~1eW (faOl!'<:et.l \'lIgY Menu ( II>enÜ) V1:zM6ben jelenitherünk meg

Az XML '410« otp:\ szOWI;f6jlok. .,lIIyIk ki:4öttleQes kódo l' " adatokat 00IImal·
nak. Az XMl. rá*tes b.rutatáu tUmrtat k/inyYiri. kanInI; ilii többet k8l eb "'*
l1JCÖ niIa, kernsii; MI a _.DU.!'l le. . . 'i. ~1. vagy otvI$$Uk ..
• Sams itJed6 THCIt Yoorsel XML ln 24 Houn clmll kötet" (ISBN: 0672322137 ).
A webhe/yf~ (1111 map) olyan XML ''il, amelyet 1lIIY bizonyos módon fomtiztat.
és a wabhely nevloki6s szarbnltéfOi tartalmaz inlofmklÓkat, amelyeklll aztán
.)IIC)Ildt:;", menük vfI/( IjI; Iormá~ itIIInIthttünk l118li- Az ASP.NET webhelyti!r-

....,...-
kép.kezeInI s.zoIg6/tIl6sIIl. iIetW a S~ vezéri61. 19. Jt,ezetbtn

Ebt.lcn ;I. lecké-ben csak u aWlok ad:llt:.lZlSból - konkrtall egy SQL Ser.er 2005
Express Edilion lld:nb1zisbOl- lönffi(; kioh":l5<l$l. cnleke!l;l. ~mullkr:o, e~ C!i:lk
egy ada,fOl"l"b-vcztri6\'eI fogl;dkozullk: az SqIDJcSource ve~tr\(h'el

Az SqlOataSource vezír1cl hasmálata


Az SqIDJ~,~ lla.WÚbtinak gl'ak~~ ~nk Ie:sz ~ adatt:.lZlS5:aI
reodcIke7.Ó ASP.:':er .....-ebheI}"'" I-Iojo' ne kell"", rgy 1ii .....-ebheIy 13 qn":KbtbW$
Ittre~,..t b:l.jódnunk. ~ l i fqezerben dkCszilen wcbhdr« ts ~1.ISl fogjUk
I\a$ZlÚLni.

El5l'51~éllt hozzunk 1(1rc egy ui AS.r .t\'ET weboldalt A=eu lIl9U1!o ta . aepx I~"" .
majd a lelYez6 nhetbm ~ Tooloox JXl Ieu:ír61lll-'~~unk az oldalra I"g)' SqllY.luSource
\-ez&l6t.. A ten"z6 r*zetl:>en mIIIden adaÚorri!l·'·ezér16 nilrke tfgl.ab plcém ,elenik
meg, alllt'!yben a "ezér16 tipllSa !s azono!ift6p ok".lsh:1I6. Ahogy ~ H.2 ~br1i1l 1:11":116.
az SqHbt:lSource ''e2bll5 howadlsa után;l. szürke ~pb:m ;lZ Sql Dll taSour<.
Sq l o.u.Sourcel fdtnlt Iitruk, ahol az SqIDlltaSource l a \-ez.éri.6 UOOQ6ÍI6p ( I D).
320 1111. rMZ • MIIIkI ecIItb6ziIolkll

,."' ... - ....... _---_ ...


.-.-
•. ;;J. >lJ .,. ';J.." ..~

--,.---
. _ _ _ .... • " . .... ,
-
I-~"

'--
_.- ••

.-



• --, ...
----
.
• •

= - -
14.2. ibn

A $zOrke t"'gLabpon kiviila képern)'Ón egy úgyr>eveZett o.ws cfmkél is Uthatunk.


amely az adon webe:;; veZérl6n v"'grehajth:n6Ieggyakoribb mű,·elctekt.1 sorolja fel.
Az :J.datfom'is-vez~':;k e5e1ében az oko:; cimke kezdetben t'gyedcn k-h~16ségc."'I
tanalmaz. ~ Configure Data Source (Ada\forr:is bclll1ti:lól) nevűt. lia erre a hi"atkoz~srn
bUinlunk, elindul a Con/igure Dma Source ",,!"ázsió, amelybcn megadhatjuk, milyen
ad.1tokat szeretnénk kinyerni az adalb:lzisb61

Ahhoz, hogy egy adatb:ll.is ,,(l11aival dolgozlwsunk. az SqIDat;>Source n::té1"i6oek


két dolgot kelJ ludnia,

• Hogy:.n kapc:!Ol6djon "Z 3001hhishoz?


• Milyen lekí:rdCzt:Sl kell kiadni" n ~dalb:lZl5 felé'

Az SqIDataSouree \"ezérl6 '":Ir:í;r.,;16j:;o ennek a kéllokfon(~gIi ,nformki6nak


a megadását kéri, m,<,ghoUá igencsak fejleszt6barlt módon. Ismerkedjünk is meg
az SqlDataSource , ... zérl.:; ,,,,!"á7.516jh":ll - vagyis kauintsunk ll"lO>.l a Configurc Inta
Source hivatkozásra

A COnfigu .... lY~ta Source var:í1.Slólxon n c1s6 I"pb; az.1JOgr kidlas>lJUk az elérni kív:1.nt
adatbál.iSl.. Ehhez egy lenyíl6lisút k3punk. amely a Databa5e Explorerl>en felsorolt
adatb:lzisokal tanalmaz"-'l. b szt'repelnif: keU benne a MyFirsr04tabllae . mdf :>dall:d-
zisrtak. amelyet az el6z6 6r.iban ho7.tunk Iru.. V~lass7.lJk a list.:íb61 ezt az ad1tb:lzist
(U.o.d a 14.3. jLrlt).
14. (q • AdItOk ....... c iOIdui.,",\ 4 ....... 1321

----

14.3. 610

= A /(!II,f/(J II.<I<JI>6I ,<111..,..,,,11


I> M!'Ftfllf)alubQs., miiIaJmbtt::ul

AJ. d&hCt6 adath1iliok 1!SUj:!. ablt a Connection 5I11n8 (Kapcsolati br~kterl~nc)


fdir~tOl látJuk, b mellette egy pluSZjeJt.'l. Ib. ~ plu'Il:lClre ummunk. tith:otjuk az ~wt·
hbJS ~wulll3k elé-ri.·~·hez IuSVlá.lt kapnc/ari kamkIerl4nco1. A kapcwbtJ brolkler-
1Jn.: ol)'an ,,1~~yszmll1lJ\form!ició. ~mely az adalbilJ.wIOZ ,,,16 k:a~lJ.shm
szt.i~ ~eteket adja nq az ASP.I'o'ET-nek Ax ASp.NET kClriibbi ~llo%:lt~l!»n
II k:.JX....tati k~roIktcrbllCO( magunknak kellen összdlliununk,;1 Visual vr"h De\'el~
lIlonb;)n" lenyíl6 hstálJ6l klv;llas7.tOlI adathizis "lapjin eZl el"~gZi helyettünk

Ha nem III aI6ld ~~ IIIlr1hozott lldatbmstm, hanem IllY máikhoz _tb • •


csadakoznt. ~. New Come<:uon gomtn, Az tmek hatáúrlII\llQjll1ll6
~"'" lI'IIPd\Itr.Il miIYWI típusú tCIItI:tiZJShOl szmtn6nl:: ~
IllY Jnésik lIbIekban ptdig ~IJI* • ~..SOJat részle1ert.

Ha az ad~!b:1zi.shoz el6:szOr lcipoolódunk egy 3Wlforr.b-veztrl6 qit.<;tg.:wl,


II progr:l1n feb~nlja " k:ipcsolat adatainak mcnttsét ~ wl'balkltlm.azás bejllit6(j,ljjb.!
(l~sd a 14,4, jbr:lt), \ ' Ivel ~Z ASP.NET-nck uükM!gc van ~ k~poo::..oIat.i klt",klerljr..;r~
~Z adatb:i1J.S,j::J.) való kapcsobu:mhhoz. ennek aZ irúon~eión:lk valam.lyen fonná!»n
QefqX'lnie kdl az ASP "I;, okbl k6djloon. Il~ ugy dönlünk, hogy a bpcsolatJ
k:....... kterU.noot ~ webalk:lJnuu~ br:1lli16fájlját:.. mentJÜk (~m. melegen ajinlott),
11 f~6köm)'-ezet aulOlll3ukus>n besn'lr ~ _b., ,,,riO f~jIt:.. egy ú,Ix-.lJlitlsl, amel)'
összekapcsolj:!." mepiOIl ne'oet a Iapcsol3ti karolkterUnccal Ax adatbiZ151 h:asznJló
ASI'!\'ET oldalaklUk ezutln nem kell megadniuk 3 Iape$Ol3u karnkt.,.-t;inrot . d~ lu
anIUk a web. contill f:ljloon szcrepl6 ncvm hi,,,,koznak

A IapcsolJti karnktcrl~nc be:1lhl6fJjlba membtnel< dooy/:, hogy kÖZ\etettclJbé leszi


az alkalfT1llZÍ5l.. igy 3Z könnyebben JUd alkalmukodnl 3 v;lltorlsokhru.. Tegyük fl"!
pékUut. hogy ,,,gy egy weil ASP,;..TI oldallal ~Ikel;ilnk. amelyek a Hyf'int
DIltab...... mdf adatbá1J:st lu.szrdljlk. ri"d:i5'd ezt az infonnkX:t nem mentettük
a web.ccnfig fljlba. Ekkor az "d:ltI)jzis kapcsolati brJklcrlincll mind II 12 ASI'.I\'ET
old:llnak t:lrtalmaznia keU. Mi törté-nik, ha" kap:solali karakl('rl~nco! módosítani kell.
po'Id1ul ~n álI1l'vl'Zlük" ffill, vagy a f6nökünk új aduw'zisl kbzíleu, <'s all sz~,
h", in!clbb azl 1~11L1nk? A bpcoolati brala.,,-lfncot mind a 12 ASI',!'o.'lo"T oIdalb:!
belck6dollUk. vagyis mindegyik C5f1l'bcn n>eg kell nyilnunk n adalfoJT.15<vezl'rI6
varnMI6j:lI, b frissílcn; n infoml!ici6t. I[~ a bpcsobll br~k1CTUnco! a web, contig
fljlb:! menle\tük volna. a módc'i!iitisc OI:Ik egye\k-n helyen kellene elv~1.nünk - a
...eb. centig ta]lban .

..l:, _ . . __ .... - . _ ...


. - ..... _--
--_
_
. ._=_._. __
...-.. __. . . _.- _~-

... M . . . . . . _ _ _ . _ . . . _ _ . _ . . . _ _ _

. . -.. _-
-
_-~--- ~----_ •.
IU.~
A kt>pcsoIati kumkteMtlC(J/
a udJhcJy bedUr'6fájlj<lba
"''''''Mrftll<
Mivel az adalfClfTás.vezér16 vacll3l6ja automatikus:on hozzbdja a kapcsobokulIlaerlánc-
beállitást" web.config f~ilhoz, nincs okunk cl, hogy 'lC~roIillk olt <:ZI az informlci6t.
TeMt hag}juk a ]4,4.:furán l~that6 jel<">l6oégy~~1. bekapcsülV'd. b a Next gombr:o
k::mint\.,. ltpjünk a köve\kez61éJ*$re.

2. lépés: A SELECT utasftás meghatáozása


:\liután megadl.llk a kívánt ad::ltb:á2LSt, ts szük!;ég ~tbl elraktJ.roztllk" bpcsolati
karalaerl10C01 a web;tlkalmJz1is be~Uít6fáil~oon, .. követkcz6ltpts az. hogy rnegh.wí·
rozzllk, milyen adatokal szcrelnhlk kinyerni az adatbán.sb6l. Az Sq!DlItaSourre vadzs<
lóban kétfeleké-ppcn v:ilaSZ!hatjllk ki az eI~mi kiv:int adatokat,

• az ~datb:izjstábia ts a viS5Z:dkapni kI'''nt os.zlopok meghat~roz.i5ával, illetve


• egy SELECT SQL·leIl(mI(:zésst'i

A IlaSudh megközelitbt61 fliggedenill aZ etedmény azonos, az SqI[MaSourre vczbUI


dMllit valamilyen SQl-lltasitiisl, amelyet elkilld az ad~t~>:1Snak, hogy kiny.,.;e II kiv~nt
adatokal, Amint .n említettük, az SQL u II nrelv. <lmel)lCl minden modern adltWU$--
rendszer h3Sl.ll~] a lek("fdezésekhez.
tb az ds(! mepd15 mcllClt dOntünk. a var1zs16ban kiv~J:t5ZIhatjuk ~ I1bI.1t, illet,,,,,
mc8"dl~tlUk a kiol\':l§fti ki~~nl os:zIopokat A rnh<xbk mcgolcü.s r5c1:ébm ,i.!.wnt
meg k~ll adnunk 3 pontos SQL·leMrdezftl. la. SQL wppiról a fe;eze.:ben kb(lbb
qtOnk ~OI. úgyhogy ~g)~ 1T\:Ir-.tdjunk az eIS6 ......-gokllsrdJ

A var:l15ló Configure the Sdect St:ucmcnt (A Select utasít:b bclllít55:l) ~blaldb:on vi·
bszttul,..k kl. hogy egy :odat~ZI:dbl~t akarunk-e kijelölni. '":Igy 5:lj11 SQL-kkéfded:it
~k Irru A dll<n'~d~ bejelölnl1nk 3 mcgfck-l6vtbszt6gombot. Ib tíWt
~nénk k,tt'lOIni. dbsszuk a Specify ooIulTU'I$ from a uhle or view (Oszlopok
kijelölése Lj!Jlaból vagy ~zedl6l) Iehet~1 (115<1 ~ 14,5.lbclt).

---_ -..... _
_......... ... __ ..-
-._-
_.- ,
--
-,.-- -
,
-,-- 14.5.6br1
I "d/t:uuu • .... 1Abklt, .. ~
<IZ aJajilll ., ~.... 011_1

la. ad:llWzisban talj!ható tibl~kat a IcnyJIóllr.Uban taUllUk. ~ kiJelölI t1b1a ~zlop;tiruk


fdsorot1~1 pedig a lenyíl61iSla alan. M",~l ad:ttb~zisunkb:m CSlk egyetlen tjbLa ''''n
(Sonka). a len~1Ió list1b:on e1l3~ egy lehet~get I~WtlUk_ A~ :dalulC"611lt'76ben
IJiwlók:oz 0ISZI0P0k (lIookID, Tit le. Au' ll"". Y... ~Pub, ",",oo;;!. Prt Wo" ~
és p.,y"cQunt). iIIe{ve eg)' • elem. 12 ulÓbbi az dssus oszlopot ;elöb.

J~löli'lk be awkn:ok az O5Zl0p0knak a négyzetetI. amclyt"k~1 ki nereut';nk oJv-dsni


a IIOQU ~bI;\b6L lia minden 05zlopértékre 'RÜ~nk "an, jelOljUk be a ·letlet6ségrt
'":Igy egyenk!nt az Ö6SZeS oszlop négyzetét. '\étu azonhm CSlk :oz 0ISZI0P0k egy része
érdekes a snmunkr:o, I*k"ul ru. egy oI)":In ASP_-':ET okblunk '.m. amely CSiltk
a kön}'\-ck dmc,1 ~ja rel. Egy ilyen okbl e:;ctében eleg. I~ aZ ad:I1~l1S-lekt'rden'$
Q.1k ~ Ti t l Itt osllop élték.::;! lIdj:l vis.sza. l'aclJinkban nont.xm IlUf1Id;o.,nk aZ o:sszes
O'\ZIOP ViSS1.a~cIJi~rdJ. és jdI}ljilk be ~ • jelOl6négyzet~.

A • ~'ttI ~1ÖIfSe utin qy SELECT k-kbdezés jdenik meg a ~bbk ~tFin.


3 kÖ\-'etkez6 funn:ihan
f.1l az u!:l5itht hí"ják SELECT Ick&dt:z6nck, és ez a7. az utasitás. amelyet az SQL-ben
adatok kioh~s1ír:J haszroln;lk. A SELECT lek&de?ks több rtlirlx5! ~lIhat, amelyek közül
néhJlny~t a f<.;ezct kb6bbi részében ~rgy:llunk. mO:SI azonoon nem kell agg6dnunk
amL1u.lu nem ismcrjük pontosan az SQL nyel\1:lnál. ÓSSZpont05í1SUnk arra, hogy:in kell
kijelölnünk a ~bIaadatokat n SqIDataSource vezérlő \":Irizsl6i:ioon

Most. hogy megadmk. milrcn ad:nolut SZCretnl:nk kioh":lsni II IIooks tibiából. kani nt-
sunk a Next gomb.-a. hogy elérkezzIInk a v-ar.íz.sl6 utolsó ablalclhoz.

3. lépés: A Iel<érdezés ~próbélésa


Az SqID:mSource vor:íl5ló utolsó abbka a TeSI Query (I.ek&dezés kjpr6W.I~S:I),
arnetyb61 elindíthatjuk :I lekérdez6;I, hogy lá;;suk. milyen adatokat ad lissz..l Amim
II 14.6. ~br~ mUlatp, a SELECT' FROM IlIooksl lekl:rdez(~ ",i.u/ell rekordot viSSZ:lad
II 1Iool<s tibiiból, 6; minden ",kordban IIlCrepcl II tábla 6s.ttefos21opa .

..... ... -'. ."


.1, --
~ ___ """"""",_",,__ ,.--,,-,,0-

14.6. jin
II k/d'rdah ",Ind<~, sor
mi",,,",, o<rlq>6' 'U:u:amJjd

Ha azt az eredményt kaptuk. amire számllOl1unk. kanlnlSUnk a Fini5h gombra


a l'afiz.sl6b61 való kiléptshez Ha nlamí nem tcuzik, a Previous gombra kaUintvo
vissz:llépheIOnk. és szOksé-g szennt m6d0>;íthatjuk ~ lekl:rdezbl.

ÉSlIwehetjiik, hogy amikor aIN libIát választunk ki magjele!lltésre, 8 tábla összes


rlIkordjAt Yissakapjuk, méQptldig a Bo< kW oszlop tiftékei szerint rendezve.
ASEL&CT SOl·utasltésban azonb(lf1 &gyszenlen korlátolhatjuk a vissza!ldon
rekOfoobt - például megjelenlthetjiik csak azokat a kiiny.oeket, amefyaknak III ilta
kevesebb volt 20 doIIknál-. és III eredményt egy !Idon oszlop szelint rlInOelve is
kérhetjük. Al IIlIdmény smrhsére és rendulhsl\ra használlató SOl~tasltAsokat
8 fejezatbart flamafosao t6rgyaljuk, mIg Illó!, hogy ezeket 8 be/illftásokat hogyan
juttathatjull; éMÍnyre III SqlDataSource·variilslón hrllSlliik. a IeckébMI később
ejliri. ~t.
IQ. SqlDataSOIKCe . _ kódja
1\ \rlllual Web Devdoper "8ys~en1v~ Leszi a WL~ \'cztrl6knek. Wetve:l. SULiku5
tHwlomnak az okblhoz ada.~L a le.vero nt1.Clhcn, dc eIn",,,"'1 nundig meg]ni:roc!ik
:l. rnoegfelri6 kód, amelyet J fOl'Tis ntzctben ~Lh:OLU"k \;~z(lk il;; meg. milyen kódot

~J~IOII d6 aZ Sqllht:iSoun:e luér16 '"2r:I.z.J6j:l.1 Mouun a \'~Jizs16 finWl goml""r~


kauHllouunk ••-::il"'-Lnk a Souftt bpra:u ASPSE'T okbJ I rrML-k6djinaJc mcgtekinLo!-
'lEhel.- Al: SqIInUSouroe .'C'ZtrlÖ megh:ItJrozh;I ,-"bhog)' igy r~:
<up, sq l o.taSo\l~ce ID "Iq loa, .'·'<>Urcel' r"Mt.· HO'",r·
Conn",, ~ I enSt d "'10-.1 $ C'ü"""ct lonSt r i nll5 ,(:Onll*CtlonSt r Inll b '
"l""'tC~nd~·S~L~ • FROM IlIOok.)" ..
• f,8p,SqlDmraSoutce.

• .0 _ Ez a [ut..~g:KIj:;l meg az :u;btfomis-velérl6t az okblon ~~llqJ


a~16 ......"' ..1. Az abptnelme:wn rlC\'c:t {SqlDataSOUreel) b<iU'lln
mI'xlosilhaLJUk '':Ibm; IleSZéde:.ebbre, pfldlul a lIc~k.Dat. nho:.
• onnection5t r I ng _ ~:Z a rulajdoru:lg ruu.11'1')U:1 meg az adaLboizlShoz VJl6
o;albko~ h.aszn.1land6 k:!pcs<.>larJ karJklcn;inrot. Ha úgy dömött!lnk, hogy
a kapc.ot,(j karaklcrlll>OO1 a w'cl>alkalmatls bd!!il6f1jlj:li» n>eTltj\1k, ~ TU13~g
6l<'ke II wab.(,>n!l\1 r,i~ban SZerePI6 ~paolahk:tr"Jktcrlánc-bclIHtlJ llC\'e lesz.
A <\$ """"801 <or I K.t r.k. "r1 áncNl§v b fQI'TII:ijú "taSd~ azt mOnUj:l az atbúor·
rb-ve7.léri6nek.l'Iog)' al alkalmad5 kapaol;iti kalllktcrlioco.i kO«lu kdl kere.o;nie
" $ZiI~ inforrtdöut H:a" k:.paoI;ill hrJktcrUnrot na11 mentdtok
a web.eonfi'l f~jll",." fenti kód hdyén a tdICS lapcsobti Iclraluettinc~.
• ;elotetCOIIIUInd - Ez a tulajdonság haUroua m.:g al: aWt~k kuldOtL
SELECT lekhde:té:st, F.gyeljOk meg. hog)' a L"laitJons-lg értéke mcgcgyelJk
a \"Jr:lx.s16b:1II IJLh:uó lJU.1':CT ulasít.i",...1

M. SqIOauSource kód!" ..-ddlg el<'g egyszenl. hl5zen QUIlJn hi"",,) t"lajdoM;igénékb61


ji] Ahogy "zonb<an egyre bonyolultabb példtk"t 1;Ílunk majd. '..neJyekbl.'T1 imenlniv
szíJrk. fM5Ílb. ~~ ~ ~ is szerepel. az SqllhaSource k6djol ~"('II1I;;In
nO\'ekedboek ,nduL A Itnyeg. hogy az SqIOaaSource-'.. r.I.~ két módo;oo segit
bennilnket: elkesz;l, " megfoelel6 SQl-ut:l5ithok:ll. igy "robI na11 magunlmilk kell
betrn"nk, v:damlfll megk.Ln>él a vezérk5 fOl'Tis.1ru.k f~llIds:igos begépeI&l'I6I
320

Az adatbázisok nyelve: az SQl


Ahhoz. hogy az SqlDaI:lSource \'('zérl6 kl:pes 1egy~'Il ~d:>lolqu kinyerni egy adatbbL'Ih6I,
kl1 WOl1l1áci6ra van szOlc,(-ge':lZ adllWzi5 kapcsolati ka"Jkter1áncir~, lIlet\,,, a~ ~datW·
ZlSl1ak elkűklend6lek("fderesre. A11OK)' az el6z6 részben emJilcuilk. a leko!nlezésnek
oI)'"m nyelven keU tr6dni:<. amelye! az adatbázis meg&t. A modem adatb:\zisn:ndszerek
kÖZÖ/; nye!>"" az SQL(Slructured Qut."!)' unguage),

ligy adaili'i7j~ n SQl. SELEC'l' utMtású..aJoIva$lLltunk ki adnQbL A SELECT trulsiw


a Iegegyszen1bb furmáj:Uxm au adja meg, hogy melyik adatbáv5lábliból szen:.1.""nk
adatokat kinyerni. illetve hom- mell' ad:u0<5dopokra vagyunk kí\·~ocsiak. H.1 példlul
a Books t!ibl:llian s~ könyvek eimét ~r...lnl·nk rudni,:12 alflbbi SQl'Ula»Í1hl
alkalmazhatjuk:

IUl' a l SQL-t els&orb:in az ad:>lok kiolvas:ls:\ra hasznilj~k , új adatok beszúrása. illewe


már lélel.6 adalOk frissítése vagy IÖrl& is clvé"ezhel6 II scgitség{·vel. Az. ad>\rllÓdo6itls
aZ lNSRRT (beszúr.i5), UPDATE (frissítés) l!s DELETE (törlés) ulasitásokkal hajlhat.6 vtgre

Ebben a lejezelbefl kizárillag aual logIalkolook, hogy mikoot lehet adatolr;a!


kiOIVa~ III SIll segitségével. A 16. órától kezdve azonban az i!datbáziso~
&ó&tainak tör1ése és s.zerkewse is terftékre kerűl.

Az SQl SElECT utasftása részletesen


Al. SQL SELEC"r uta.'iítis.1t arra 1\3~ználluk. hogy éntkekel ol\'~n k ki egy biwnyOll
awtlXlzistábla <.>Wopaib6l. mtgpedig az ~I:íbbi formáVan'

SELECT &-zl<>pl, o,.zlop2. _. OtJzlopN


!'ROlI T~bl"Név

Al. OIIz1opJ_O;ozlcpNérttkek a Tllbl"Név ad~tlXíl.istlbla <.>Wopa;t jelölik. Ha például


a Book,. tábla Titl!! és Author osoopaib61 S'l.Cretnénk aclltokat kinyemi, n alábbi
SQL-utasíúsl hasmálhatluk:

SELECT TItl", AuthQr


FI!OM BookB

FigycljOk meg, hogy ez a SELECT utasítás k&t zjirndéJJol tafUlmaz, magat 3 SELECT-eI,
dl<'1\'e a fROM ;tjndékOl. A zjr~dékok ol)"Jn kulcsszank az SQL SELECT uta..íth1oon,
amelyek megel6zik 'ZOkn.1k aZ adatoknak a nevét, amelyekkel mO'\'elelet vtgeznek
A SELECT lltasításban a SELECT k a FROM kOleler.6 záradéko k, Ahogy TTÚr bizonyára
k 'lal~huk, a SELE("!' úrndék azokat az oszlopokat ~dia meg, amelyeknek ~ Z bt~keit ki
szcn:tn':1llc olV'~sni, a FROM zá radék pedig a:ll, hog}' melyik 3datWZJSI~bI~b61 akarun k
adatolau kinyerni.

A SEt E("!' Ulas~ásnllk több oom kötelem Z~B is lehet, 8rnt1lyak kÖlÚl néhánnyal
hamarosan meijisrntlfhOünk. A WHERE zár.tdé.l:ot példálllarra hasmálhatjuk,
hogy csak azokat a sorotal UrjUk le, amelyek rntIgf~ bizonyos felt'teleknek,
az ORDER BY zjradétkal pedig egy adon OSZI09 szvrint roodezhetjiik a SELE("!'
utasít6s ilfadményét.

ASELECT zátadék 8 \'.eresen oSllopolo:. veS$ZÓkk.e1 elvAIaSlIon listá}ét larullmazza.


Ha egy adon tábla minden oszlopának értéké! ki szeretnénk ~mi, nem keU
beírnunk III összes oszlop nevftt; el~Q. ha • csilIIIg (. ) jellelllefyenesítjiik 8ZtIkat.

Az SQL~ekérdezések eredményének megteijntése


8 Visual Web Developerben
Amikor az SQL haszn:IJactt tanulju k, nem:lrt, ll:! v:.n egy ad;It~ZlSUnk. amelyen Icfun~t·
h:lrill k a Jek':-rdezéseket, hogy ~ssuk, mi lyen eredmén}' adrulk vissza Szerenc:o;ére
a \ rl$Ual \\~eb Devdoper megJehet6sen egynenJvé leszi eZl a feladalOt, 561 rnl:g rTl:IgJlrok
az SQL·lckérdczésnck ~ felépítésél>en is segit.

Ahogy aZ el6z6leckl'ben 1.'ilhaUllk, a llitabase Explorer alJlak az a hely, ahol mcgte·


klnthe!lu k az C:ppen megnyilotl ASPS ET webhely adarJ:;Q1.is:til, A O:uabase Explore1'ben
k:mimsll nk az egér jobb gOfllbj;h.,d a kÍ\~nl adatw,z,s ne,'ére, ts a helyi menüb6]
\':lIa.sszuk a New Query (Új lekérdezés) Iehct6ségct. Ekkor megjelenik a lek~rdez6
ablak, amely el6$zör arra k~r, hogy jelöljü k ki a lekérdezni ki\':lnl c\bl~k.:il . Mivel adat-
bizÍSIln knak csa k. egy tlbl!ij:l ~.,m (eooks ). a Ilo;!.'ioon ez aZ eg)'~'tlen elem szerepel
( lis<! a 14.7, :ibr:!.l).

.-_-,-
-
•• , ... ~ ., 'IC

14.1. libni
1,,1.=•.11 .iri " J~1Iérrtezn1
...... II t" II "'"
Mto:l" l UibM(Iul}t
I.

Jelöljük ki a SookB !ábl~l, 6; IcaUinl5Unk az Add gombrn. al\>cU)'el" L1bl1\ a lekérde-


zéshcz adhaljuk. A IIook~ tábla felvl'l.ele utin zárjuk be a p~rbcszédablakot a 005(>
gombbaL A képem~'Ófl ekkor oIpsmit kdllálounk. mim" 14.8. ábr.in.

..... _... _... ----.- ...


••••••••

'"• "
"'"fl. '"" ,.. .-"

-.._--._-
~,.,..,.
~
'tl~'"
~ . ~ - !-

.. -'''''' ."

-
..........
0'_-
-- ' .. ...-
.--
--:..,,--.----"'-''--''-,
-- --...
--
14.8. jin
lcI.h-tlem I<'t.-..Jro%dsa hfwtaltbtl a leltén/t>W obklkból

A lekérdező ablak alap:HlapotOOn nlógy reszrc o$1Jik

• DIt/Hmm ab{{lkláb/a- EIJben az 3b1ak~bI:\b:ln. ~mely a lek&de~ ablak legfel!;/5


3bbkúbl~j:I, alekérdo:zéshez adou tábl:1bt Ilthatluk az OI>lloplilkkal együn.
• Crilmil ab/lIktáb/a_ E2: a r3cs. amely a Diagram ablaktábla alau u111ha16.
a Q:>7Jopokal sorolja fel,,, r.ljuk vonatkozó csctlegcs
Icktrdc:z(:~ ~1\:lJ ,~~:tdoI1
felt(~elekkel (rendezés. szűrés stb) együn
• SQL ablakláb/ll- Ez al; ablakl1bb "CIlleri.a (Feltételek) mcs alan a \"égrchajti'>ro
váró SQL-!eké1"dezé.!ol mutatja
• Res,;/rs (l/J/(lktábkl- Az ablak leg,lsó abl3ktábl:lpban (Results, \t'J.gYis Eredmény)
~ lekérde<:é$ \'~I!JCI.a~js:l utini (:redmény lekinthct6 meg,

Al el5Ő h.:írom ablaktibIa bizonyos szempontból egyQnmúködik. lIa kijelOljük al oszlo-


pok egy részét a SOoks tibia o.agrdm ablakwblabdi álrlzol:lsiban, majd \'tgrehajljuk
3. lektrdezés!, a Crilena r:ks ts az SQl. ablaktib1a Ctlnek megfelel6en fris6(}1. Ugyanígy,
ha $:Ijii! kt>zffie8 úunk be egy SQI.-lektrdczbl3l SQL abbktibl:1ba, k "égrehajljuk aZ!,
a diagmmablak k 3. fdtéotdr:ks frissítéstre kerűl sor. Az en.><lml:nyablak ezzel szemben
CSlk a \'tgrehajlO(( lektrdcz6 eredményét mULilja. függetlenül anól, hogy melyik
abbkúbl:ílYdn határoztuk meg a leko!'nlezbl.
A lekérdező abbk tetejl:n egy sor kO~ ~ ikont (gombot) találunk (I~
~ 14.9 :fur.Il) A bal ~zéJen levő négy ikonn~1 az egyes ablakt~blákat bpc;olhatjuk be 6;
ki, igy a nem haszn§lt ablakoku elrcjlhetjOk. (Én szen~1y szerim saját ke7.l11eg ~zeretem
mcgfmi az SQL-k·kl-rdezésekt"l. ezén Itik.,~ II diagr~m:lblakOl él; II fc!t("tc!r.'iC'lOl.)
A kövtc"lkeu$ ikon 3 sorban a Change Type (TIpus rn6dosítá,;.a). amelyre bnimva
mcgadhatjuk, hogy milyen típusú lekérdezés! (SE:LEC'l'. INSERT, UPIlATE V"J.gy DEt.F:n:)
szerelnénk fUUatni. Ezt egy vörös ft'llOOlt6jt.-1 követi: em: az ikonra kanint...:! hajthaljuk
,.,gre ~ Iekffilfozésl {os jeleníl.het:fOk!T><"g:lZ crreményt aZ el'l.'dmtnYl'blakban. A kÖV<.'lk<.~
z6 ikon 3~ SQlrlekérdezé:i formai hd}'~k ellen6rzl-s<,re szolgál. Ha II progrnm
biffililyen nyekuni hibát taU! a Jektrdczésben . .,nesit minket. A többi ikOfl ol)"'ln szol_
gáluW;okllOz kapc;olódik , amclyck<."l ..>bben a könyvben nem tárgyalunk.

l U. jin
A k?lib<Wz6 aM.k az eu.lod%tdr fé:Jllja/nu 'l!$freszllbh","

Grakorolluk egy kksit a Ick~z6 ablak haszn~Jatál! Írjuk be az al~bbí lekérdezést


n SQL ablaktábl:l:ba:
SELECT • FROM Sooka

Ez után k:luinlSUnk az eszkőztárl».n a vörös felki:l:!tójeJre. hogy v..';grehaj\I;Uk a lekérde-


zésl A diagr:Hn.1blaknak és a felu:"'telrácsnak ekkor frissülnie keU. hogy tOkrözzl!k
az SQL abbktábl!iba bein lelléTdcz6l, az eredmén)'Tlck pedig meg kell jelennie
az eredmérl}"ablakban. A )l"kérdez6 ~blakOl II fenti SELECT ut:l~iW; ~'égrelJ;>j[jsa után
a 14.10. ~brn mlll:llja.

A VÖlÖS Jelkl6/tójelre való kattintéson kivül ugy is fultallwunk egy Jek8rdazesf, hogy
a Query Ot:tsigoer (LekérdezéstefV8ZÓ1 merJib61 az Executa SQL ISQL v/igreltajlibal
parancsot vlIIasztjul de hit jobban tedveljUk a biUentyl1p.ancsobl ~ CllIl +R vagy
az ALT +X biH9IItyúl:ombináció meJlen js dönthetünk.

McgjcKYZt'"nd6. hoJP' a lekérdeu$rnotor id6nkér"Jt átirja al. SQL-Iekérdez~lOkCl.


Az imént például aZ!. inuk be, hogy SELECT - I'ROM Booka. 3 'égrehajtOlI lekl'rdt'"zb
mégi$ a kŐ\'Clkero fonnit őltÖl1l":

Sn.EC!" IlookID, Titl'l. Author, Ye"rPubliahed, Price, t...ulleadOn, PalIeCount


!'ROM Ik>c li: 8
..... ~---,...-_
OP
... _-,-
.~_


- -
- - -- •• -~~
,~

- _. •

_. _.
0:::'= ...- - - - -

- -----
- - --
--- --
--.- -- - •• --
--- -- ,

••
--..- -
_,_o,
.- -----
••
••
••

14.10. Mn
Az ~ crn1""",~ ..., ~)'llblnJJ;"... Ji'knj/f ""w

Tefl1'Jbwcsen ez h ~ nu lek<:...dezksünk Ugy.lrIólll az eredmbJ~1. adia AZ! ls megfl8)'eI-


het jük. hogy az eredmény:.blakban Uma!ó eredmény megegre:/.:ik ~lit:ll. ~mil
az SqIDatlSoufCt' vez!rl6 v;orizsl6j;irlólk Te! Quef}' abla Idban 1~!lUnk ( I ~, 6, ~br.a).

f'róbIIIJlInk: ki c:g)" rrds.k s~ ul1'iiWll M6dc:ltIiuuk a Iekkdezésl az SQL ablakúb-


IJban SUAiC'r • miti Iol>Its_róI ~
SItI.Il:C'I' Thi .. , Au' r
1'_ BOOk.

Ez:l Ick~rdel6i a IIocka !~bla minden SCIIit ,·Issl.:tadia, és a TItl ... !Iletve ~Z Author
os-LIopok: I'rtékdt jelenit; meg. MJUrán beinuk en a IekbUezé:5l; a sZÖ\-'Cgmelc5be,
IUjl5lJk is végre - az eredmény ~ l ~.ll ábr.ín UtlUtó. Fi8)'eljük meg, hog)":ln \~lt()2.ik
~ di:lgr:mubbk és:l felt~r:ks:ll (q SQL-lek<:-nJtozesock rncgfelelo5cn. illetve hog)'
az ctedmén}":lbbkb:m e~111<l1 cs:lIk ka oszlop Lllhn61~ helyeit

A visszaadott sorok. mmának korlátozása a WHERE záradékkal


A SELECT u!asitis, ~mikor C$lk a SEI.ECT és FROM uradékokból ~ll, ~ rncg~dou ..wtboi-
;ciIclbIa miT")",, 501':1! v~d"", A 14,10. és 14 II ;lblikon búlut6 SQL-lekérdc:ztsek
ptldáui" !l<>k. Obi:! &szes ood! rnegjdeníuk .• kt'U6 C5lIpan abban kOl6nbözJk. hogy
az crednlálybm 'neJy osdopok ~n jelennek meg
I. . .. • ....

••
.. ...
........ _.......
~
~~"

~ ..... ~. I
--- -.-- -- ••,. --- ....
4.~.
,,-"

"l.JI ....
.-

-.-....--~-_.

-- --
··......-.---
.... - ••

- ... _...... - ..- ,..- .-


··...-
-
~::.~~=d:=
------
_/:.-
- -
..- --
- _... . . o -

-
--
- ... --
- ~.

1.,lI, 11m
.u SfJl.~ wf 0IU1op~, {I(11" L"=o

AflllkOf 3ZOf1ban egy lId:l!b:izlSböl3<btok~1 olV"!oUnk kl, ~h"lában nem vagyunk kivin·
C5i~k a W.bl~k minden adllár•• o::Ik az 3<btol<: egy rb'~l're F'éküul ha az Am.. zonoom~
on az ASP.~ET-r6I szóló kOnyn:ket keresO.nk, az credmmyokbJ cs;ok a k~,
fchadelrnek megfeJel6 kOleteket .5OfOIja fel. nrm pedig az AmoIzon,oom ad:IIJ;4us;1ban
laL1lhal6 ~ kön)'\~

A SELI'!CT jJUJ vLssz:udoll $OtOk korUIOÚS1r.J a Wllli'IIE zjr.>da:OI: h2s=;JJu\JIlk Ebben


• z1radtkban adlJ;lljuk meg uok:u II fel!~kel, amel),..,knek egy ~k meg kell
feleln,e. hogya SELI'!CT en.'lInlény8>e bekcrilljön. A kÖ'o,etkcz<'l SEL1':CT utasit.h példiul
C5;jk arokat a K>/'Ob.\ adja Viss7.:1, :l.melyekben :I. Tit l" oszlop i'rt(:kc The Number:
,....... .
"" >Ill 8ook.
WIlDE "lU. ·Tt _r'

Irjuk bo: ezt a lek&del&t J Test Query ablak me~bo:, fos k:lnlrtt5Unk a Test Que!'}'
gombra. Az erehlé"yben a Book. libia 05sze:s O$lIop;\n;lk meg kelj jelnlme. de c;:sak
es}'ctlen som.ak - a The ~r cfnll.l könyv sodnak

FiQyvIjük hogy I Th. Number k... aktertitncol .gvszvres idéz6jeIK wszik töriil
mig,
• WHERE ~ HI Wletl&núl kttt6s ~,. ..1t.tI1runk be" Tnt Query gOmbnI
QninMl. kOvetbzd Iib·-,nnetet bpr.a: lnv.hd OUery: !nveHd, ,1..-
.,.... ''Iba N'-r',
Amim títjuk.:1 WIlKRE zárJdéklxm egy IogikJi feltétel t:iI~Jh:1!6: Tit l .. _ 'The Number'.
Az ~ mllvdeli jell!t aZO<lO/; jeJenté5ű a V"l$lIal Ba~;cnek n S. fejel.eilien megismL'1t-
műveleti jelével. Ezen kivIlI tcmtbze\e;en más oozch.asoolíló műveletek (például <, <~.
>, >~) is t~lha1Ók. amelyeket II I~.l. táblizatoon foglalwnk &SZe.

14.1. "". A :ldm tri' ,,~", t .,'fIIIJó 1NÜI'fIIldriI

Muvaleli jel Pálda Lelrás


Title . ' The NUmber' Kél. &tt'ket hasonlít össze. b Tr1.Ie-t ad vissza.

ha II bal oldólli tn"'k kisebb, num a jobb okI:l~.


vagy ~'Cfl16 3zz:11.
> Pdce> 14.9S K~ &tl!h'l hasonlit ö:!.sze. és '!'nI&-{ ad ,-issZ3,
hll a lxii oldali énék nagyobb. minI II jobb oldali.
>- Pri~ .. >~ 14.95 K& értéket hasonlít &sze, és TnJe-t ad ViSS7..a.
ha II b:l1 oldali ért(,k nagyobb. mim a jobb
oldJli. vag)' eg;...ru6 3ZZ:11.

Az ~ehaiiQnlit6 miiveletekeo kivül logikai mű"elelekel is alkalmazhatunk. hogy


Ö5SXefűzzOnk több logika, kifejezt'.5l_ Ezek a nnIveletek az AND b az OR. amelyek
uonos jelentésIIck a Visual Basic And és Or kulc\6z.:IV~\'aL Az alábbi SEL€C"I' llta5ith
pékl:lul azoknak a kÖflyvdmek II Title, Author és Price 05Z1op;'i1 adja vi=,
amelrek 'i..."rPublished oszIop;'ilxln a 2004 ~n~k szert'pel, vagy amelyeknek n iir~
(price) It"gfdjebb 20.00 dom, _-olt

SELECT Titl". Author, pri~"


FROM Boolt~
WHERE 'iearPubH"hed ~004 OR Prlc" ~. ~O.OO

A renl, Ickérde~és Idrom köny" ..... ad V'SSUl' Crea/(' l (",rDu~1 IrdJsi/". 11,,, Ca/eher
flllhe Nye és fig/ll Club

Amikor UIIY o$l\op értékét ellY kilfakterlánc WII'f dátumlid6 trpusú ~aI hll$Ol)-
litjuk ÖSSlll, mint a WIlERE Ti t l. _ 'Fight ClUb' vallY a WIlERE L4st.ReadOn
< '2005-01- o l • ririldékokban, III áIanCI6t !Fight Cl ub, ~letw 2005 -01· 011
egyswes idézőjelek kÖlé kell tenoUnk, Ha aronball egy SlálTlOSllopot wtünlr. össnr
egy számálla!ldóval, III idézőjeIre nirICs szükség.
Szeroocsére ezrei a Iwcsa SllIbáliVaI csak akkO!" ken 1ÖI6dnÜnk, ha sai't bllileg /runk
be egy SQL-tJtasltást a lekéHlez6/1blakba; ha III SqlOataSource vezérlő varázslójában
épltinr. fel egy seLECT utasítást, I vezérlő eI'IégZi helyettilti I meqfe1e16 idézójelezést,
14. 6ra • AdIrdi:; "" f IZ ..... ,,, \ ' IIIkUI I333

MI történik. ha jelen van a WHERE dradéIc.?


A MIKRE Z:ir.KIfk haszn:lbl;lkor ~ ~ ~ kö\'eu..cz6 ~Jé;c:k '~~f1I kcn11 ~
~ kiS1Jll&'í16 eI6QOr SÚmb... ,'eSIi ~ ~ L:;\bb ~ ,,-kordjlt, majd ll'Undeg)-ik
rekon:lrdl mcll'~Zl, hogy:IJ: nqfdd~ ... MlEfUI z;:irw;l(;kllll" ~ rdtftelndc, ''fg01
pedis ha 3 feltl':ld True eredmén), ad, a rckon:\o( bdefogl:llp a kIlTleocd.-.e, nd!! esetben
pedig ch-C!i azt.

. F:"I!CT TiUe, Au_her


""'.>11 IIooks
WIII!II.J: Title o "".. Number' >.NIl .10 <~

!lllcM! a Booka !j!.>la SQr:I.lf1I vonatkoroan kell megntzn!, hogya WHERE :t:I.f1Idék
feltétele ig;oz~, AZ. eb6 könyv ( , is" .../ Stf"IiO lI...c.6o$) esetében azt liquk, hogy a dm
nm! '!'he Number, ~ könyv lIZOI'IOI\Oilója (I, ,kID) pedig kiM'lJOb, mint 3, elM ezt
a kOnp'rI a f~ti liUECT Ut:l.SÍw nMu~dia A kÖ>~ez.6 kOn)'" a Crofllc lou~ Own
Irros;te ennek a dme sem TIlO: Number, 61 az. aWOOl5ít6j;l is klS<'bb 3---fP1. elbt
ez. II koo)'V is \x!,keri11 az eredm61)"be.

A harmadik könyv elme lIzoooon The N\tIIlber; viUgos. llOg)' az utaJj;l;Í$ ezt a köny-
"r! "em adia vi~, mert 3 Titl. o 'The Number' fdléteJ hl ... ercdm(,n)' ad
A kö',-rlkez6kmt klérttkell könyv a 711c (Atelier ilf r/IC N)'C ez ~ kerül be
a1. en:dmenyl ... lm;ub:1, men a címe ug)-":ill nm! nw- ~r. dc aZ u.onos.tOp 4,
aml 'rem klSebl, '-~gy eg)'t.'1lI6 3-mal Al. UlaW> koo)'V (FVJhl Q,lb) ehhez h.uonl6:on
5wMn kirruor;ld, mert a 800kID érI/!'ke in IS nagyobb 3-rúl,

A renti SQI..-utasit'is Ich:!:t két koo)'V - Ils.....1 SWdw IItlelcs és CTrtlle ló"r Orm \l""cVslle
_ ,'itl. & Author ~I:KIja \-'LS.SZ:I

Al eredmény _ . az ORDER BY _kkal


t:.z~eheuUk, hogy ~~ eddig megl'izss~h SQl-l<'kérd"dsck ert.-dményd ~ 800klD
oszlop trttke szennl rendczulk (Lapouunk vis.!;u" 1410. Jbd.hoz, amely" :iELECT •
FROM Book. lek&dezé< credm61)"CI muUlja.) Mi ~ helyzet :lZonOOn akkor. ha:lZ ered---
nlé'n)' eg)' nW.lk oszlop szerim ~l\"C.sze-retnmk fIl"10deníleni, mondJUk ~~­
rertd>en fcboroh.. a koop'címeket?

f:rr(oszolgál a SELECT Ui:lsítá5 nm! kÖlc1e:t6 ORDER BY Z:ir~dNu, amelyben nM.'jyIdh:lijuk,


hogy melyik oszlop szerin! ki~-:1njuk n:ndel.11i az crednlétlyt. Ib azt szen.'tntnk, hogy
a kI.Irty'·ek CÚTIeI:!:~'r"Idben jelenjenek meg,:IJ: aUbbi <iELECT lekmie~
1I1k"~lmazhatJ.1k
334 I l l r6I.Z • ,.... _'h'tieokkel

,= .
FROM Book.
01<[1&1\ BY TIti ..
A 1412. 1br:in I~lhaljuk. hogy.m reS! a lekérde1.Ó ablak, lu ~ fenti SQL-lekbllczl!sl
adjuk meg. Figydjuk ~g. hogy a lek&deIés a kooy,'eket a Titl.. Oltt.lop szerint
rendezi. nem ]')\!'dig a BOOklD oszlop tft"ke abpjin_

. "' ,....... ..........


"'~"
"~
" .-." ....
_-'"'-_
....-
.. ~
.-"
..

-- -- -••• --- -- - •

• •• "

_..=-"'_._----
!::'

.- .... _
- --
-
...... --

_--~----
.....
- -
- •
" ;;,;c.,

..- -- ..- •••


,.. ••

--
- ... .._-
- - - - .'" ._- •
••
••
••
-~
~. .

14.12. ...
" "'''J~rieI" TIrIe aUJOP szcrlnl tJbéc&mmdbe r~tllkaTl1r
Ha olyan ~9.-00NsI szeretnénk Imi. amelyben egy WHERE és egy ORO~ BY
~iIdél is Sl9fI!pIll, ~, hOQY az OROE:R BY zíndél;;ot • WHERE zéradék ,dn
helyeaiik el. fleqy érvényes SOL-IIIk9.-dszés:

''''''' "
!'ROM Booka
WHERE Tltle o ' !'ll1l>t C!ul)'
ORDER BY Author
fl azonban helytelen:
,= "
FROM Booka
O~DE~ BY Author
WHERE N&IIIe ~> 'Fight Club'
Rende.4S nöwkv6 és CIOkken6 sorrendben

Az OItD&K Br zJl':ldék abphtclmezés !IZenot n6\oo"6 (el6re lubdó) som:ndbe ~


az eredmbl}1, de eZ:l ot:.. módosíl6val megfordíthat6:
IIU,lER BY ,"..,lopN"-" -Je

Ha:lZ ell."dtllén~1~' olyan O:<ZIOP szennl rendo:zzük 06\'00"6 5Of"I"efIdbe. amelyben


az ibrc .. belai nerepclr"K'k. llZ a~nek mq:fcld6en rendezell nedlMn}1
kapunk Ih a OE. kulcsn6l alhlmazzuk. a sorrend ezzel ellemete:s les~

Adatok SZlÍrése és rendezése


az SqlDataSource vezérlő varázslójában
Az Sqlo..~Soun:e "czé-M 1l:15Z1l.ll~láltjr8yJJÓ részben lanuk, hogyan lu.szn;jlha!(uk
az Sqlo..uSource \·ezi.orlc'l \":Ir.iz.slój:il arr~. 1108)' !TUJIden rekordot: meg.b.pjunk egy adott
t.iblib61. AlJ azonb:ln akkor nem \~ltuk. mikén!. WJrhetfllk vag)' rentIo:-zht'l:jük
az eredmén}' M061I, hogy mir többet rudunk az SQL SELEI"l' ulasiUsir61. l&,ünk \issz;l
ehh..z a \-~r1~hoz, hogy nM"glsmerkedjGnk a szCIrés &:il rend<.~ m6dji'-Jl

El&zör 15 nyISSUk meg UII"ll ~ hxke kOf1tbbi n':<izében elk(~tl'"lt Acceuingo...t •. upK
oldali. ~ tef\'''z6 nézetbm a<.ltunk hozz.;l~' ujabb SqIDaI:l.Source \"ezCrlőt. nutc!
k:llum.5!..Irnc:, Configure 0..1:1. Source lm'alko~ a \"eztrl6 okos dmk~. Mivel
mM létrchOllunk egy kapoolali kar;lkh,rl~nrot altjFiuto...tabasl!,mdf f~jll>OL, éi
el is rdktároztuk ~Zt a welxilkalmaus w,.,b., _nf ig fájlj:íb:.on. :il \0Ir1z.s.16 első ltpbénél
ezt ~ bpoiolau karJkl~ncot Jojthatjuk:il lenyilólisl:iban. }elóIjük is ld. k kanlntsunk
:il ''eX! gOmbr.I

A Configun' the Sele<.'l Sl:l.tern•.'m ablakban iC'loIlúk ki a ac ol<. tibüt a lenyfló [j5tJb:ln,
éi kaumtsunk a " lehCl6stgn: (115<1 II H 'j. 1brát). Ahogy:ol k'Cktben korábban Ijuuk.
ezzel egy SELEI""T " FIK'M [Sonk"l lek6"dcrest iodifUnk el. ~mi mimkn n'kordot
",s.sza~d:ol tibb\.lól. a I ,klD oszIupban SZerePI6 értékek 5ZC"OnI rendo:z\"e.

Az aWlokat 1I106t m1ir Q.:Ik:il SlÜk5égle\elOk nenrv. szumi ts reOOeVli kell


1\ Configure Ihe sekoa Staternent ablak jobb oldal1n "gy '«'ImRE és egy ORDER BY
f.. Jj ..~tú gombOl l~lhatUflk, t'lt'kkt'1 nylUt3tluk rllC'g azokat a p:itbeszedabbkokat.
amelyekben rneg;WhatJUk ~ IBLItCT Ul:l.5l\J.5 WlIEIU: ts OItDfl' 8"1' dr:u;l.;bil
Az SqlDataSource vezérl6 adatainak SlIlrése
Jelen ~n;\S szefinllehál minden rekordol meg;elení!Ünk a Books tib/ából Tegyük fel
azonoon, hogy cs:.k azokal a rekordokat 5zeretnénk látni. amelyek SooklD értéke
kisebb 3-nál, és ~melyck olyan kőnyvekl1C'z tartoznak. amelyeket 2005 után adtak ki
Az ehhez szOkséges WHERE szl1r6kt1 az SqIO:lIaSource v('z~rl6 varnzslójjnak 'Il. HERE
7

go~ra k:utimva adhat juk fIl<.og, a megjelen6 Add W/1E1lli Cbusc ( V;"HERE zir~dék
hoztiad.1sa) párbeszl'dablakban (ll.l~. ábr.ll.

_---... -_
..._. __ ..
,,~". w

-_._ -
..........
, •

---._-~~--~-_

-.-_.
~

=
14.13. "
Az erre1mb!)' szií,.:w llZ tldd WI/ERE Ck",.." p6rbesz&mb/.akb(1II

A sziIr6k homadása az Add WHERE ClauS<' plí!'be5zédablakOOn.öbb lépésb6l áll, ki kell


v:\lasztanunk pHillu!. hogy melyik oszlopot !eMnjuk szIlmi, illet\'c meg keU adnunk
a sziIr6múvelele, és a SZIlm ~Iul haszru\Jt btéket. Ih a szilr6kifejczésl a BooklD oszlopra
szerelnénk alkalmami, hajtsuk végre az alábbi Il'pbeket:

l. Jelöljük ki a szúrni kívánt oszlopol Mivel ez az oszlop most a IlOOkID, d.!.aSQuk


cn a Column [enyíló Hsúb61.
2. VJlas,Quk ki 3 S2úromúvdetel az 0f>i'r~tor li.'ll!iból. AZt akarjuk. hogy csak azok
a könyvek jelen!"nck meg, amel)",knek a Bookro értéke legfdjd>b 3, ezén
v~lasszuk a <, (kisebb \"Jgy egyenl6) nuJvelelel
J. Adjuk meg a szúróénék fomós:'h a Source (Forrás) lenynóli:óla segí~gévd, amely
azokal 3 l"hetséges helyekel sorolja fd. ahonnan a szűr6(.,,~k kiolvaslut6.
LdJel&éget t"renllhetünk ~Idául :IITa. hogy 3 webhd,ilnkre liitogat6 felhaszná-
ló adia n>eg ~ BOOkIO énéket - ebben al octben a Sou= li5úból a Control!
kell ,-;ilasZlanunk. M051 azonban egy rögzrl<.11 énéket O> akarunk megadni. ezén
a fomht jllítsuk a None (Nincs) értékre.
4. Miután a None Ie~get v;\\aszto((uk, a ]':lr:lIncter Properties (Paraméter lulaj-
donsigai) keretlxn mC:'gjelenik egy Value (Énl:k) feliMú szövegmez6. In adhatjuk
meg" kív;\m éftl:ket. vag}'l$" 3-mat.. CA ]4.14. ~brl.n az Add WHERE C1au5e p!ir-
beszéd:lblak Lilh.'l.l6, miu(;in végrell:ljtotluk Cll" léJb.)
5. A swrőkifejez& fehéleléhez.'l. WHERE záradl'kba kall1n~nk az Add gombra

-_.--
-. ____..__
. .__. ._-
. .
---
_~--_.p-

-_.~_.

• ,
--

--
.- -
L~ _

14.14. éln
,1 IJcokfD oszlof1m tg!" Iri.sebb mg)" tglltnW szr11ti1 tJlliJ()II,m* W, " ...CI)'
cg)' n'>(;zíWtt mikkel. a J -mal htrstmlilja r\<:rn> az h1<~

Gr.llulálunk - rnegJm.irO/:tuk első WHERE zár:ldékunkat U SqIDalaSour~varn:z.~16


segít.ség:bel!

MIvel nonban aLI W!1"(.'lnénk. hogya lck&dezésiinkben kél WHERE-kifejczés szerepcJ;en.


a munldval cs;.k rtlhg '·~llí\nk. 15mé1.eljoJk meg a fenti lépéseket, de ezútI,,1 egy ol~';1n
kifejez6/. '~"ÍÍnk fel a tiradékba. amely a YearPubliShed oszlopo!: ,"ZIlri a 20056tH
alapján . />irudn mindkél SZö"r6kif,*"l6! megadtuk, n OK gornbra kanllll\";! térjünk vissza
a Conftgure the Select SUtement ablakba. Az ablak aljin ~t1l:ltjuk 3 \'Jr.ilsló ~JtaJ elkkzí-
leli j"kérde2éS1:

SELECT ' FROM ISoo ksl WHER.!! « IBookID] ,,_ fBooklD) AND
~ (!YearPubll alled l ~ iYearPubli8h~)

Az Add WHERE Cianse párbeSlidablak tökéletesen miiködik, ha csak ew sziir6kifeje-


zést akMunk ~, vagv 112 összes sziifÓkifllje.n\st 112 AND múwlettel kapcsoljuk
MSle, ele ha DR-rol öwekapcso/t kifajezéSl:lket szeretnénk megadni. péld6u1 azokat
a könyvNet keressiil, Bmelyekllek 112 azol1Os~6száma NliIfeljebb 3 YIIg)' 2OOS-ben
lIdták ki öket. 112 SQl--lll8Sftást magunknak klllmeg/munk. El lill jelenti, hogy
8 Configure tha Selllct Slatement ablakban a Specify a Custom SQl Statement or
Stored Procetktre !fQYini SQl-lltasltlis vagv tárolt eljárás meghatározása) válilSZló-
gombot kellbejelölnlinlr., majd be kel fmunk I pontos SQl-lekérdezést.
338 1111, ráz • MriI adltb'ritnkkel

A:z SqlDataSource vezér16 adatainak rendezése


Eddig ké! 5zarökifejezést adtunk 3 Wllf.l!E úrnd('khoz, de n éll'dmén~1 még mindig
a BookrD abwn rendezo,"., bpjuk meg. Ehelyet! rendeuünk al M ~<:rin! (P~i"l!
oszlOp). mégpedig cs6kkenó~rrendlx:n (vagyis a l"gdrig~bb kön}"'I6I a legolcs6bb
felH AZOnOS b ~én az érintett könyvckt.1 t"'gyuk ;1.bécésom:ndbe a címük (Titla)
szerint.

A femlck nk>ga<i.hJhoz el6:.zör kaUinlSUnk az ORDER BY gombrd, 3[T1('1).'('1 a WI [ERE


gombalau találunk a Configure th.. Seloo St.1lemem abl.1kban, Ekkor megjelenik aZ Add
ORDIiR BY Clause (ORDIiR ilY zk~dék hOZ2.:1ád:ls:.) ~IDeszfdabbk, ahollegfd;ebb
t~rolll O<Izlopol adh':l1unk meg, amdyek alapján ri'fl<lezzük az """'mo!~nJII. A mhodik k
harmadik ()I;Z\OP aml 5ZOIgál. hogy eldöntse a $OITeOOct. ha aZ eIsI5. illetve 3 m:'iS<Xlik
oszlopban aZOl106 érték 13I:11h,u6 ('"-Igyis ha az.,ls6 OSUOP abpj.'m a sorrend nem döm.
hctó el. a lekérdezés megviug:ilj:l a mi.ooikkém lIIegadou o:szJopo!; h.. pedig ablxln is
ugy,mn n érték sz<--repel. a harmadik alapján rendezi n eredmen}1),

A 14.15. :ibrin L1tha!luk. hogyan fe;l3Z Add ORDER BY Claus<: ablak. mill!;!n megadt uk,
hogy eIC'lSZÖr az:ir SZL'1'Ím csökken6 5Orrendlx'11 ~l'rCUlénk n.'IXlczni. majd a cím al:1pj~n
,U>édrendben.

_...- ...- ....- ..


... OKI'""'''....
-.
?"rI

-
_.-
"""""""'_1 _ _ " __
1fI'W'_ o(] - _ " " " " .. tpoul u:o:. 1TtIO]
14.15. 6bnt
AZ' erfflmén)f dr $2""'"
~,r6 K!rn"uJ~ """tk='lk.
",,-azo..", "n, 1o:l")~t'4<I pedig
"cfmllJlSzcrlm s:croIjuk re

Ahogy 3 ]~ .15. ~br:in l~th:I!6, n ORDER BY lJmdék hoZZliad1.S:.I ut~n aZ Sqll>~lJlSou!U'


...~rerl6nk \"égs6 SQL-Ut:.o.s1t.1S3 így fog festem:
SELECT ' FROM [Booksl WHKRE «( [BookrD ] ~ . IlBooklDJ .>.NO
_ I [YeuPublhhedl UYMrPubli " hedll ORDER BY [Price] DESC. [ Tit le l
14.6n • AdIIak ... , 1" IZ idrrCb,& \ 4 11tU1 1339

A WHERE _kkal ellátott lekérdozésok kiprúb6lása


Miu'~", megadluk u DRDE~ BY úrJtltkOl is, az OK gombr:l kauIOwa ll:rjOnk \'ÍS$.U
a Conflgure!he Select 'lIalemenI ablakhoz. Az SQL-kkl:rdczésünk mosl ndr kl:szen ill
minden 200S-ben ki:adott ~ ~rI:iJ nem n:l.g)vbb :l.zonosil6;ú könyv összes 06Z~t
\bsz:Iadp.:I. aooks t.:IbUbóI. ~ az:ir S2:erinl OOkkcn05 ~ re1'>Ikli "ZQlaI. illet\'e
:l.Z "r0n05 iru kÖrl}...~et dm 'IZen'" oí.bécérentbe leszi, A kkmlezb kiprót4Usihoz
:I. l"el[[ gotnbballép;llnk " Tt'SI Qucoy abbklxI ,

Ha olyan kktrocd31 próbilunk ki . amelybm WHfFl! úr:ldl:k ~I, a Te:\!. Query


gombrJ katllm~skor a r..,IC!lzct'!kOrnyef.et :l.fT'~ k(:r mmkl1. hogy adjuk n1<.1I a WHERE
úr~dék i\Zo.lr6kifcjez(:stdben haszn:'ilandó én'::kek<.1 PNd1"klx".. ezeket n l:n(:keket
a lk> ,kIn fs a vearPubl iahed ~kr.t ,-onalkoma" kell megadnunk (lbd
a 14 ]6. ábr.it). Tcnnd~ meglugyltal]uk az alap&telrnezt'lt btékl'kel B ~ 200S),

-_
de IX'irturunk mls SlJmokal b

... _. __.-
........
--
14.16. ....
III oJloaljull ""w ti WlIERE Z<fmdllloll
m1r61d!~jotclr ln."""
lia mcghag)'juk az alapénelrnt'zetl énékekct, az erod~n}' kl-! könyv..... fog urulmazni-
a I bllal St.,aiQ IIa(:kJ~ a CroolO '\WT 0u~1 1f'"eb!'1/('<:il1lűeker (lásd:l. 14, 17. ~bd!).
cs,k t'J'n':I. kl-! kÖl~ \tPz, hogy az :l.zonosI'tOjuk kisebb \-'agy egyenl6 :}nu.J fs 2OOS-
ben :adt.ik ki 6kel_ A I 'lsulll StlrtllQ I Ioch ubi jelenik meg:ill C1l'QIe ,,,,., Oln! rrebsile
d6u, men az ita m:l.pSllbb \uh

UfJUk be:iZ SqlDataSOun:e \'eztri6 \_r.'i7~~ a finbh go<nbhIl. ]13 nq g)"korolni


szeretnénk~' kicsit 32 Add WIlERE 03use ~ Add ORDER BY Q3U5e ~rbesz«b\)'
I:lkok ha,wrlbt!il, a I'rcvioos jjO<lIbm kartinn-a térhetOnk \'w.z:, :I. eonrtgUre [he Sdect
SCllctnenl ~bl:i.khm..
_............. --..--
-' _--~-- ---._-.
.. 14.11. AIn
It ~ WI , .... <lot
tUJ .'i.<n<> n ~ MbJdMl

f>J. SqlDataSource vBZérl6 kódje


MlUlin bdUitouuk U SqIl>.II<lSouttt 'ez~ hc:>g)' WREIU: es -:>ROD ilY z:indék is
s1rI"q)C'1,en !>elln<", wnJUnk '"SY perrel ri. llOtO' !lw!g.oiv;giIIUk II "ez"rIo'> k6d!'ÍL
3 fon:15 n~l.1..,ben;

~,,"p,:'qlo..taS< .re. ID- 'SqlDatasource2' rI."u."_rvClr"


<,
'L lonStrinll' • S COMe<;t 1<mS' fing. ,Conn"ct i "OS! r II,,, h·
"c_ruh"SE!.EC':'· JRQM (I1ook.1 WIfI[JIE "(IIél"UDI co 'lI<>CokIDl
_ ANr !lYearPllb • • hadl • l'ie.orPubl1.-ho1~· OIIDER BY [I cel DESC
-"'l elO>
cSele<:tPa.-e., ."
<... p,p"..-_~ ... o..huhValu"" "l' ~·_tlD' Typ •• "!ntl2" f,..
<... p, " .. r_ter I»hul tVslu..,. ·20('~· tI __ "Y"arPubll.hOld"
Type-·lnt3." I~
<11.I.ctP"r~ter.'
<, •• p,8qlo. •• ~ e~

Az b;l' nn'ct; ",.string tula,clons.lgnk mir i.SmefÓSoek lemtnek: még az ro


elej6l iSmetkedlilnk meg ,-duk. A Sele<-tí, _fid azooban kl~ O5su1:euebb(: '-lit.
men rno.;l m:lr t-"gy WHEkE ~ egy [lRDER BY z.:irnd{,kOl i< Lan~lmu rlgycljük meg. hogy
nem t~rlolik érték a szOn'ikifl,cz6;ckhez, p<,<:hg konkrét énékek..1 " dlUnk meg n Add
WJ-tERE CJ~u~ p:lrbes2éd1bl~kb:1Il - ehely ..'u pa rmnbcrczdllc!l!b'tlez<!slö111~,

A paroméfi.'regy 01)'110 helyór1JL5 az SQl-utuitlsokban. amelynek az abk", ,par


.ti. ·'rli-fv. Ide keril.1 om,J a li:'nyleges SQl-UI:.lSiw. nuel6tt a lekérdez61 dkül~nk
3z adall»Zl5Nk Az Sq!DauSou~ \'eHrl6 a ,·leetC..... nd p;lr:II~erell a <S<tlecl
P.. raMteu~ elemben wn.>ljol rel. Ez<'1l 3z elemen belül ké'! <up, P.r"""'t .. r~ elem
121.1lh.n6: egy a flBookl0 és egy ~ iY"arPubll~hed paraméter $úo\,lr~, I'.zeknek
a rögzlte'll Méké'!a Oef.1I1tValuelubjdons;ig adja meg
Atrukor a Iltog:.lt6 bct6Iti az ASP l\U oldalt, az SqIDaIllSOuI'Cl:' ,'/'lhI6 fogj:! ezekr!
a p;ll2mélettnékekCl. b bes~(jr;a uokat" SEL8C'T Iekb'tJc~ megfelelő helyene.
rnicl6u a Iekoirtlezésl elkOldcné az adatWzisrok I'.z fele_leg<:'! körnek t(Jnll('l. hiSZl.'n
~1. énék~ket .bedJ'ÓlOltu k". a ha~zna alOl'lOO n rögtön nyildn,,,Im.·~ v:llik, h;i
II par.tméterek érték':'; II felllli7.nil6 ~dlut", meg. ~ag)' mis kOI56 forrisb61 olvassuk be
nobt. A felhaszn~16 ;ilt.. 1 megadott p:>1'1In*terén(:kek~ b6\'ebben a 17. feJ!'zelben
lx'szfIOnk ~jd.

Összefoglalás
~:bben az 6d.ban az ASP "lET "d:l1forris-vezérl6l\"eI Ismerkedtünk meg. elSÓSOTb;In
az SqlO:l.laSource vezérlő"eI. amel)"t:1 adatolcn .. k eg)' .. d,:,nl);jzls1J61 valO kiol\~~sára
hanNU,alUnk. AZ SqIDaIllSoon:e vez6i6oek k~ inforrrdciól'a '"~n sz(jk.!é~ ahhoz,
hog)' ada,oIut n}'mleSl>Cn ki eg)' adat~ az atbtbómhoz ,,,ló ~pc:MJI6d:.Is
m6dj:1n. illef\'e:l "égreh:lpndó 'iQL-Iekb'tJcz~. Ahogy.U" SqlDaIaSoufCe 1Y'ZCrl6
hlUZ.liUata ctmú n'szben IJItruk, a \'ezéri6 varizsl6j:in;;r.k ~ ezeknek
<ll. IOfOl'T1Uci6kn2k a ~ mwikMll ~-uml

A v~rilSló '~gerdmi'nyk611 egy ol)':.." SELECT utasnlSl :lIii' elő. amel)' meghat:1rou:.,
hogy mdren "dalo~t kell ktn}'~mi " hánér.od:ttb;lzlsb61. A lekérdezés n}"t'h'e az SQL
(Slructured Query LIIIguagc. vagyis 5I.ruktuclh lek6de~6nyelv) - minden modem
ad:I1Wzis·kezeI6 ezt a nyeh'ct luszntlja n adatok kiolva.sj51ro. besz(j~r:I, f!'ÍS5il~re
b törl6l1c

SELECT OszJapJ. ltId~, . , .. ;""JapN


l'ltOII T,fbl"I,,<v
WMEP:8 _r~F"lt"t.l.k
)RDU ilY OIOzlopN.!'v

A WHElIE és ORDER BY ~r~~kok ncm kÖlelez6ek:

Szerencsére ahhoz, hogy <"g)' ASPJ\U ,,'ebokbJon acbwbt oI~n11 ki eg)'


~tbtbillmU6l. nem ken SQl-gul\ln:lk lennfink. Az SqIDaUSOurre ".,lhI6 \'aliz..l6p
1dle(6),'é teszi. hogy a ldénlelC5eket egy könnyen hasvÚlh;i1Ó grafikus fdOlelen
kC'A."'lztill ~e5:izOk meg

MosI. hogy I~truk, hogy~n nyerhetOnk ki ~d:uok~t Cll)' adatb1Z1Sb61 az ASP.C\1IT Sql-
DaIllSOun:e \'eZérl6jl,,-jek segi~gl."eI, ~ kÖ\,etkez6 J~pés ezekll(>k az ",datoknJk
a ITIeJUC-'lenít.:!se: az ASP,N!:.' okIalakon. Ezt is webe5 ad:l\\"ezt'rlőkön kere.'>ZIilltehetjilk
nlC8 - ezekkel" ,~en6kkri lo$mer'kedOnk meg a kÖ\etkez6 órib:ln
Kérdezz-felelek
K: Az SQL wg;tS<!stfr.,l'/ ®~.,..,.., lőbb adatbáz;st(iblá!Jól ls kioll.rummmk a.kllfk//?
v: Igen. Mr ebben .. kön)..men C$lIk Glran p(:1~ka! né"lOnk meg. amel)'ekben
('gy~'Ilcn adatb:U~bla 51.erepe1. az adatbázisok táUl. kÖZÖlt "halában k~pc;o.
Jalok (rel.1.ci6k) állnak renn. TegyOk fcl példiul. hogy egy aZ ,\mazon,cpm-hQz
hasonló ,,-kereskedelmi w<:bhclyen dolgozunk. AdatMzisunk Orders
(Meg ....ncl.c'l"'~k) ncVll t;óhlája minde," sorban egy--egy megrendelés ad~tait
tart:llmazUl, amelyekhez h,rmészl~escn nem Co""k esy. hanem több ~ruC1kk is
(anozll,,!. ~ tehát egy Ordl!rltemft (;\k'gl"t-'1l.delt ~rucikkek) neVCi tábljnk is,
amelynek :IOr.liban az egyes mt-g.renCIelések n:,;;~ képező dkkek", rögzíljOk.
A fenti két {~bla nyil\';óflv"lOOn kapcsolatban lill C8}11ds5:d: 3Z or(i@r I t _ Cibla
egyes sorai az OrderB t.ibia egy adott ~hoz t:lnoznak. 121 a kapclOlalOl
1'*'8<m I",/<=kka/fejezhetjük ki. amelyek olyan. külön~ lipu~ =,=!opok.
amelyek egy sort egy IJÚsil!: tábla ~'g}';k wrához k3pa!Olnak. Az idegen kulcsok
tárgyalása azonban lúlmUtat könyvünk kere\ein
MiuI~n k~pcsoJalOc hoztunk l~tre kl'1. t:llib köZÖCl. többnyire nundk(1 l~bJ~b6I ki
szer.:,tnénk nyerni ad:uokaL 1'l'ldánkjyJJl Irhatunk pékUul egy olyan !ekkdez~,
~mdy 3Z elmúlt 24 6r.iban lc;;ldou megrendelések adata'! oh"assa ki, mégpedig
~ rendelé;ekhe~ !ano~6 :irucikkekkd együn. Az il)'en !öbbt:iblis SQL·lek"'rdc--
lb;ek meglehet&en gyakorikak, de sajnos ezekkel sem:ill módunkb:m ebben
a könyv\:>efl réizlctescn foglalkozni,
lb többet 5zeretnénk ludni a t~bbkapc501atokr61 k az oo>:etetlebb SQL.lckér·
dez6ckr61, olvassuk el a &..ms ki3dó T,xJ(;h )(}ll~('1f SQL in :l1IIoJl~dma
koo)'\'éI: OSBN- 067232HZ3)_

Ismétl6 kérdések
l, Tegyük fet hogy van egy ,0.1_ (Albumok) nevű ad:uWz'5ÚbUnk , amelynek
O<ZIop:d a kO\etkezók: AlOOmID (Albu,naWllO.';ítÓ), N""", (Cím). ,o.rtiol:- (EI6:ldó)
b. De.taPurchaBed (\'á5árlás d1tuma), Irjunk egy SQL·!ek&dezbt. amelr kíol-
'-a:;5a az albumok círnél. ;<,; ~bki'rendbe lC5zi a~oka~
2. irjunk SQI.--l .. kérdez~. amely kinyeri n albumok el6:ld6jil, eiméi és ,'lh:irilsi
~tumll (ebben a sorrendben). és a7. előadó neve szerint ren<.k-l'.i :lbk'ésom."[l()be
a listall
3. frjunk SQL·lekérde7.és1. amely a Nirv-Jn.:t összes albun~l adi" vissza a y:i1!!iriás
doinnna <zennl rendez"e. az utolj:lr:. megd:~roll lemeuel kt'zd"e!
4. Az al:ibbi kél SQL·lekérdez6 polllooan ugy:mazokal n ad110kac adja vISSza?
SELECT AlbuloID, Name. Artiot. Dotel'u~ctw.Bed
fl'.or. Al""-
SE!.EC'l' •
FROM Albuma

5. Ifjuk le. milyen lepbek :;w~esck ahhoz, hogy egy olyan ~datforr.is-\"ezérl6t
"egyOnk fd. amdy awknak az albumoknak "eimét és vWrI.bi dátumát adja
"Í5SZ:l. amelyeknek az aZOOO!iít6j:;l nagyobb, mint S. és amelyeket a Pa\'cmc11l
nevű eI&d6 kéQ1tett!

V~8SZ0k

SE!.EC'I" Nam<>
FROM Album.5
ORDER BY Na ....

2. A következő SQl-1ck<::rdczés megfelelo


SE!.EC'l' ..... tht. N........ o...tePurchaaed
fROM "l """'"
ORDER BY Art1&t

3. A kÖ... etkező SQl...!ekérdezés megfeleL


SEJ.ECT _
FROM Albwlls
Wllf:RE "rtist ' Ntrvana'
ORDER BY DatltPUrehued DES<;

4. Igen.
5. EMIl'pésként tervező né"zetben húzzunk egy SqlDataSourcc ...ezl'r\6( az ASI'.NIT
oldalra. és kanint.~unk ~ Configme l}~ta Source hi ... atkozo1sr~. Ez uÚn adjuk meg
:IZ aootb:izis kapcsolati aool3it. A Configure select Slatemcnt ablak lenynó 1i:;(Ji.
pból ,oílasszuk az Albuma t:lbl1t. majd a it'löIjilk kj a Name és IlatePun:hased
O:5l'Jopokal. EZ! kö\"et6cn kan;nt5Unk a WJIERE gombra az Add WIlERE Clause
p.1rbeszMabJak mcgjclcnítéséhct. Ebben a p.1rbcsz&labJakban két sztlr6kifcjl.'-
zb;! kell ffit.>g;<dnunk. Az els6t n AlbumID oszlopra kell bdllitanunk: a mt1... elet:
(Operator) legyen a >. II forr.b (SoIlrce) None. az ('!"I& (\'<tlue) pedig 5.
A m150dik mr6kifejczéM ~Z Artist oszlopra :'illitjuk be: a m('f\"ek1. in ~Z~.
a fomis $Zintén /100m:-, n e!"lek pedig PIl.vement.
Gyakorlatok
l. A következő felada! célja. hogy gyakoroljuk ~ kics,! az SQL hasWbL11. Nyissuk
meg II lektroez6 ~blakOl" [)'Ila~ El<plon.."1ben n cgl-r jobb gOf1lbi~\';l1 az adal-
bjlisr:l k:mintva. b >':Íl:uQUk:l. New Quefy leht:l6séget. IIlekl!nlez6 ablakb:m
írjuk meg alt az SQL-lekérdez61. amely awk>l II könyveket oI\'ass;. ki az acbtb:i.
zisb6l. ameJreknek:u. azonosítója ( B<xl k ID) I"&feljebb }. (Az SQL-u ... sitásl kÖ7.VeI-
lenOI is beírhatjuk az SQL ablaktil;>l::iba. de haQrolh.a líuk II diagmmablakOl b
a felt(1elrácsollS.) Fj~..,ljük meg II kön}'\listát, amikor kipróbálfuk" lekérderesI.
FUltaSSUnk <'gy IlÚsik jckéruczC!5t is, amely :uokal II kÖflyvl'ket oJvaQia ki,
amelyeknek az 1r~ m:.Igasabb volt 10,00 doll~rml. (II lekérdez6 ablakban b:Itr:1Il
kipr6báJhatunk [moibbi k:k~rdczésekel is.)
15. ÓRA

Adatok megjelenítése
a webes adatvezérlőkkel
A leckl! tartaimáb61.

• A webe:s ad:I!\'"z~rh5k Osszekapcsollsa a:.r. adatfoms--vez&l6kkel


• A GridVrew 6 [)et:IilsYiew vezérl& haszn:!lata
• A Grid\"lcw t!; IktailsView vezérlók mcgjelenbtnek leSlresutb:isa
• Rbzhalmawk megtelenitése aZ ad:l.lforris oszlopaiból a webes ~datvcz(irl6kbcn

Ahhoz , hogy adnl::dzisb61 szjl1llllZÓ adatokat je!erúthes5Ünk meg egy ASP.:"ET okblon.
kélftle webes vezé:rlőre v"n ~k$égünk. EI&Wr Íli. 3Z adnokat egy adufomis-vererl6n
keresztül &jűk el, misods;zor pedig.. az ad1tfomh-vezérl6 ocgl~géveJ kiolvasolt ad:.lOk:n
egy webes adatycwr16 alkalmazásával jelenítjük meg, Az előző 6r:iban at. ad:llfonás.-
vezérl6kkcl. e1s&orban a7. SqllhtaSource veZérl6vel fogblkoztunk. Ebben II Jecktlx:n
figyeJmilnket II webes ad.wezéTt6k felé fordítjuk. vagyis II vezérl6knek a7,zalaz oszt:l~
ly;lv:I] i5n=kedünk meg, amelynek II St'~<cl nx-gjeleníltl<.1jUk az aclatforr.is--vezt,.·
l6kkeJ kinyen ad:llo!t:at,
A ",ebe:; adllvezérl6kru:k az awtforr:b-ve~6khöz hasonlóan egyetlen feLaduuk van,
az ad1tok R1eg,tt'lffiítl$e. A ",ebe!; awtvererl6k tehát nem képesek aZ awtok kiolvas;\_
sám, aZ awtokat:l.Z adatfomlS-"czérl6b61 '·<:SUk. és csak leképezik azokat n ASP.Nl:.'
oldalon. A külÖflbölŐ adatvczérl6k az ad,tok leképe;tb, m6d~1ban killönbömek
eg)'miSl61 A Grid\rteW vezérl6 pl~dA,,1 az adatokat egy clcsban jeleniti meg, amelynek
minden,;om az adatfon-.is-H'zM6t61 kapolt egy.egy rekorot1:lk felel meg, de léteznek
olyan vezérl6k is. amelyek egyszerre csak egy rekordol; jelenílenck meg.

Webes adatvezérlók - áttekintés


Az ASP.l'.'IIT sz:Imos wet>e5 vczérl6t tanaln\;lz. ~melyek egyetlen feladata. hogy adatokat
jeknitsenek meg egy adatf0rrá5-'·clérl6b6l. Ezeket:il. ,..,zérl6ket. amelyek:il. TooIbo:<
JYJk1ta [)ata rekesreben, az ad:nforr1s-vezér16k feletI találhatók, h,,'Q(ll ét1 ucl>cf (ulnt_
L'I'z<'l16kndt. Ahogya IS.I. ~bcln lithatjuk. öt ",ebe!; adatvez&ló van, :il. GridVIe'"
(rncsn(,zt"!),:iI. O:l!allst (adat1~'ila). a [)eIail5Vicw (ri'$zletes nézet). a FOffIlView
Itlrbpnézet) és:il. Repeater {isrnétl6J. Ebben a leckében kelló"el foglalkozunk kOzűl(\k;
n Grid\"..,..,· és:il. Detai!,Vi<.'W vCl.érl6kkel.

-- --
........

.-_
J __ #
.;

4-·
....

-~
...
... ' .........
15.1.6brII
" flWcs ,,,I«It,,,,,érióIr,, Ilf",,1 \Pm Dt<JoeIoper TooIbo.~ pWendjtJII
A II. 'ej8~tben megismert DfopDownlist, ChackBoxlisl és RadijoBunonUst
YelérIólet is houéhpcsollatjUk ill adatfonás·vdr\Oll.höz, Ezzel. téiMval
részletesebben a 11. Ie<:k8b8l1IogIaIko.zunk.

Ahhoz, 1KlS>' adatokat jelenjtl~nk meg egy webes "datvererl6 segí~<d. egy olyan.
3datokkal feltöhölt aWtf0rr:i5"'ez&l6re Van szükségünk. mim n Sq!D-JtaSource vez&l6.
Miután 32 adatf<J!Tás.vezérl6t az okla!hoz adruk és bclllíto((uk. az adllok megjelenitt;se
már gp:rekjála;, cgySZClik'll az ASP.NEr oIdalm l1u7.zuk ~ megfeleló "·<.obes ~datvezér\6l:,
és anrok okos dmkéj{-bcn megadjuk az ad:nfom'ist. Ennyi az egész!
Az adurneg,elcnitb qo~ $2.eITlIéltelendo:1 \qn'Ük al. eI6rO led<ébc:n dkbtiu~1l
A.ci;». . ingD.Jot .. . /!.!lp" okbh. és leg)'Ünk cl egy Crid\"ICW \·ezbl6t. (Emlékezzilnk vissl.a.
hogy az A.cce uingD.JoU . u p)C okbl két SqlJ>:u:tSoUI"CC.' veZL'rl6I. un:ilmn. ,unclyek kOzQl
n egyik a Booka t:\blJ mlnde'l rekord:jlt és oszlosXit V~;tdj:l. mig a mhlk <SIk azokat a
köny."dI:et. amelyek a~ nem nagyobb 3-<ú1. é12()()S-ben adUk ki 6keU

TOllSOk be teMt al. emlitett okblt. és v:l.I1.sunk len'ez6 ~zrtre. El: u!;in huzzunk
eg)' Gritl\"icw \"elbl6t al; okbh,l a TooIbox fUletu O:.Iu ~. II GnoJ\"It-'\\' \,,,zbjO.
anwdJ)'eI a fejezet k(,s6hl)j resn-brn. \... wrum a k""·etkez61«kében IS részJete<;ebben
fogblkozunk. egy rtc:sb;in jelenil; meg:il :u:l:nJomis adauil Miutjn al; :wbtr:k5o( az ol·
d:ilho z adtuk. a ktpem)'6n oI)1l1.mlil kelllálnunk. mInt a 152. ~br.ln

. . . . . _. . __ ._>---.,..
......... ......
•• •
_

..
_--
~.
_~ .....
ll- ___> .
..... "

:--, ~~.~
,-- ~ _ .....

~_,·_t"":; -·- "-~

-- ........
~ ~ ~

----
.-
1 _ _"

.~-­

,-,-

~
~
~
~
~
~
~
~
~

-_....- .
._. ...
-
15.Z. ....
"

til' oJJi,l "IV' GridI '/eu' ,,,,,,,hi4 lIouámlásd Illá"


A Gri<l\it.·" .. alapé-nelmcZi..Os ~erim öt."OQI'O!; rnok~nl
;elenlk meg 3 len'ez6 ~ZI'Iben.
o/y:ln ;tluUnos mez6nevekkd. ntinl II CoIumnO. CoIumnl él CoIumn2. A \"1SWo1 Web
Do:-'t'lopuben IdUl eZl UllUk, h.. II \~ ~g nem I:1mtOllunk atbúom!5L

AJ. O:ZIOP (eoloowtt N6 ~ liIYart okOlhat. hit \IdatbálISt;\blákhl is ráesn6ze..


tekbllS dOIPtri:. mert mlncl::en6 l8ftIImal 0SlI0p0':,at. Jvy ~iim;en r~eMthet·
jUk. melyikr61 is '0'lI'l Sl'Ó. Ezért amikor • GndView vel6rl6 oszlopaIfa golldoUlk.
a mez6 szót loglU~ 1laSmáIrOt. mIg III adatbÜlslébl'k esat.tben maradunk IZ 0SlI0P
killljezéSlllll.

,u ad:itf<ll"ds ÖMzekapool;\sa a Grid\".e.... \'eztr1Ol'el qo-uenl. ,u okos cimk!ben


~lJ,lunk qy choo:se I)1~ Sou~ (Adalfords kl\";1b~ ) neW febdalOl. amelynek
1en)i16 hsúja az okblon 1ev6 a<btf~vettrl6k.,.. ~rt:dnul.Z:l \'~bsszuk kl Innen
azt az adatfomis-vczniÖl, a~ly;knek a tanalmit meg szeretnénk jeleníteni a rlcsné-
zetben, és a v~!a>;Ztás .'égrclt:ljtása ul.ln nyomban frusol ;5 a GridVit.'W mez&zerkcZCle,
hogy n1kröz.ze a kiválasztott ad:llroms oszIop:lil,

V~Ia5SZ\lk mo& az SqID:uaSourcel vezl:rl6l a GridV'JeW aclotfon:isak<'nt _ a tervez6 nézet·


ben miris m\.'sjdennek aZ SqID:ltaSourcel jjJtaJ visszaacIolI 05ZI0P0k (Ihd a 15.], ábrát) .

........
• "_a
- ... ._----_--. ...
"

..
.-
'.. - - -
\

--, ..
~
~

,
.~~
, .....
.---
, ~~
,
~
"
_. _. I L!L

'- --
15.3.6In
ti Gridi 'It!u, Ie::b1óh6z adalforrroloi'm .. z Sq/Dauú(mru 1 • ..,zh1ól knpc.rvllllll

Ha az adatfonás kiválasztásakor csak il ries melÓtejlécei váltoll'lak meg ICotumnO,


CoIumn1 é$ Column2-röl Dalaboond CoIO, Oatabound Coll és Databound toI2·ra),
kattintsunk, Relresh Schama (Sltma frissítástt) hiYiIIkozáslll az okos clmkébeo.
Ez frisslti a GndView megielellllsát, és lámat6vá taszi az adatfooás·yezérkj által
visszaadott oszIopokaL

....... '-""'" - •
.-
___ 1--
.~ ~,~ ~ ,- e
..... .-...,. .....".-

-- "-.,,....,_... .
....
y,~-

,, o. ... y . . _ . _ .... _ ,...,.....


"'"
.. ><_'v.-,1<II....,.,.
,• ....""-
~
,"".....
...... """,_,m
'0_ ,..'

15.4.6bra
ti BOOI« lábk. lIIr1tJlm .. "KI' ilSP.Nf.T o/Jak", "'<'gjclc>,íl''''
15. n · Adatok ~ IWIbn ~ 1349
Gl1uuLilunk - n~ m.lr ,"Jn egy ASP.NIT oldalunk, amely megjeleníti az SqlDataSouTCl'1
által v~greha~OIt lek~rdezés eredrnén}'tt! Sz~njunk cl <'SY pET«.'I., és ~zzil k meg
az ASP.r'l,'ET oldalt a böngész6nkben is Ca!Jebug menü SUn Wimoul Debugging ponl_
j.ávaJ). Eg}' rnCSOl: keU Ijtnunk. amelynek SOI1Ii a Book .. t'ibla öl köny\'tt mUlatjik
05A. ábra).

Ha az előtt töltjük be az ASP.NEl oldalt, miel6tt meghatáromáok a GlidVlIIW adat-


forrásá!, csak egy ures ol!!ah fogunk látni, és ugyaoozt tapasztaljuk ekkor IS, lia
I GridView-ooz u;yan holllikapcsoltur1/!: egy adatloms·yozérl6t, tie az nem
ad vissza egyetlen rekordot sem !J>éIdáuI mert ft lekérdezett táblának nincsenek
r&kardjai. vagy meft It WHERE záradék mindet kWrje).
A GridView vezé!16 teM! csak akkor hOlIoltre rácsot, ha hozzákapcsolllri
egy ildatfomis·yezérló!, és az adatlooiH'ezM6 le\j8lább egy rekordot visszaad.

A 15A. oibr.1n 11tható kimenet rnessze \'an az ide.11i51ól. ('..wnyák a betúk, nincsenek
színek, az oszlopok aUb:ln a sorrendben ~Jennck meg, allog}' az ad:ufoms-\'czérl6
\,;SlI7.a3di> azokat. 6 cell.szinter fOf1ll!iÚ51 St.'Il1 alblmaZlunk, (A t.a"cReadOn én~kétoen
I*ldáuJ feleslcge5 az időpont. a price oszlopOOn pedig nem szerepel a pémnem jele,
és II szolclsos k~ tizedesicg}' helyett négyet jelenít megJ Emiatt lllOI'I ne agg6diunk;
a rncsn{,ze1 lesueszab:1s:l! is t.!ilgyalju k a f,*ze1 kés6bbi részében.

Egyelőre o;.~k foo-~hük meg az adatol!: ASP,I\'ET okblon v:l16 megJClenítésének meTlClé1:.
Az ds61épés az awúorrls-vczér16 hozzáadisa, amely kioh'll5Sa a mcgfcld6 adathalmall.
Ezt követi a webes ~datvezM6 felWtele. és annak okos dmkéja>en a haszn:\land6 ~dat·
romis kl\~bszW;a . Nr ebben ~ részben a GridView "ezlorl6t t:lrgpltuk. aZ adatfornís-
"ezérl6ket a többi wdle:; adatvezétióvd is ugpnigy köth..... jük össze.

Adatok megjelenftése a GridView vemrlcl sogltségóvel


Amikor adatQk:lt jcknítünk mcg egy webold.,!on, gyakran minden rekordot látni
szeretnénk esy 3do([ lek~rdezl'Sb6l. A lckt'rdez61ehet sWikus, amilyen a SELECT •
fROM [Bookal, vagy dinamikus. a fdhaszn§16 jltal megadott adalokoo alapuló
szúr6kif,*z6ekkel Ha minden ere<lm"nyt egy>olcrre szeretnénk 1ll<.'gJClcníteni.
a Ickércleres típusától lUggcdenu! célSttf1J a GridView \~u:,rteSt ig~nybe venniInk.

Az adaúorrl s-vczM6 által visszaadott rckordokon ki\-'Űl a GridView alapértelmcres


szerint <'SY !"j/{>csort;s megjelenít, anJelyben a nJegjelenített mez6k neve látll:lt6.
AI:op:lllajXl1oon ~ Grid\'iew 3J: adaúorrls-'"eJ:érlo; minden osUop:lho? t:trsít egy-.egy
mcJ:6t, de eZ. ahogy hamarosan I~tni fogjuk, mcg\-:i1t0(l3th:uó,

Ebben 3 leckében rmr láttuk, hogyan 3dhatunk egy Gri<.!View \'CzM6t egy ASPN'E1'
oldalhoz, és hogyan köthetünk h0121 egy adatfOfl':is-vezerll'ít. Mmdü5sze kt:! Il:pésre
\'olt szO~g ;
l. Egy awúomls-vezérl61 adtunk az olcblhoz, és 6gy állilotluk be. hogy kiolvassa
a mf:8ic1~nílenl kív:im aWlOk':lI.
2. Egy GridVlew \·~7.l-rl6t is fe]"euünk n oIdalrJ. és 610' ~l1ílotluk be, hogy az első'
ll-péIben az oldalhoz adott adatfomis·vezér\6b6l "egye n aWtokat.

A fenti kél egrszenllépés eredml-n~'t: egy ol)':m ASP.NIT okL11. amely a kiolvasott
adal0bt egy dcslxm ;elenftl meg.

A GridV-,ow k6dja
Amikor a Grid\r.ew \'~z{'fl<'il az ASI>.NET oIdaJhoz adtuk , v(-gig t('f'\'ez6 nl:Z<.'1ben dolgoz-
tunk, de a löbbi webes vezi'rlóhöz ~n a Grid\T"",' il; bclUíth3t6 dd<l:,r.uiv
módon, a forr:b nl:zeotben. (lgu, a [)e5ign nézet eszközei jó sok 8"'1".,\",,61 kimelhetnek
meg nlÍnket.) A 15.2. ~bt:ín l:ilh.:muk. hogy:m fest a t"."cUi né?et kö.wetlenill a GrielV"",'
vezérl6 hozzáadás! ut!in. A forr:iW:l bekeriil6 kód igen tömör.
<asp,ClúdView Io.."GddViewl" runat "S"rvH'>
<'up'GrldVi ..... >

MIután azonbom bdJJi11Uk II dcs adaÚorr.'i~1 az 01<<>:1 rimkc segí~cl. a kód fcltüv6-
dlk. A IS.1. !X:ldában J~lhaljuk. mi lesz bel6le. amikor a Gnd\TlCW-hoz kapcsoljuk
al Sqlo-~tlSource l ,'czi'rl6t. A bcillitjs után az oJcbh a lervez6 nl-z.etben a IS.j. ~l.lra
mutlt)'l.

l, <asp,GridView Io. "GridViewl " runatc " ~rver"


AutoGener.teCo lumna ." Y.lae" o.t.Key~8' "SookIO"
2, o.taSoutcel~"SqlO&taSourcel">
J, <ColWIDB>
4, <a8p,lIOundFleld O&taFleld- "tsooklD" !!eaderText. "500ktO"
_ InaertVi.lble1'Fal •• " ~ .... OCInly>"TnJ. '
5, SOrtExpte•• ion."aookIO' I>
6, <aap,BoundField DataF,eld,'Titl@" HeaderText."Titl@ "
• Sort~xpresBion""Title" I>
7, <aap'SOunc!Fleld PataFleld="Author" Head@rT~xt= " Author"
_ SOrtExpre•• ion. "Au t hor" I~
8: <aup,BoundFleld DatoFIeid "YeorPubliohed"
_ !!@.derText."YearPubll.hed' SortExpre•• ion,"YearPubllshed" I>
9, <o8p,BoundField oatofleld="Prlce' !!eoderText."Prlc~ "
_ SortExpr"ssion""Pric@" />
IQ, <asp,BoundFleld DataFleldo"La8tReadOn"
_ H@~d~rTe ~ t1"LaBt~eadOn" SortExpre.alon_'LaBtR.~dOn' I>
ll: <a61l' BoIlnc!Fleld DataFleld, "PageCount" HeaderTexto "P"l1eCount"
_ SortExpt""don."Pag~ount· I>
U, <'col"'..-..I>
lJ, <la.p:ClridVlew>
15. 6n' .fOdIIG: 35'

• "'utoGenerateColwnn~ - f,);" tubjdons:ig ~d,.. mcg. hogy ~ Grid\~oew ~ mez6it


II.Z ~d:ltfornh ~wht ml h:uárou:uk meg" "C,'lwnna:>
0I<1Jop:ura alapoua. vagy
elernben. lü n Aut""enenteColwnna ~ "Fal .. " Ildllit:is ""dn Í!n.én}1lt'n.
~ mez6k a «:olu","a:> elemben megh.>.~roWt1 OIIz.lopokb61 jönnd. I~
• o.UKey_. - Ez ~ tul;r.pdonsig annak u O6Z\oprI;I.k l'..gy :uoknak u O$UO-
poknak) a ne"!'Cl.luut0U3 meg, amel}'ik t'8)'t:di\cg azon<)6Ítp a Gn.J\',ew-hm
bpoolt.'iOrOi<,;.ot ALL~dmezk nef'ifll a a:t di6dleges kuk$ oWop. Az okos
címke képes ~I"'pjt:..\i az lKbú~\'ez~r16 eb6dICS"" IruJcsat. i-lI annak
mcgfelel6en ~Ilitp be ezt ~ tulafdoos;igol
• DataSourcelD - E:t a tulajdonsig ~ GridV,c" adatforri$,,·ere~n.:k
~wnosit~t ~dja meg.

A GmMew mez6it (4-11 iIOr) rnegh;o.tirow <c, l1,U111l8 .. dem" l sorban ke:w&hk
MlI'I(ien .. aop:BoundFiel,h elem egy-egy mez6l jdkq,e:t a ~n Ahogy a IS , l pél,
d:ilun Uth:u6. a rXsNnllél mez6 t:lUlható. t'g}'-egy mmden osrlop 5Z01ndra. alTllt
n atbÚ0fT2.s..\"elérl6 \~ \I,nder! <"sp, Boundf teld,. elem több ruU,duns;ISlPI 15
rendelkezik. amelyek töhbek kölbU a I11C8I"lerutcnd6 awtok:n unalm:u.6 ad:It~l'.I5-
ostkop neo.c!1 (Dottarielcl). ,lIet"e n oszlop fejl<!dben k,i,.dndó 5Wveget (H"acler"l\eICt)
IlOIwrozuk meg. t::bb"fl az elemben OS:tIopszirnO formj'cl~1 ;,úomtációk i~ lehetnek.
amint aZl ha!naros;ln Utol fogjuk

A l S I pflw célj;.o. hogy li\"iLigílSlInk a Dt.."igrt '*ZeI t'16nrcíre a \'isual Web t)(>o..('-
Iopcfbcn_ A tCn·t'ző nézet nélkfil "Grid\~...... fenu k6dj;.i1 ~j;.ot katDes kellmt' beír-
nunk. a lervu15 néZ<'lJ1ek b a end""",,' okos dmk<.,.:nek k6nOnhel6t'n aronb:ln
a fqlC<;Zl6kómrezet aUIOfIUukusan el6:i.llitp sz.:Omunkra a kódo!, aminl megadjuk
a Gnd\1CW awúom1s-"t'Ur1~

AfeJ8ll!t kH6bbi rHlébefl mtQtanuljuk, hogyan szabhalJllk testre. GridV"_


nztétikai tulaldondgllit , ~ néltltben, NIl teitdjük azonban. hogy minde"
módosítástllYfotlhelllllk .Iomísban is. hIIllUkHges. mert lTIIIode!llIIk, imrI
, tefVez6 lI6Zetben t~ 'O'If1 rnegfelel6je II 6pptn $lIIIbsztett Y8ZérI6
lorriskódj6bln. A t6d tOZYetlen rn6dosftisa pwm lWfll O/YIn llY!Wl " BO'(I.lIr1l.

A GridVNIW leképemtt kódja


Am,kor egy ASP.J>.;I:oT olda lt Ick~mek egy bÖngbWn k~ztOI , az oldal ~rrML-1Í! ~I~kul.
1:o1the:t al 5Zii~, hogy n oIwlon lt:v6 "...-be.; l'cl.M6k kódját az értelmez(! HTMl-l~
fordits:llt'_ A Grid\',t."'" \"ctérl6b(jlleképe-zbkor egy <tllble~ HTML-eIem jön I~re,
~mclynt'k nunden SOI"d «tn) n adatfOfTis...·e;zérkl egy-egy S<>r.Ínak fdd meg.. celLS,
«td:» pcdtg a mez6knek (oWopokn:IkJ, A fqlk oszlopaiból úblizaúCllb::ck «tru.)
jOnnt'k Iéire,
352 1111_lisz • M!rIka adMb'zjsokkal

A C.ridView HTML-kódját ~ 15.2. péld::ib:mI1tlutjuk. Amik<lr 3 böng~.$ZÓ meg\<:l.pja


e7.1 a IITMI .. k6dot. ~ 15A :ibr.in Ijthat6 kimenetet ~lHt;a e16.
15.2. p6lda JI GrldlkUl ,~",ti'rló<l<Ibk> Imn-cl< ...",jJ ~'"
t, <t .. bl~ cellapacing-m"O- rulesK -" It' bord"rA'l' id"GridVi~l'
_ atyle _ 'bord .. r-collap ... , co ll"p.." ",.
2, <tn
), <th 8copa.'col'>BookID<lth><th 8c~"col'~Title<lth><th
_ acop.h"cOl- ~AUthor</th,.<th 8<:ope.·<:ol·~Y .... rPubl hhed</thHth
_ .. cope~""ol - ,.Pri"<></th><th scope~·cOl">La8tRe .. dOn</th><th
_ 8c0p".·co1'>Pa9@Count<fth>
4, <ftn<tr~
5, <td>I</td><td>ViBual Studio !\ackS<ltd><td>J1UM8 Avery<ltd>
_ <td>~005</td><t<b' •. '.I500</td><td>~nb1lp,</td><td,.'18</td>

7, <td>:2</td,.<ubCreat" '(our own web.it<l</td><td>Scott


_ lIitch"ll </td><tI1>2 QQ~</td><td>19 . '.19 OO</td>
_ <td>8/1/2005 12,00,00 AII<ltd,.<td>195</td>
8, "Itr>-<tn
9, <t<b)<ltd><td:.Th" /I'lJ.Iober</td><td,.AI"x Ber""80n<lt",.
_ <td,.2001</tdHtd,.24. 9500<ltd><td>11/1414Q05
_ 12,00,00 1IM</tdHtd>214<ltd>
10, <Itn<tn
ll, <td>4<ltd><td>Th .. C.. tch", ln thI) Rye<ftd><tcl>J_D. Salin!l .. r</td~
_ <td>1991</td~<td,.6_9500</td><td~6/1212004
.. l:,l,OO,OO AII~/td><td~2J4<ltd>
12, </tn<tn
ll, <td>5<ltd><td>Pight Clulx/tdHtd>Chuck Psl .. hniuk</td>
_ <Id> t999< I tdHtd>16 . 9500< ItdHtd,.I<nbsp; <f td Htd>187 < / td,.
14, <ltr>
1~, </t .. ble>

A GridView testreszabása
A 15.4 :ibr.in látOll ries ncm túl tetszet&.. t'incst.'flek bffine színek, ~ rendszer ~Iapl'r­
lelme.wtl I::>ellllípusll használja, oIy~n mez6ket is megtelenil, amelyek a felhasZIdI6nak
Jll'm igaz~n érdekesek (péld1íul ~ Book lll-I), és a d1ítum-, ,Iletve pénzénékek SCm
form1zouak, riiad1su1 mtnden tntk balra igazodik, él ugyanúgy ntz ki. Szebb lenne,
ha mondjuk ~ P"veCount oszlop ért(:kdl jobbrJ ignit:ln~nk . a könyv eimét pedig d6b
betavel emelnénk kl. Az scm az igazi. hogy a cl", fcjltdl><'n lev6 mez6n"""k az adil-
b~z.i.s OS2.Iopamak nev<'t tükrözik (BoQkID, V.... rPubl i 5hed, l.!IatR/',,,dOn, pageCount
stb.), En,*1 v:ll6:színiIleg .oIvashat6bb" neveket szeretnénk, ptld1íul ilyen ... k<.->!;
Az0f106it6. Ki~d~$ t ....... Ut<lljáro olv:ls"'~. Old:ilsz:\m.

A lestreSU[)jS 3 GridV_ vezér16 t'St'Iében egys~. A ve~r16 megjelenl'se


több ~zinlen is ~zemtlyre ~ubha{ó,
15. ... • AdItd; .... I ti l .".,.. .......I(.u" l 353

• A nics uimjén _ Al. ezen a llIntcn \-égrelujlott \,;i.l!oztatások a ries ml,ule"


~dat:ir:a .......·én~k lesmek.
• .l1,nez6k uinljl.'n - Eun a S};,nten a ries e~ nl('l.6!t szabhat juk 1<.'Sllt'.
• A soruk szimpI - Ezen J szJOtcn a kOlönböZő tlpu$Íl5Of<)kat r~zhalluk
A p;1ros és p:irdwn ~nak példáu! c!t6"6 háut'rszlnt adhatunk. ~ fcjl&
~b:ln pedig nagyOOb befűkct alk:llJlUzhalUnk

A fenli szinleknek .-no:gfelel6 bdUiWok:u AUlO Fonnal. dkr..., a fiekb ~rbeSZOO..


abbkokban adruu6k rmog. '"lIbm,nt a PTopenICS abbklxoIn. :>;tuük is meg, Oog)"lIn
w.bh:oljuk testre a Grid\-IC"I\ kUlönhöző llIntlemek tnegJelenbét az egyes eszközök
seg,L.tI!':"I"eI!

F0rmáz6s 8 properties ablakból


A ric::o.wnnl és :!IOfSZln11l f()f1t1jús kör.ctlemlla ~ ablakból ~Uittut6 be
K:luuu5l.tnk a Gnd\"1C'li \-eúriOre a ten'ez<! ~lCIben. hng)' betöltsük a ,·ex..'ri(IIUIaj-
donsJ.gall. a Pruperues ablakb:l. AZ Appe:I.r:an«' rtszben (11.<;0;1 a 15.5. mrit) riC55Z1nttJ
lulapdons:l.gokal adhatunk rmog

....... _... __ .- ...


ol • • .... ;;0
-- ...
----
.---
'-- c _

---
----
_.-
••
.-
- ---
••
••

--
•.- ••

-_....-_..
= •
\5.5. an
A Je/p nfo.1h.tr ~.ud, _,...mMsn lU Appt.wro".", oo!u 'u/aj<JotlsdlJalt"UJ
A 15.1. t~bI~Z3twn ezeket a tulajd0ru4golm sorohuk fd.rövid leír.isukkal eg)'elemben.
Ne feledjük, hog)' ezek a beálliWok:l. teljes clcs formázisár:l 11lI~s.sal v:lnnak. vagyis ha
a h.1u!l"5"t.lrU (&o.ckColor tuLai<;lonsl.g) zöldre (Gr .... n) :1llitjuk, a r.ics minden sor-J €!s
mez6je zőld MU&s>:innek fog megjelenni.

S1íl~apot ~ornk alk:llmazni a r.ksr:l..


nrtptyDatllTe)(t Az! adja meg, hogy ~zcretntnk-e v:llamil)"en lIZCfW\et kilraml
abban n esetben. ha nincsenek nK'gjelenítheu'i rekordok.
Emltkezzünk vissz:•. hOgy.l GridView Ick<"pe~sl're c5:1k akkor
kenJl sor, ha az ad:<tforr.\5-vezérll'.i viMZ3ad rekordokat.
Font A dcs be1l1tipus-beáUílls:1Il adj:! meg. A Font fUlaj<kmslg
rl!sztulajdon:;;igait a g. I. dbláz.atban tal~ljuk.
Forecolor A nks szővegslinét adja meg.
GridLinell A r.lcs cellJel~laS7.16 vonalainak megjelC'llését ha~TOU:l meg
A lehetséges Mtkek, None (nincs). Venk/Il (oak fiigg6leges),
Horizont&l (csak vízszintes) ts Both (nur>dkeu6; ez aZ alapér-
telmezés).
ShowFooter Egy logikai értl'ket határoz meg, amely all jelzi, hogy meg
kell-e jeleniteni l.iblkel. A2.l'rtl'ke alap.1llapotban Fill Be.
Show!!e4der Egy logikai I'rtl'ket határoz meg, amely aZl jelzi. hogy meg
kell-e jeleniteni fejlik:e!. A2.l'rtéke alap.1llafx,dxIO True.

Pr6Wljunk ki n<"h1nyal a fenti me8l"lcnftki tulajdonságok közül! A 15.5. ~br.ln l~t­


haljuk, hogyan fes! a \rl!olJ<l1 Web Devdoper, miután be111ítOttunk p.1r tulajdonságOt.
A m6dosll~sok köw..·n figyeljük. hogyan ~I!ozik a r1a; megjelenéoe a terveUl
ni'zetben, hogy :l.utom.:nikus:m tilkrözze az üj form.1:clsi beámWok~t /I:n. is lJithaljuk,
hogy az AppearanC1' rhz tulajdonsig:linak be:\.llit:l~ a le/j<~ rácsra hathsal \':ln.

A Properties ~blakoon ol)':'n tula~gok:l\ is w.l~lunk, amelyekkel sorszinlŰ forncil.á.st


vl'gezhetilnk. Ezeke! a lulajdoru:lgokJt a l'ropeft.oes 3b1ak Sl}'les ~ tartalmazZ3. b;
a 15.2. ~bl~z.atb,m ~ltuk fel6ket.
nd: meg. ha;lZ adl.úon'b-\-ezMo'S nem;KI \'Í55Z:.l rekordobt,
de bdllilouuk az App~:lJa~ rész -,tyDataText
lubJdon..ag11.
FooterStyl .. A Ubl~ iSlílu~t szabilyozu.
He/I(l,erStyle A feilb:$Qr stílus'il :>ub4lyoWl
Pag .. rStyle A GM'~' bpom vczérl6inek 5líll~1 adj:!. meg. A b[lOZh:l·

meg,. am
módunkb:m k~émi , hogy nukbu tehetjilk a Grid\'iew
99' iIO!il .ki,elöIuP

A fenli tulajdoruágok mlndegy1ke több résztulajdonSJggal_ BaekColor. ForeColor.


Font, C_acl",u. Horizont",}Al ililn Slb. - is bir. Áll'lSUk !TIOSI be a RowStyh,
u Alter""tlngRcntStyle ~ a H.....wrStyle ruLaldoruJgok ,>fhin)' részruLa;doos:1pl!
A l'i<3 f~fI2k rnfvbsk1 ... uUn \"lIbmi o/y;lsnul ~Iharunk. mint a 1~.6. ;Wnn.

---

_ c
------
.~

,
'-
-. ".,. •
15.1. "
A ~ 1ipWJl.Rln)/l...... ' 't ~5fi1um,.b~
Eddig a teljes cicml'zet. iUetlle:1 sorok sz.imjl'n elvi'gzeu forrn:lz:íssal ismerkedtGnk meg.
AJ: egyetlen, amuúl ml'g nem beszl'lnlnk. a mez6:szinTŰ forrrui.cls. A GridView IICZl'r16
"",Wi a Propenie:s ablakban nem szerkesnll<."!6k, eI>elyen a vererlő ok05 címkéjének
!'.dlt CoIumns (Mezők S7.(!rkesné::se) hjv~lkoús:i"J kdl buintanunk. amely" Fiel<b
(Mez6k) pjrbez&lablakOl jeleniti n>eg (U5d a 15.7. :\br.lt).

,.... ,.
--' • --
I.i:= •
, o_ '"
" ,_
- 'o

J-
o

. . u_---
• '_0

--
.. <il' ... o

- -
. . .' d ......

...
<a ._

.~ •
:iI _ _
>- - 0-

,~- "' __"_d"""


o 15.1. 111n
, .", . . "' • • 001 .. 0\; JI nll:s,""'<~ oszlo(xJmaJt

... 1(.-1 lC$ln'ttah<1<t.o a Flt>Ids


/Xl rbtuétWbI<"lhbtm

A Fields ablak a ries mez6il a baJ alsó sarokban sorolja fel. Ha ebb6l a li$t:\b61 ki'~­
lasztunk eg)' mezőt, annak lulatdonsigai betöltődnek a jobb oldali lisclba. Az ablak b:ll
fel56 r<:-:súI>en a GridVi~ \'ezl'rl6höz adhalö nlCZŐlipu.'IOk I!ilhal6k. Jelenleg a rács-
n(:ote\ mInden me«lje 8o,mdFil:Í<llipusú. Ü a mcz6dpus egy5zenJen annyill""7., hog)'
megJeleníti a megfelelő adalfom1.s·vezérl6 egy adotl oszlop;'inak é"ék~. M;is mező­
tipusok ennél többre is kl'pcst:k. A Hr!:lerLinkField mezők ",,1<Uu1 miOOen !iOfb;an egy
hiperhi~4tkO~S! jcleníteoek n>l."8. a BUllonField mezők pedig egy~g)' gombol..
A meZŐIipusok közül nl'h:lnnyal részletesebben i.~ megismerl<edünk:1 16. fejezetben.

A ~zelben jel""Jeg ul!ilhaw mezók listipnak rne-gtekintbt: meUett a St-Iected Flclds


(KijelölI mez6k) lisCioon a= is lehet~ kapunk, hog)' eg)'e$ mez6kt1. elt~"oIítsunk,
vagy ~ mez6ket ilrendezziik a ~cl:>an. Túnle5SÜk el most példlul ~ BookID ",,,n'ir.
a r:k:;OéZetb6I. mj,~ em: az infonnidóro a l:ltogat6krnlk nincs SDlkségiik. Ahhoz. hogy
az említett mez6t el~i,"olí!SUk a r.icsb6l, kattintsunk a BookID nlCz6cJemru a baj al0;6
so.rokban 1ev6listlban, nujd bttinlSUnk a törl6 íkonjira (vörös X). A kÖvClk<:.'ZŐ rn6do-
silis legyen az, hogy:1 Pag-..count nlI'"z(j az Author """ZŐ utin idenjen mt'g: ehhez
kaltintsunk a Pag"':;:ount n,....LÓrC. majd kal1inlgassunk a felfe~ nrutaw nyílra addig. anúg
a Pagecount nem lesz a hamladik IllCZŐ a Jisl!ioon.
I!gy ~do(t mez6 teslreu;ab.b;'ihoz ,dÚl el65zör mindig kl kell jelölnOnk ~ mez61
~ li5tábóln, eud Iöltjük be ~ ,ub~8"i' ~ pirbesUdólbbk jobb okbli hstljiból
A legforuosabb mez6szIOnJ tul~tdorWgobl ~ l'!d_ tibllZólwnllthollruk

11.1 tU"· A _ . ., .~_. . .

""..
A meá'I r,jIc'cébc .. e:enikonclő 5XŐ''eget hatjrozu 1TIe!t,
A mez6 l.'I'l&emek omWi ci , adp 1nl..1I.
Egy Iog,bi tntket Iu.Liroz meg, ~mely aa jel~, !>ogy a r-:ócshoz
kapaiOlás cl6n I n101t k6dolásUvl kcll-e ~lakr\:lnl ~Z <:ncket
(az alapmelmezi::f. a True). A I-f'nlt k6dol1s ja"ml, lTlCft
dl..",oIilja a <acr ipt > ~ mis oIpn I mlL-eIemeket. anlC'lyek
nem bizt.n$. hogy mt.'gf~ 1ek(-pevld6k ~ ricslwl. AI~
lIzonban.!>ogy mt.1kOdjOO.,

~ tubjdonsággal n...~ mis--mis súlust :i.Uithollunk be


~ feílk'ekben.
A mt.'Z<'5 5OI'lI.inak st~us:it 11l1tj:1. be, 1b ezt ,. tul:l;donsJ8O'
po!'kUul ~ '1"1 tI" nk'z6 cse!1'ben llhllUk be. elérhetjük, hogy
minden könyv ci'lle dölt befúvcl jelenjen meg.

Viltozu..",-,k 1I'IOI'Il" Pa\l",~,,>I'''"t. YearPubl i sh.ed es r."atR. .dOn mezők H.....d .. rt'l!!xt
tul:ljdorlúg;it Pa" .. a, Publl"hed éri r."at Rea('l mékre. ma!d bon~k k, a TilOl. mt.'ző
ttesStyh lubtdons;ig;it, ~ keressük meg a Font tu]~tdons:igot, Ezt Ili bOfltwk ki. ts
~lli~uk az It/llle résaulajdonsigOl Tru" é-nékre.

Adjunk megfeld6bb f~zl~ a Price éri r."nReadu" mezők éntkeihez i5, Ahho~
~'eg)' mez6c. I'orm.i:du.ssunk. két IUbJdons;lgot kell be-.1llil.munk;,. Ht.U:neod ..
tulajdoru.;ign;lk FoOl ...... n;ok kell lennie. ,. o.taF<><1DIItStr1ng-ben pedig a kí\'~nl
fomdhol szilkségesformtlző ktlmk,..,ftlllcOI ({O : [onnoftumlelró} ) kell megadnunk.
A fOl"l1l;Ítumleiró hat:irQUól meg, hogy;on kell f~zni n a(\;olok::u, Az egy<'$ awttípu-
5okhol külOnbOzó beépíletl r~tumlclrók ~1lnaJt r=delkelbre;;o példilll
a pénztndoekhez ,-aló.;o ct pe<.bg,. wtum· fs ido5ponltn~kek:b61 CS:I.k cUrumot állit 0:16,
A formátuml~rók teljes 1~;i",1 fl"IC8UüllUk;o \'SU;O] ~"eb I)e.,.clope!- sUSÓl'Íban
(a keraend6 kift-jezés: Jomutung"),

HJ:Ill~. hogy a p~ice mezl5bm 1ev6~mok ptnzértékek Ieg)'eodt.


III !.a.. t_clOn mez6ben pedlg o:ok,. d1lumolr. jelenjenek meg, ~lIítsuk nundkét mez/!
RtalEn,-, de rullll~~t Fal ...."'. matd;o o.taFonaatllt ring IUb)don~got
,. Pri :. n~z6 esetl'ben 10,el, a r."atlleadOn mező C$eI~n ped,g 10,('11 tnékre
A1. OK gomb,..! kanintva z~rjuk be ~ Fields párbo=.("(\ahlakot. Amikor viSS1.a1éTűnk
~ tervezőnézetbe, ~ r.ksnézct fIÚr tOkrözi a m6d0silásobt a BookIP mezl'i eltúm.
~ Pages mezó az I\utho..- mezó utin köw.'1kez,k, 3 köny'.. dmek dőI1 bellh'el jelennek
meg. ~ így tovább. A fenti fllC7.6sz!fltÚ fomú;dsok v~grellllJtha uI~n a r:1csn(;zet
valahogy úgy keU, hogy fessen az [ntcm.::1. I!xplorcrben, minl:< J'HI, ~brán,

........ -_ ... •

·.... ....,""""
E".. ........... - -- ,,-
_ .....,.",
""', '" ....
.,. 'c
.".,,,,,
~-
..
'", C><r_ '" .... .,..
.~., ".
" _...
",
",.

-
"i..
, .... u /H/'OO,
..,,,.,..' ' .. ,onooo
15.8. jin

- " mcs"é2cct a ~
IC5IIl$:<<1bris<o ",6"

Formázás az Auto Format p6rbeszédablakban


A r;iamézet, a soruk k a mez6lo; fomúzhín \'égreha~OII m6d0siuisok biwny:\ra cliírul-
!:Ik, hogy nem 61 vagyok az. akit egy ~datrács fOl1llllzási\'aJ ~mes lenne megbízni.
Körülbelül annyi mű\'{;szi hajt.un szorult beMm, mint egy rtpIioo. 5zereocsl're azonb:.on
a Grid\r""" ve7.6i6re automatikus fOl1llllziís is alkalmazh:uó, n oko:< dmkében kattint·
sunk az Au\<) Form:It hiv:uko7.ásrn, hogy megjl'k"Ilitsilk az 3ZOOOS OC\11 pá~bLIkot
(15.9. iítJra l. Ebben u ~blakOOn ktsz srilusok kö:tiil vil2S;,m:u unk,

_.-
-,---_.. - •

--
Boo~1O T,U. Aulhor

'--
-~
_.-
_._.
--
--
_ ..... r

-
lia ki"~lasztunk egy autOllllluku5 forrná:ó.si stilusl. al. Appe:mmce és 3 Style< rész
tulajdons:\g:ll közUl több is meg,,~ho1.ik, hogy a <:ies forrniz.1sa megfelel;en a kiv:ínsig~­
mkrutk, l'ersze ha jó u izl~lnk, a fomúci ..i bclllíulsokat ~dh.atjuk magunk is, de
azoknak, akiknek hozúm hasonlóan nincs én(!kOk n i1yesmilJ<e'l:, hamar j6 barliljává
v:\lhat az AUIO Formai abLIk.
15. 6B • Adatot. megjIIIn/t6M • webelldItwzWt6kbI l 359

Egyszerre egy rekord megjelenftése


a DetailsView vezérlő segftségével
A GridVlew eg}'szerre megjeleníti a hozzá kapc;oll adalfonás-"e?,&l6 Ö$.SZes rekordpI.
El6Cordulhat azonban. hogy egyszerre CSlk egy rekOf'do( szcrelnénk 11mi - ilyenkor
iöI>f'I jól a OetailsView vezérl6. A Grid\7e",·hm hasonlóan ezt a vezérl61 is egy aootfor-
rns'\l:zér!6höz kell kÖlnOnk. Ez a szok~sos módon történik, hÚ12unk egy I)etai!sViE:'l\'
\'ez~rl6I az ad:!tforr.í5-\'czl:rlŐI. t:malmaz6 01001"" majd 'lZ ok~ dmk~n ke=ztiil
kapcsolluk össze a ken6t. Az aootforr:1s·\'ezérl6 hozzárendelb;e ut!in a Oetails\r",,,,
egy filggg61eges lisclban megmutalja U aOOlfOf1':áol oszlop;lil.

15merkedJonk mcg közelebbr6l a Oetails"iew \'ezérl6\'eL és hozzunk létre egy új


ASP.l\ liT okbh Detal.l ..Vi ....... aspx néven. Ahogy az el6z6 Óráb.:m teltük, ~djunk ehhez
az okIalhoz is egy SqID:It:ISOurce \..,z&l6l. és ~JliI$Uk be úgy, hogy kiol""ssa a~ &;.szcs
rekordot 6; oszlopo! a IlookB t!ibL1b61, Ez ul~n adjunk egy Oetails\1E:'1\' '·ezérlŐl.
az oldalhoz. és kapcsoljuk hozzá az SqIDataSOurre vezérlŐI.. Ezekm'k a lépéseknek
~z el\'!-gzb;e ut~n a képemr6nknek úgy keH kinéznie, mim a lS.IO. ~br:ln.

... ..~
.....
--
, -
-- .-
- '-
.- .
, « "' u ...
~
15. HI. 6bra
Az o/dol OXI' D"",j!sl "icw

-" 1"
- .nNM ~ és mmall
<';10' """tft;mti5.,~t'J1:

~"Iá"

mcg az oIdah a böngész6nkben is a Dcbug mem) Start \\.í thout Dcbugging


r-;"~zzük
parancdl \-:iI:lSZI\'3 A l S.ll. ::íbrin ~th':lIjuk, hogyan fcsI a Deta.i l sVi_. upx
u Internet ~plorerbcn . figyeljük meg, hogy az SqllhtaSOurce ~hal vWzaadou elso'i
rekord jelenik meg.

bzrevchetlük, hogy a Detail.View a13plllapo(ban nem ad l11ódO( ~rr... hogy megle-


kintsiik az adatforrás kővetkez<5 rekord~l, vagyis egyszerre csak egy rekordot I~tunk.
de nem tudunk a kŐ'.. etkez6 rekord", It:pni. Ahho?,. hogy.,zt meglehcssü k, be kell
kapcsolnunk az En .. ble Paging (LIpons cngedét~..,zése) je]ö\6n(:gyzetet a Det;.ils\r..,w
okos cimkéfébm Ezzel t'1I)' Iopozó wnadunk ~ Dcuils\/CVo' ~Ij:lhol. amdy az ~(búor·
ru rekordja; kOzötti mo~8~§IlOl tanaluuz \~1i."1I6I<d A lapozó relülct Jlaptnelmeres
5Zerint oIdal>zlimoJO,t<lleni Iehe'lŐ'o-é, l><>gy <'SY ~dotl rekordru ugorluS$lJnk

15.11. 6bn
lU" ~·."",t.1oSIooll
~ rritt:ldJ<*ujj....,

fohu1.1n bekapcsoltuk n f.rublC' Paging rcl~'Ze'Ie'I. nézzük meg iSn*I ~Z ASPr,.U


okbll ~ bOngokz6lx'fl \'együk ~ a részlel~ néZe'! alpn ffiC'gjClen6 öl h;\";lIkoÚSl,
~mdyekkel .. Book. Llbla III rekordj:in~k bónnC'ly.ké1 elé-rhetjOk. I... a megiddó '1.anlÚ
hiv:llkozlisr:I k~lIimunk

A GridV_ is IeheIM lesD il meg,]elenlt.n.ldiitok Iapomil 's rtndezH4:L


Ennek megvaIó$/t.".. I /ejelBI ká6tlOl ~ ~

A lapo2Ó felület testmmbása


A Ik'lJils"Í(,w vezl!riö lapozó $Oru a Propcnles ablakban \C'We:5ubh~IÓ, EI6s1.Ör
k1lurntsunk a vezért6re a !('IVeW nézetbc:n. hogy belöI\5Ük a rula~g:1I1. majd a
Pmpe~ abb.kban görgessOnk a PalPng részl)et. Jn k(>t rulajdonságo! t<tlilunk

• All"",Pa",in{l - Ez a tulaJlionsig ~dp 1nC'g. hOSY WmogaIOl1-e a la~~


(u abJ*nclnlC'Ze'l1 ot;n('k a Fala .. ). H:t bHapo;olJUk az I::n;ible P;.;,ging
~g)'ZCIl:'I az okos cúnkében. a lub~g 6téke '['ru .. lesz.
• Pa!lerSettinq~ - Ez a lulajdons.ig lohb rewubjdons;jgból ~1I. amel)·ekkel
a lapo1.6 sor megj<:lenbét subhalJUk K"Stre. ptlíUul okttlszlimok helye\!
cI6re--h:iIt:l gombokal Chiv:ukozlisokal) kM\ctiink

a p&",USetti"ll8 rulajdondgol, hogy old,.. lsdm·hivJlkoúsok


,,~ltoz:t"·lJk;" rTlC'g
hd)"etl OI},," hn,ukonsok:1I kaPl"nk. :mlC'I)·ekkel u dső, az UloI5ó. a kÓ\"dke:t<'!. illen-e
az eI6W n:kordr~ ufIOOh:olunk. BoIuJk ki 3 tulaj<lons:igcx.6s kere:ssilk lllC'8 anruk Itode
15,6nI • Adatok megj ilmltéle' webeI .......l(Ik kel l 361

rt:;Zlulajdoo~g:\L hl egy len)'116liscit tal:IJunk, amelyben 3bp;llJapolban a Numeric


lehe\6s<'-g V3n \ 'jltozt:ossuk ól bcll!ítá.sl NextPreviousFirstLa&t -ra
ki~bsztV',j,
(Kőve\kc;t6EI6.z6E1$6Uto!só), k fig)'eljilk meg, hogyan vlhozúc meg II részletes nézet
3 \rlSUal Wt:!> Ikvelopcr tcrvcz6 néret&en_ A 15_1 2, :lImin I~!h:uju k. hogyan fesl.
a lapou.atö DetaiLsVicw II böng&z6ben megtekJrm'c,

--
,.
,
~

-
- --
T...-~Z003

' .... ....--


,~

,~OO
,_ ~
m 15.12, j n
......
---- A DetaIJsHro' mml ",ár lámogalja
a lapm:ásl, l!s jelc,dCS a Th,' "'" mlJr,r
dm!1 "'''J'' ada'ai! mmaljo

Alapállapotban a kÖViltk8~, elcW5, alsó ás 1II00só hivatkozások. >, <, « és »


formában ;elenr.et meg (ebben a sorrendben), de ez tets.zás 5l8rint m6dosíthat6
a PagerStyle NextPageText, PreviousPageText, PirstP .. geTex t és
LastPageText tulajdonságain kllfllszta. fgy fontos megjegyzés: ha < vagy >
jelet SZ&retnénk mtgjeleniteni, a k8l'8kt1lf levéden HTML-megfelelőjét - , l t i ás
"It: - kel IuISlIléInunk

A GridVlIW vezér16 is támogatja, Iapozást de ebben általában egy~8 l G-20


rekordot tekintünk meg, IMIm pedig evYet. A GridView lapoz6si Upességei'l~
IuImal'O$8fI rtlslIe(e$ebben is mtgismertedUnk.

A DetailsView megjelenésének testreszabésa


A DebilsView vezérl6 rneg)t'1cn6;e ugy:múgy tcMreszalthatö. nunt" G!idV,ew-;!'. k
ugyanúgy tal.1lunk az egész nézel S2.U1.til'n (>,,~nycs, :l. sorukra ható ~ 3 mezőkre "-rvé..
n}'cs form:lzási luhidonságolmt. A n;;Z/:lSZJmiJ &; sor.;;z;nnl !ubjdoru;..igok:l. Prupenies
ablak Appear"J.n«' és Slyles reszeil>en .1Uílhatók be, míg a mez&7jntiJ tulajdonságokat
:lZ ok06 dmke Edil I'idds h;vatko~n k=ztül érhetjük el, amely - mint ahogy
bizonyira kilal1)tuk -:l. Ftekls pj.Ibcszédabbkot jeleníti meg. A Dt.'UilsVl<.ow-nak is van
automatikus fomli:clsi Idl<-'t6ségc, 3nIdY(,1 ugyanúgy az okos dmk"-bcn érhrtil nk el ,
mint a GridView e,;etében
MIg II form;izá5 l!'IIeIlete a Grid\iew ~ II DebII5\".ew eseta>en lIlO1lO11, II
\'ez&\6 k~
form1zási lul:ajdons1g:11 között v':lnnak kGlOfI~k A DebiIsV~' r*ldául nem ismeri
II .k,Jelölt:lOr" fOgillnclt, ez(," enntilI veztrl6nt1 nem találunk selected~O'o<Style
tulajdons.1got_ Ezen kjVOI , ahogya kö"ctkez(lórioon látni fOSJuk, ~ Dclail,Niew ~d~lok
~datb;izi,;OO .... Ió beiz,ir.1sára is alklllnl:lS, ezén rendelkezik egy In •• nllowStyl. nev\[
lul:a~gglIl

GpkorUskfppen iglIZllSllk igénfeinkh« II DebiI5V_ meg)e~ \~u;Ok el


ugy:mazok:n II m6dcosuJsoka" nun( II Gnd'~oe.o.' ~ében. ls dobjuk fcl Wnekket h
csinosabb betllúpusokk:;al:lo ",-ebokblt A te..l<eSZ;lOOu lkailsView me8/"~
:10 ~ II 1$, n .illnl mucnj:l Megl'i8)-eIlICl"-, hogy ug}':l!U.l';I II me~m"
fonnb~5t 1Ilkalmazcom, mim II GridVoew <:SeI(:I>e'n (a fejl&el: ~tnevencm, II Price
melÓl. az Author mez"- utin ,enem, II price OSJ:lopb.:l.n le\'ő ~clmok:n p('flznemki'm
for-rrdzum, éi igy lová bb),

Amiko.- bÚIftII*. Price ft I l-IoltllHdOn n-..z6 o..t"l'oTWItSlring


~ ne 1.-(t:sük8I, hogy I H' colt::n~"9de tIAjdDO$igOt alse-fl
UI 6hn.ri. k~ • tonn'zts nem ~ • lIlel!5Mn.

...
0- .
""--_ ...
l ,....... _

'-.I
~.,_' ....

.!l!ll ;
'. - ,.

15.13, MA
.'_I~ Il .... ri le< nbrI
~ ...... ! ~ kllu'n" "Y"Jt

A OetllilsViow kódja
Amikor a fqczet koclbbi ~z&en II GridView \'ez&l1'5r61 tanultunk, mcg\'I;c.,g1Ituk
!n1nd II \,ezM.,- fombk6dj'-t II V-lSlliIl web l)eo,<eioper forr.is nézet(,Ix.'fl. mind pedlg
II lekq,eletl I mIL~. amdyet ~ "'~ bp Mmden ~ben> amikor új .....ebes
~..,I doIsozunk. alinlon megnhni mmdka kódot, men igy jobhiIn rnegb1lle1jUk.,
mi áll az 3don \~&k1 h.:merroen az ASP.N"cr okb.lon &. II bo'Ing6!z(Iben.
A Deca,I5\~.e".. k6djJt :uonb.ln ln nem fésOljUk ~t ~be men6o:n; en !lÓT INgunk
is képoc:k ''3IO"Unk ehlg('ml. Egy dolSQ( azonban ki kdl emdnunk::I iJel:I,IsV.ew
Ieképez6;kor egy <tabi., HTMl-eJcmmé alakul. dc enl!cl! ~ houákapcsolt ad:ufOL'1'Ú-
vettrl6 egyes rekordj::lilUk b oszlopainak nem egy....,gy tablizatsor. Wetve t~blh.:ucclla
fdd n>eg. A DetailsV_ -br.Ln lll. acbúord$ oszlopau képvÍ!leh egy-.:gy Llblj~tsor.
a J()f{)Q1 pedig két-k.:.'!. l~bI~zalc:elb; egy lll. oszlop !lC\~. egy pedig al tn~kb>ek
Al. C1'edrnény tetdl egy kHCli5ZIopo::» <tabI.> !ITML-dem. amelyben az adtúomb-
\-eltrl611W,~ lIUJ'IdO.-n "cb,házi.. ~bb~k egy-eg)' sor fdd meg.

A 15, II 1b!in !;ilon Oetail..,\,lew HTMl-k~t a 15-3, pt-I(\jl:un lilhaljuk

l, <tabi .. ~ .. lhpjt.ch'l!l-·O· rul .... · all· bord@,,'l" ld " DE!t&1hVt ... l'
_ 8tyl.~"heillht, ,. Upx,wldth, 12SpJl,border· COll .. ~,coll .. pa",·>

.", <tu
<td~800~ 1I)cftd><td~1<ft,b

.,
0, </tr_tr>

.
<l,bTitl*</td><td>Viaual Stul.llc IlaCJr.U/td>

,", </tr><tr>

, </tu<tr~
<td~ y .... rPubl i ,ho&<!< I td><t,b:2 OV,< I ld>
"
,", </tr><tn
n, <td>Prlc .. <ltd><td~l •• 9500</td>
",
u,
</tu<u>

U, </tr><tr>
15, <1d>P.~eCount<ltd><td>478</td>
<{tr>
</tAhle>

Lapozás és rendezés a GridView segftségével


esJ'elIet, rekordol; jelenil meg ~Z acblfomb-,·e~ér·
A Oet~iI5VICW vezérl(! al~p<ilJ<lpotblLn
J6b6I. Ahhoz, hogy" feUwznjl6 minden rekordot megtdttlllhc::s5m. Es qn·esto.el
\"égigJepkedhc.$5en l'lIilUk, be keUen ;illibnunk a \-e.tbl(k. hogy ~lyezz.e a bpo-
zh! Ez prn;ze igen egyW:n1."O!I; o;ak be kellen bJX$Olnunk.az EnmIe l'a8'118
~ a ,-eúrl6 ok06 dmktjében. m.:.I,d testresubni a bpozó fcloJetet
a Proprrties ablakban . ( Ila ndr nem emIéknilnk pOnLOI!3n, hog)'3n. lapouunk vlS5Z;l
A lapozd felr1/c1 ICSlfl'nl'/:Idsa dmG ~IC~,)

A GridVK-....· vczér\6 ezzcl szemben al31*"clmezés ~nt az adaúorr:1s ml"t"", rduxdj:ll


n~li. lt.:J. ÖS5ZC5 rekord n~Ú5a termbzet~ túl 50k inf~d6I ,derIlhel.,
lu. lll. ad:u/Or'ds-\l.,;zb!6 rekordolr. §Zjzait vagy ezrclt adja v~. A I S.R_ ~Idn p&l:iul
an IillUk, hogy a Soob tibb mind 32 &: rekordp rneg,ekruk - kqud;Uk el. ml lenne,
lu. a tiblllim nem öt, hanem ötoizl~ rekord \enne! Eg). iJ~'en OkbI keulhetL'!.Im lenne, b
v:alószím'lleg csak elijes~ azokat, akik arra kí~ncsiak. h~' milyen kÖ<lyvel<et oIv:a!r
fUnk. (Egyszet5ffiind peme imporúlna is nekik a kÖ<l}'\tlrunk mérete.) Az. inform.kió
emészJ:helriJbl' té'!ew,hez dlszertJ IapoWatÓ\·j ala\ti(;;lnunk a r.ksnéz('let, hogya rekor-
doknak esY5lerre a<ak egy kISebb r6;~halmalit Í"leni~ meg

A h:>.szrljUwt65ághoz alapozbon kivül az is hozzjj;lrullw. ha II feUJaS.m1lók ren&zhetJk


az adttobt . Az malisi i!'O<Ük Íltter\'ez6 oldalain p&lául a repúI6jegyek~'t ~I~~ljoon ~r
szerint rendezik, a IegoIC!6Obt6lIulad"" a legdrá~bb fdé. de el6forduUl<lt. hogy n>ás
feltételek szerint akarjuk rendezni II ji,...~tOkal, mondjuk indIIlisI ill "~gy légit~rsasig
szerim. sok webOely em: 1ehet6:;fget is ad. 6$ n ASP.NET-tel ennek meg\'aJósit~sa is
egyszeru. A GridV\eW vezérl6t haszn~I""" felhaszn:ll6egy adon mez6 S2CJ1nt renUezh~"ti
az eredrnffi}1.

A kö"etkez6 két részben a GridView lapozlsi 6$ ",nderes; kt'pességdvel ismenr.e-


dilnk meg.

A lapoli\l lIgyanilgy eng.:.-d{·lyezi1etjilk a GridView vezbl6ben. mint a DetailsView-


b:m: a vezérlő okos cimkq&en kcrcWJk nK-g az Enabk: raging jelö16négyzetet, és
jel6lji1k be. A l:t!XlW felOlet testresz:lbásjhoz a I>ropetties ablak Ilaging r6;zére lesz
sZilkstg, ahol II Grid\!iew esetében négy tul:t;donságot l:l1~lunk:

• AllowP/1ging - Ez a tul:ti<Jons:lg adi> meg, hogy a la!Xltls t.amogatou-e


(az alapértelmezett élték a F,olse). Ha bckapcwljuk az Enable '>agmg
jelöl6négyzetet az okos dmk€:bcn. a tlllaidons~g €:rtlike True 10.':>2_
• P4qeIndex - Ez a lulai<Jonsig a megjelenített adatoldal sorsl~m~t tartalmalZ;l,
(A sorszátnoZás 04.61 indul. tetl.~l ha ala~lI~poIb:m aZ ds6 a(blo!d:Jlt szeretnénk
n....gjelenilen;, a bdlli\!i51 h~gyjllk !Hin.)
• pag-erSett!ng8 - Ez a tulajdonsig több résZlula~gb61 ~1I. amelyekkel
a lapozó ~ megjelenbét ~bhaljuk le5l1l:. pl!ldiul oIdalslimok helyett
előre...h~t"J gombok~L (hlvatkozol$okaú kbhe!ilnk .
• paqesl te - Ez a tulajdonslig az oldalanként megjelenítendő rekordok számát
hat;),rou.a meg.

Az AllowPaqinq 6$ PaqerSettlnqs tubjdonsásolmak mM ismer6snek keU lenniil.k.


mi,-el ezek a Details\~_ tlllajdorlsjgai közölt is megtalálluL6k a !>:iger részben.
1\ hlle!ndex énékét \"&lószínú\eg soha nem keU ~ít:munk a Propenies ablakban,
mert az alapértelmezett O érték biztosít",. hogy a wcboldalnak a bóng{,s~ való Ix."tölté-
sckor aZ els6 awtokbl jelenten meg. Az utolsó tulajdonság, a PageSize, az oIdalank~nt
mcgjek:rutcnd6 rekOfdok wmjl lut1= meg, az al:tpl!neln"ICZn \o rekord. lia egy
oldalon enn<'l lö!:b vagy kevesebb rekordot szeretnénk megjeleníteni. m6dosi"lsuk
a rulajdons:lgű! aZ igényeinknek megfelelően.
15. . . • AdIIok.,.", ' "H I WlbllIIIIh ' r'&UI l l65

\"1'01'1 ~ Book~ ~bl~nkll.3k ÖS51.esen o;ak öt rekordjJ van, ha a \o tntken h~gyjuk


~ PIIgeSlze IUbjdon:5:ig«. csak egyellen old3lnyi :,d:,!0I k~punk, Állítsuk M! Ink~bI)
<,ZI ~ Nbidon~go! 2-re. n1:lfd ~zzOk ~ az ASP,r>.1:.T <>kbh ~ böngb1.61:Jt,n Az <>kbl
..1$15 betölt6ekor l:ith;;n6 kl.'pet a 15.14. ~br:o mut;llp Megftgyf-"Ihctjilk. hogy a bpoW
relüle! :oz hbpértelmoezcu) Nwnerk lnÓdO( 1u.wUli:l ÖSS;reSen Mrom okbh k::Iptunk,
és TOOI:!l az eISÓ okbh U!l\'k. K:lnlOtsunk a 3 hi'':ItkoúSn a I,.poro felOle!l'll; cz Iljr:lIö1ti
:oz okbh, ~ m!bl a t\3rnud,k uu!okbh ~iu rn<'8 f!i5d II 1515, ~brill)

L .:

~" - •

--- ... _....


--- ---
c...r_ _ _ _ _ _
- '-e
,~. .. ..... - ".. ~ .. 15.14. "
M .........
" OIdnkJ Q.Boo:*
wb/Q ~""
""')1.01"""

....
0 --
~---
!lI_::. - '-e >-....I~ :1


15.15. Mn
,tz",1moII
u· "".-maJ,,, DlJiUQ
Q.r dtdd,It és

. ,_ . - "8)lb,-"I "IOISÓ
AO:S<,)........

Ahhoz. hogy lIpozI\IssIri.egy ~. 'I'tl6rI6 ~ kiiltitt. • w*6


DateSourc 1'1'-'<'1. ~ Date5et 6n6krt UI . . . . . . . Ez '9'I'ben
IZ ~eImeZett 6n6k. \IIQ'YIS llaporisnlk JT1I!IitÓI" !I1ÚkÖdnII bI az OIdIIIO.Z
adott SqllataSource esetében.
HlI ~ az emlitett !Uajdons6Qot DataP .... O' ..... 6/lito~ 's a Gnd'f_
(vagy. OetaitsV_1 seoitsiQivaliapomt próbilunk. ,ekordot kÖl6tt. kMtel IIIp fel,

. "".
H ahhOl, hollV .lapo.!'s mtiködjön, vinu ken 'lIlIanunk I tulajdons'oot Dataset

El I liqywImIltfIiU I GridV_ adiitainK ,~ i$ ~ .miWI


~ mn.taebbtn foglalkollri..
366 1MI, r6I.Z • MIIIU idltbfbokhll
Mi történik. amikor egy lapról egy másikra 'láttunk?
Függetlenül anól, hogy a n'iC5Ot.'zelct lapozás", :íllít(l(tuk-e, a how kapcsolt adaúorrls-
"ezM6 nlindig az óuzes rekordot kiolm= a megadott SQL-lektrdczL'SCn kem;ztüL
II lapozhat ó GridVI<:\'.' ~z adatfomiW61 szAmuw rekordoknak lch~l csak <'gy lészh,.l-
!Il3zit mutatja, b al alábbi két par'Jm(:(er határozz::. meg, hogy milyen ad~tok:lt jelenit
meg:

• Az okIalanktnl megjelcnilend(j rekordok n:ánu (PageSize)


• II megjelenítendő ,.datoldal (Paaelnde,,)

A képlet a kövelkezó:

StartR.. ,nIInde" • pageSize • pagern<l .."


RndR<><:onUn<te" - P<og"Size • (P"qeShe ' Pa'l"lnd .. ,,' 1.

II StartRecordlnde" é'i az EndR!!(:():r(!Index aZ a<l1lfQl'T:b n"'Ridenitend(j rekordtano-


mány!inak kezdetét és vtgéllelölik ki. N.. adaúom.s-vel.él'i6 n "datw,mb6J kioh1lWlt
minden rekortkx indexel, a IiOfSdmw.!ist ()'nál kezdve. lia tehit a GridViev.-'-nak
az ds6 ilf rekordro \';in 5zOk,;ége, a O é:s 4 k6ZÖlll.'101'S7.ámú rckordoll~l km el az "datfor-
ds-,'ezérl6l6l, a kÖ'''~'1.kezó ölhöz aZ !i é:s 9 közöni sorsz:ímuakat. és így tov~bb,

Koclbbi Jll'kllnkban a PageSiz .. ('nékét 2-re ~lIitOl!uk a Propcm~'5 ablakoon. Amikor


aZ oldalt bctöhjük, a Page Inde" ('néke o. ami Ut Jelenti, hogy a StartRecordInd.."
l;nl;ke 0, aZ EndRecordrndex bt.,ke pedig l ll'5Z. ezért 3 Grid\íew 3Z "daúQl'T:b
dr;ö két rekordjlt jeleníti n"'g (Usd a 1514, :íbclt).

Amikor a feJha$Zn:i16 a 3 hiv;uko;cl~!"J kattint. hogy a hamladik adatoIcL~Ir'J ugorjon.


az ASP,N!:'T oldal vir.sza~!o!:ist h:l~ vesre, A GridView <'szleli, hogy a felhasz.)jló
3 harm:Klik ad:noldalt kérte , é:s ~ PageIndex tuI3jdons:'i~n:lk ért.,két 2-re frissiti, Ekkor
ujr.1sclmolódik 3 Stattl1.ecordlndex és 3Z EndRecordJ:ndex érték~, é'i 32 eredmény
e7.IÍual 4. iIIet"e 5 lesz. N.. adatfomís-vezért6 n~ is I/II/1d('1' rekordot kiolva5"7. adat.
bázisb6l, t's lilivel azok csak .j-ig sclmoz6dnak (m",el a Book.. l:ibUb.>n CSólk öt rekord
tal:1lhaI6), 32 adarforT'is-ve1krl6 cs;Ik a 4-es ~~mÍ1 rekordo! adp ~t 05.15. :ábra).

Bár 8 GridView beMJthat6 úqy, Ilogv oldalanként c~ két rekordot ieienitsen meg.
az adatforrás·vezéf16 akkor is minden alkalommal mit/dM rekordot kiolvas az adatbé,
zisból, arni\:;~ a telhaszná16 la9az az adatot kiiliill, lIITIi nem túl hatékony f'OO9OIdás.
különösen nagy IIdlllhalmazok asetlHlen.
A felesleges 8ÓIItok kiolvasásét megak~dó igéf!ybe vehatjük
az ObieetDetaSource vezérlöt is, Erről 8 http://msdn .microsoft . COf'l/
libraryJdefa ult.dap ?url:/library/en-u9/dnaapplhtal/
Gridl/iewEx _up címen található, BGndView-ról szóló cikksoroutbólllldhatunk
meg többet.
Amikor ~ felh",~rclIó.. lapozó felüle:{ ,';,obmelpk h ..... tkoz:úar.o (~. okblsLimra '"lIgy
e~lra gomoo) klttull. alt ASP 'TI oldd H'i6Zacsalol;l.';t 1tlI, végre. éli II Crid\ oew
I'<oIle1nóo x tubjdon$.iga ~ulonuuku.s;1I1 fn.«sül, Ennd a vlS5Z:I<:SaloUsnJI a Gnd\1eW
kél bpou.si el.<.-rnrnyl vJI! kl. amel)'ekhe~ _álkség esctén e:.cmén)'kezcl6kct lrhalunk
A kél e;emény a kö...ctkez6-

. ,......,
megy ,égbe.
• Pa~,· I n.:'le"c .... oa, Ez az e5<:mén)' a Pallf!l~,':l~': lula;doru.:lg új enckre való
fri.'I.<ilése uWn nleg)" "':gbc

ErnIikaZZii:* 'ilwa. hogv • VISUII BasICben ÚOY' holhIttri.lWe ~I,


heil. ASP:NET OkiII foná nbt6re YiItVa ll. ablak lIIe-," ktjelöljiik. veMl is
ll. ."ményt • bal, illetve JObb oId1111tnyf1ó fist6b61. HI fel szer,tn6nk fnssrleni
lsmereleinkelll.'~ IIItrIhoús.-o!,lIIpomri vissza a 1, MJIl8Ihe.L

Rondezhet6 adatok megjetenftéso


Az adalok l:lpous:ín ki, ill ~ GridView az ,,-(titok rel1<kl.~"":''t ~, könny ...n mesokJh:nó\"l
leszi. Ehhezc.... k ann)'ll kelll,.nnünk. hogy alt okos cimkclK'll bebpcsolruk az En:Ihle
sorting (Remrzés eng.,délyelbe) id~gyUtet.

A rendez.:,. engedélyezi.':sé\'d a Gód\'iev. rne7ófejli!n:ihen Ie\-ó szövegek h",alkoú.\.>..i


aLakuln:ok, amel)-'due kalllnl"~ .. z ASP,Nl, oldal \"iss<:acsatol;l5.;it indil)uk cl, aminek
ercdmtnrekq,pen .. Grid\'1('Vo újra leken ~z adalok:ll u .. datf"m;'s-"ez('!iöblll. él;
.. megfdel6 rendc:ZésI p;ar.lOCSOl alk;lJm:lU-:/; r:Iojuk.

K:tpalOlfUk ~ t,., most az F.ruhle Soning ,e~eI. ,. r:1csntzctilnkhm. és leklnMk


meg az ASI"'ET oldalt .. btlngewslK'll Ahogy 3 15.l(). ;lbr.1n 1;\ll1al6, a rrnJezés eng~'"
délyclé5b'd minden me1.Óf~ 1u\,:ltkoz;1,ktonl kqx:z6:hk le Ha ,,,la melYik hivalk()-
ÚSr.J DltJJlIUnk.:lZ ~datok;uzeOnl .. n1>tZ6 '<lC:rtnt llÖ'I'ckvt'i sorrendbe N'Odc.-Zl'5dndt.
amelyik rnn.6nek:l fejk.>c.:-re Iuttmrouunk, A Gn<Me"' .. kaminYÍl N'Odc.-ÚSl ~ lámog:;n·
p, ~"lIg}"'" lu a fell\:lszn;iló ow*l ug)'2nama:li mezó{ej~ lalunt. :Ii ~Ú11 ir.in~"lI
me8'-,jJt07~k. ~ ~Z eredmMy ~IŐ~'fl jeleIlIk OIcg. A IS.11. olbr.1n L1lhaljuk,
hogyan fest a webokbl. mJUun a I'rk-e Illelll fciléca>en 1('\.<('1 hWJlkoz:ty~ k:lrumol.lunk

Ha. ritsníz81 rendtzett,. ~ megatIOtt .nt::fI 8Y doad'tk.ll ~


hlrtott alapér!eImalRIt ,. . . 6Mnyit \/t'Slb. TtMt hall S~aSW"ee
18c ~h liIbIa 1IrtaImit. Pr. , .. 1IIdop szemt rendezve nYOO kl, de. feIt\aS.ZMI6
• 1lfI116 SlInIlt akir rendezni, , GrHMew rendezési bIMltásai hllUlblrilj"'-
II ldMlooás·~ bdlílÍSltl
368 111. rét.!: • MIIIkI edl'Mzirikll

Ez nem jeIeoli azt. how lia rerldezhet6 rácsnéltltet használook. akkor az adatforrás-
v9Zér16 )RDER B1 zátadaénak semmi llasmát nem vesszük. Eael ugyanis mapár-
rmmuetr renduúi sorrendet IlatárOlhatlri:; fllIIG, ami akkor lesz érvényben, amikor
a felhaslllálO el6SlÖ1 tölti be az oldalt. A felhasználó eZl.ltán természetesen leliilblrál·
llatja a Ilffidea\st a megfelek'i oszlop fejlécében 1e"OÓ hiv8~ozáS(a kaninl\'a.

-e

- .-",_t__. .
....
...... -- - .-
, """"._0.. ...___
v... --."" .. :-
"_ ........ .... ~

~-
""~
~~
'--
"- - ,., ....... """"" " ....... PO

,.-
~
~

IS.16_Mo
AZ a./a/OJl ~bt<>, (> BooJúD oszlop szcrfn! 1'I:t"kutldt. Is ",/",Icol mcx6ftjlt'c ..
lJil'(lJ~1I képl!zó<iiil le

,.- ._-- .-.~ .~ ..


..._--- - -
-(>



,
• ----- -- - .-
" " " 0 - ......
er-._"","_ ._
'"_
..- ,
" ._ _ ...
.. , ."'" ~,

-
__ ,"""' ... :>o

---
.. _........,,_ .... lJ,

~-

15.17. iIra
;I "',yr""" <Ir tt.-rlfJt "",dezhl'tjillr. hit n l'rlc.. ma6!t;lecibe>' Je,(j hil.w /kozM", koni""",.

A rendez6 felikt testt ",ab4$8

A GridView rendew fdij]ele 3nnyib:", te5tre'<7.abhaJ6. hogy Jeler.heljük. mdy nl<:zók


lehelnek rendezl\elők (Alapértelnl<:zt5 szennt ~ ries összes meUljc ~z.) lb jelezni
szc:.'Tetnénk, hogy egy ~dott mező alapján 'lt>m rendelllelÜnk, ny~llk meg,. Fields
párbeszédlblakot 3 Grid\~oew vezérlő okOl> dmkéjének Edit CoIumns hivatkozá.kír:1
kattintva, At ablak bal ab6sandlxln l:l.th3tjuk,. r.'iQ mezl5inck hsclpt. Innen v:ila$$rok
15. ón! • Adatot nllQilll . . . . WebeI ~ 369I
ki an:l. rneWl. amelyet nem rendezhet6vé szt'n.'Ull'nk tcnni, hogy Ix.>tölt.sük a tulapon-
$!iga it a jobb oIcbli li5tába. majd jobbolcktlt gő1'ge!;S(ink :lddig, amíg ri nem I:tláJunk
a So~tExp~e88ion nevIT lulajdon~I"'J Töröljük ennek II tulajdons~gnak n ~ékél
OJlsd a 15.18. ábcit), ezzel a mt'WI nem rendezhet6\'é lesszilk_

--
'.'"

i,-
=
,-
,-
''''

,- ~ r......
.
--
,-
lt _ _ ..
,--
,
,-
L>J
---_.....-
__

OoMIh.!IrrIL o!

-~-

15.18. 6bnt
A )",'rPu/)/iSJJI:d ~SortE.~" lu/ajdfms4gál /WI5IIIJk

Megvizsgájtuk. hOg)-uJn működik alapozjs 6; a rendezés a rác:ml'zetben, de nem


k~íteuünk bpozh.at6 és rendezhet6 rksntzelet. IJ.'Jr f""ldit ilyen GridView-rn nem
littunk. nincs ls ri szükség. men e két képessl'g együues biZlosíl:lsa csak annyiból ~IJ.
hogy beka~juk n Enablc Pagíng és az Enable Sorting jelöl6négyzetet.

lllapoclshol hasonlóan a rendezhet6 c.;zJopok fcjlb:ére kattint''a ls vÍ5Szacsatol<'lst


kczdernényeZÜnk. amelynek során a GridView két esem<:n)'t v:ílt ki,

• Sorting - El; az ~ény a GridVicw rendezése d6tt megy végbe


• Sorted - El; az esemény II GridView rer>dez6c uI:!n megy végbe.

A Grid\r""" vczérl6nek van egy SortExp~etl8ion nevú. csak oI~'aShatö tul:l.jdons:Iga,


amely jelzi. hogy melyik rnez6 S«:rinl kelJ rendem;' A laf.'OZ'\sl e:\Cményekhez hasonl6:'n
a fenti eseményekhez is írhawnk eseménykezel6ket.
Osszefoglalás
Az. d6z6 6rlban I:lttuk, hog)':ln nyeri>elilnk ki :><blOkal qr)" :Kbtbbi~ egy ASP ,\1:.,
okblon n SqIO::a~ ,'e1,6i6n k~ul, ebben II Ic<:kében pedig megnWOk,
ffi,k...-nt ",knilheljük meg e:trket ~~ adlloot a wd>es aootvezérl6k ';I.'gitségi... d .\tmden
"ebe JdI\Ve~rl6Itn)'q!(:bm ug)"llnugy m(lklktik mIUtán lloz.mdIuk 6kl1 nokIaIhoz,
e}l}' adnfl>!l1b-ve;:trl6t kell oowiuk k~pooInunk, Amikoc'Jlaki dLíIOg;ltOI1 az ASI'NI:.'
nklalunkrJ. az adaúoná5-\'ererl6 klol\"a_ u adotolcat az adatb:lzc'ibót a "'~~ a,lot"',·
Zí:1'I6 p;..-dig n~lenílllzokal. öt wdlC:S Jdo(H,z('1i<'!I I'An, Jmel~'t:k köl.01 ól k~ le8l1y .. k·
r:tbban JlJI>znjlt a Gnd\iew é; a 0..1.l1[" VIeW

A Cin./VICW \'C.'úrl6 a hnw kapooult ULolrU"r.l~,~znIó 6ssze'i rek~1 mcgj(knitl


"S} <tAbl~> HTMl-dcmben Az. ..wrfnmb em..-s rek0rdJ3iból bblll.:usorok jOrlnek
Iéu'e, az oszlopokból p«bg tál>bnlcelllk A Dft;;IIJS'~"''''- ezzel szembm eg)''>ZCfre csak
rgy ",kordal jelenít meg: ez II rekord is~' <tabi.> e~6x jelenik meg. oe
JGndVicv,'-t6! elt.:r6en in u adtÚ0fT"l5 ovJopaiból ;on ~ '"8Y.eg)' l.ihUz.u.o;or,
n '"8Y~ úbl:iza1SOrOk pedig k~·k~ o.Wopoi tait;llm;lwak - az egyik n ad:uWu.
megfeld6 ~k nevl'l., ~ mislk J)C(hg al mek<:t ;emu meg.

Mind g GridVlew, mtnd a Oeta,bView m<:lItelcnésc több $~n{en i$ könnyen Itstr.::<1.;.h-


h.lló, A '-cztrlószifllű h ><lr:mnul,ulajdonsJgok ~ I'ropCI1'~ "bl,kban érhel<'lk eJ, nlig
~ mezó§zin'ű lllÓd(l5ít1i;;ok:1.[ ~ ficl<.b p.:lrbc.'.d-<.IabIJkban 'ége7.hetJük el. ~mclyhe~
az okos cimk"o/XII férhetünk hom A legjobb az e~n. hogy mmdkd vezMóhöz
Ul10zik egy Auto format p:irl:.e<.z<!dlhlak, amely" ho1;2;:im lusonIóan mt1-.,~ &z,,-I!
hit:ln Ie-.~k nyujt ""gy qi~

Ebben az öriban az:Kbtok mqgelL"fIIl~ ~OSÍlouunk A kovetkez6leckében


azul fogblkwunk, hogy m,km, N~uUlh;l'ruk eg}"Ün az :KbáOlT~w:~et &;
, ...-d>e:!; ,cbt\'ezérl6kel az adalok szerlceszt&ére, friMitésére, beszu,..l5;1r:1 és ,on~,

Kérdezz·felelek
K: il Gridi ku' t's /1Dell/Ils, ';(,'11' mepJci''111istt /f!t$Z/.'I&, dc IIOfVW' I/'IIC/cm 61«.1
mER szebbtl. lu. p.<Idó .. , tllblhal1OronJJém Illirom rdllOrdOl $Zf'r'CIlw"jj lát"I,
"en, pedig <Orotll..éflj <'&Jn, mim a rr'ks"e::c/ÚI!,rl
v: A Grid\iew és a [)ccl1l~\>\...... ,'eZérl6 il. a I«k(-bI'n nle'g>Sl11O:f1 SLlt»lyok ~zerint
kfpni le .ctable> HTMl~ a tartalm;it... ami azt je\eTUJ, hoSY" Gnd\~{CV.
nundig pontosan 1'8)' rekonlot !denil nq $OI'Of>kénl, , OeaiJ!,\'iew pedig
kl'losrlopos t...ibUzallll hoz It.'tno az adalb;izo.5Ubb adott rekordia ORlop:;Iin:lk
~,e_ T~QefI mmdkl'l '·czérl6:sDne1. belűtipusa, és szegtI)e1
rggy n1éft8:bcn l~rt'SZ<lbI);l\6k
Ib:l. k"..e..eM o:rma~!Jb ~k kidnJUk :l.Li"t.'tni. m1~ webes
acbt\'~2l,;'rl6khOz kl."ll fordulnunk. A TNSIk h;lrom adlt...~ztr16 -:I. [bullsl.
ll. Repo:::llcr ts a I'onn\'~ _ sabkmol«tfha.v.rdl. ameirekben \'eg)'ithclJilk
a HTh1L-k6dol és ~ webe5 ,-e1.&I&CI. ig)' nallyobb mbl~ka 1~b;isrJ v;jn
k-llct6ségünk AhollY ~ ko.."C\kezó Ioxk8x:n (;jtm rogjuk. Jtuben:l. Grid\'iew és
a Det:I.ilsVl<"W is t.1rroog;.ol,:l a $:I.bIoookaL <k.> CSlk a rroez6k szinljtn. mig:l. Lnt:.l1.cA;.
~ Repc:;I\f:f és:l. FOfTTl\',", eI<'Iébffi SOf$Zinr(I s;al.lloook:ll h:l.szrlilllóltunk
1(: t~· IITn~ ri Grldlil'U' .-.pe. 'gn eléB .JOoIrrtor.tri IIo.Innn ludlwlCNr ""'8 l6IJbet
a Grldl1eu.' tl!Zht6r6lJ
v: A Gr1lMew , .. lóban megIeIlC"I66en ös.szJr(cU és !UR) 1udis6 vezérlő - , .. km.inU1eg
ez tud :l.leglöbbel U ASPI'IIT ,."Zérl6i k"'rul, A kÖ'l'elkez6 fejeWtl>en ~ Gnd\'jev,
~mos hasznos szoIgjlClUslh'lll meglSlnerkedUllk, po;'kLiul al arnuok !>re1'Kt."'7.lC-
senek, törlé:!ének, lalJ07J..ocln;lk és rendezbéno::k k~l. de ebhen
a koop1>en csak ~ feLszint C!rinlllCljOk. Ha niC!lyclX> I:<men"lekre vol.ID',mk
~ Grid\~oew ,·e~. oI~':I§SI.lk el a szerző Grid\'!eW Ex.amples for ASP~f.T 1.0
dmíI okk&" http:'/lIIIKtn.m1ero.o!t .. ,.....', II br"ry/def ..dt .... ~ hiri
III br .. ry lerI-u./<!nallpp/btllolIGridViewb. up <.imen, ~tyhez któld-.::t6
fom1skód is W1OZIk. b IObb mtnl 1200kblnyi pHWt un.alm:u.

l,métl6ké!dések
l. Ilog)"n kap<:.5Ollu.lunk egy :...l;.uf~","e~ egy webe adalvezérl6hOz'
2. .Az adaúorris-vezérl6k ,.cbtok megjclenilts&e is h<I.wúJh:nók." 19u '':Igy h<lmis?
3. .A ... '..-be:s adal,~llI!J16k adalok "cbtbbisból ,~16 klo/l~ is h:asl.n:ilh:nók·
Igaz ,,,gy h<l1TU.i?
4. Hog}':In k~U bcllhlaru a Deutls\~1C'Vo v~ztrI&. hogy:l. felh:!.szn.tló ,·egiglq.ked-
hessen a hOUJ lapcsott :HblfOl'T1is-,~zér\(l; rekoo:l;am?
5. Milyen fonnámmlcírót kelJ hltszn.ilnunk. h~ azt SZ(' ....'tnéTlk, hogy egy Sl'J.nuTlez6
tartalma pénz~rt;!kkbl! jelenjen meg. b hog)'~n form1Ul.:lIunk egy ilitum/id6
mez6t csak dilumkml1

I. AdJUk a ....~ ad:u\"ez,kl6t az oIdaJhoz. b " "~n.'rIl'l okos dmH,tbet! ~ 01005<'


[bta Sounx lenyM llSÚhóI ""lasswk k. az oldalon taWh:uó ~<bÚOfr.l!>-\~zérl&
k",zal ali. amely.khez a ... 'CI"", acbtveztrl6t kapcr.olni 5~nk
2, lIam;5. Az a<btfomls-ve1,ért6k cs:.k Idotva ...... ~k az adaIObI "z 3<btl»usb6t
A meg)denltc5" webtos acbtve1.erl6k fdad:&!:I
3. lIamis. A .... ebe5 acbl\"~zérl6k csak megjelenítik az adatokat;,.zok luoh<los.:l~
a Idn&ben ""''6 a..búoni.sb6! az awüorr:l.5-'ezb\6k fdadl",. Al. a..büonü-
\'ezbl6k &;,. webe! a<.bl\"e~ teh:it egpJumaköc!nek. hogy adalokat
,..1enithe5sUnk meg
m III lia: • Mda-hd: ,. ö"

4. A 0et:Ws"'~ vezéft6 ~~p;lI~poIban /lem úmog;IlJ<I;I ~poU5t, \'alnl) ~nukor


;IZ okblt beIöIu:l~.:l felh;as;m:iló C!IOIk az a<búOl'ris cls6 rekonlf;,il
fO(!1J btn. Ahhm, hogy \'i:gISlq,kedlleMCTl:u.:admon:i..'I \':iII:unomn)i rekotdj;ón.
mgedélyeznunk kell II I;o~ Ez! ugy crtlCljük: el. ha. bebpo;olJuk aZ fll:lble
»:.glllg;dűl6négyzdel a Oet:IibVicw okOiS dmktjolbw, \':iIgy ha rru"-I':I álliljuk
aZ AllowPaqi"9 rul;l~gtJ( ~ Pl'OpCfties ablakban
5. A pénzénékek form:1lllmldn» a < 113 "gy ditumlidlI mc;t6nt:k (:;.;lk II U:llum
r6;zéI s1...retnénk megjeleml"n;, a d fOfm"tumleirot kell alkahruznunk HJ clckl1
a formjrurnleir6kaIC"f!)' GridVit:w \':iIgy egy l)e{ail~ \.cw val:tmt:ly,k rneZ<5j&e
'\leI\.-ménk alkalmazni, :il lit'" l Enc-xkl tul:ljdon.s:lgű! Fal &e-I':I kell 111 iununk.
II DauFormlltS t ring lula~got prd'8 a 10' {"r••ü"", l.inil éni:kn:.

Gyakorlatok
I. Houunk ~ eg)'!'] A..<;P'Yr okbl! IfyllOOkTitl ...... aspx no!-.~ Ad",nk hO.UJ
egy SqID::lUSourcc \-c:ztri6I, {::s ~UMuk be Ugy, hog} 3 BOOtI;. úbbból oak
a Tltl. (am) ~ adl'l \·I5SZ<I.;,Il t'l'edmi:nyl pr<hg a <.:imek neom ren-
~zzilk ábé.;ésorrrendbc, Ez Ulln a<4unk egy Gri<M,ew \'ezi:rI6t az oldalhoz. b
kősSilk hozzi 3z SqID:.llaSourcc \czMőC ~·omdzZl.lk a r,lCSllé7.c:tc:t 31. AUlo
form:<l párbesz&.lablak scgiLWg/!"ocl, é. pr6IXi ljuk kl az oldal! a böng(:)2:őnkbcn.
2. K{:szits!lnk mC-g egy ASI',J\1:" okl:lh, eZlinall1c8tllecentlyReadSook.aBPJ!
nhcn. Adjunk hozzi egy SqIl):II-'1Source veZérl6t. amely a Sonka tábla ÖMle;;
Of;;dop\1 viss>331ij:o. de ~ L.utR .... dOoot. c>sUop ~nt rendezi ~ rekordok~l,
csökkCllŐ~. Ez! km·etócn adjunk egy Oetails\'iew \'czérl6t azoldlU'IOZ,
~ k06sük hozti az adaÚoml,o,.-\·eztri61 A bpozá.st ne cngetloéI)~Uúk a n:..,;üetes

"'''''"''''.
M6cIoM~k a ,""z&zIIlul tulajdons;lgokal ugy hogy cs:ok ~ Titl .. Author b
'-"'''tRNdOn mezők ,eloI"I\JCfIclt 11'1<'8. a Ti t le mező tanalnu. dŐIl lJeIib.
~ LIIItReadOJ>..<.ó pedig félko-.'cr Ieg)'en_ \'jltOll:lSSUk a LIIatReadOn mem
I\eaderText tulajdons;lg1nak l'ntkét '1 n Ish«! ReadinQ 0,,· 1':1 , és fOl"Jl"Uzzuk
ligy ~ mewc. hogy C'ó:lk adIIum iclcnjen meg, majd pr6b:íljuk kj az oldalI
a böngé:wSnkben.
16. ÓRA

Adatok törlése, beszúrása és


szerkesztése
A lecke larta/",liból'

• Az SqIJ>.l.taSource bdlJíL'isa adatok fris.~il~<re. besz(irás.:íra és törlésére


• ~ adatMzi.wk adat~ ,f):lk ,n6dosit;ls;irJ ha~"ZI1~laws UPDATE, J!l;SERT (>5
DELelt: SQL-Ul:I.Síthok ha~btának ~Ilp)ai
• Adatok 57.crkeszt6;e és \örlese" GridView vezérlő seg>t.Si'g~v..J
• Adatok beszuclsa II Details\1ew "cz(>rl('i 5Cgil5égével

Ahogy II 15 Icxkélx:n 1.ittuk. az. ~(L1lok ,""'Sit'lenJt6c a~ ASP_~' webcs adat"OCz&i6ivel


gyerck~~ték. Eg}'l;zenJen az. ASP ''ET oIdIJ", hOzunk egy Gric!View WID' Detli"'\í=
veZérlŐi. b hozzá.kalX3QJunk egy megfelelően \)eállitou adatfon-.O.s-n:zérl6t. Egy adatbá -
zis adatainak megjelcnit6c e8) ,,'eboIdalon 11:lSl.OOS, de néha arra is szü~ van. hogy
" f.. lhasználóknak lehet6vt tegyilk aZ adnb-17.i:1 unalmjnak " UXIos;lásill is. Az el62tJ
6r.iban peldiull~ttuk. hogyan iek'1'ílhClIOk 11'1('8 II Scok.a a dalMZiSOOn !:irul! könyvek
listáját. de milyen j61enne. ]1>1 " I.1tog;nók ""Fit könp"e,kct is felvehctnék a t:lJ)/jha. V-.lSY
megjegyzéseket: ftIzlJrolffiek egy adoll könpiJöz!
lU adatok ~k:nítbe mellett:l. Gri<Mew él D<:!atb\"lew ,-e;miök új rek<Jrrlok~­
r:is:íra, él mcgIt:..'Ő ~d:l(ok törié5tre, jllelve szerke<Zté!ere L~ h:1.v.nálll.1lók. A Icgpbb
aZ egt':s7.bom, lx.gy mindezt anélkül &helJük d, IIQgy egyelkn sQfn)"i f{)(f"jslcódot kellene
írnunk, A k6dcJIJlsmemes beszúcls.. frissités 6; lörl6 a wcl:Je5 ad:llvelkrl6k kqx:s,;égei-
nek k&tönhet6, Ahogy a~ ~dalf<xr.ís-,·e~érI6k ad,nok kinr~,Lére, úgy ezek a \'{.z&\(\k
adalok ~th1ra il; ha_málh,nők.

Ebben az ór.'iban nagy any:.g« veszünk. de ha \'egtgkilzdjilk magunkal a Jffken,


k~p(:sek leszünk adalbizi5Qk adtuín3k rncgjcknft(;..tre. szcrkesztélé .... fris..,ílésl' ... k
torie:s.:.ore egy ASI' NET oldalon kcre:>ztil.l

Adatok frissftése, törlése és beszúrása


az SqlDataSource vezérl6 segftségével
A 14. fe~~ben l~tlUk. hogyan nyerlldllnk ki adatokat aZ SqJD:l1aSource vezérl6
scgftség(,vel egy SQL Sc>!'\'t'r 2005 Express Edition adatbizisb6l, az 1'1&.'1 Jeck(oben
pedig megtanuJtuk, hogran h3szn~lhalJuk az ASP.N"ET ,,'ebes adat\'ezl'rl6il az adatok
nl<'gjdcníl~re_ A kl'lfl'le vczérl6tipus leszi Jchct~. hogy világasan cJkil.lönítsük
az adalok e~rfsét a rajtuk ví-gzctl m(ivelcteklóL

Az. ad:uok kiol''ashán kr.,\I1 az adaúorr.i:.-vezérl6k azonban al. adatok m6d0:.ítW ...~ il;
h:tsz.nallUltók Az SqID:lt'ISource '·ez~6t bdlhlh:tlJUk ugy. hogy úJ rekordolm _~zúrion
be az adatWzisba. vagy hogy töröl;ön, illetve módosít5<>n rrW nlegk."'\'6 rekoruolGIl.
Miután:o: SqID:naSource '~l.l'rlÓl beállilouuk a I~rás. f~tt::; és lörlés t:i<I\QS3t:isára.
ezeket a ,wJgillJtá~! elérhetjilk a GridView és DelJil~'~\eW ve7i-r16kön kere57.tii1. igy
a felh:r.-';.zn.;llók nem csak meglekInthetik egy adalblz;s adatait eg)' weboldaJon. hanem
adatok be:szú~ra, frissítNre ts lörl~ il; lehct6sl'gel kapnak.

A beszúr:b. frissít~ ts lórl~ t.1mosaliisán~k hW.l.hdása az SqlDal:tSource \-ezé-rl6h.... z


csu~n egy jdöl6re~'2'" Ilekapcsol:lsál igl'nyli. Az. c-Ijácls szeml,;!l",Nre hozzunk
Iéire egy új ASP'iET weboldalt Ri e h Dll taSaurce Kx"u'llx oo·en. hÍll.lunk rá
egy SqlDaraSource vererl6l. (os 11hlSUk be az adaúomiSl.. Allogy kor:\1.>OOn is t<.1tOk.
dlasszuk ki a megfekl6 adatblzisl. illetve kapcsolati kar:l.kterl~nrot:o: els6l<'pésben.
majd haladjunk tCW~1>b a Configure the Select St.1tcment abbk .....

G~"Ől6dj(jnk meg róla. hogy ~ leny~ólbtáoon a Book o t.1bl~ VlIn kijdölvc. és ,.;\Ias.szuk
:t' lehet6séget a lábl:t ö<sszes o:szl~f1:lk kiol"a~s.1IJ01_ Ezzel tJejllitatluk az SqID:ua-
Source vez~('it al. ~ rekord k oulop kinr~re a lJoaJ< .. lábl:\.b6I a SELEC'I' •
fROM laoaks] lek~zésen keresztül. ahogy:r. H I«kében is lettük. Ahhoz, hog)'
a vez~rl6 a ~Úr;\Sl. a frissittst ts a törltst ;5 timolil:lssa. n Advanced (Speciális)
gomlxa kell k~llU1tanunk. amely az A<'!.-'<lnced SQL GenernIion Options (Sped~lil; SQL-
elWllit~si bcállil~sok) p~rl>es1.édablakat nyitj:!. meg (16.\ ~bral.
_ _ T• ..-n:.~DIl.CI'I _ _ ","""",_.
_ ...... _00

_....-
CJ_..• ..... T......T~_ ..... "
.. _
_ _ _ T• ..-Tt.... tw"TI _ _ " ' _
otW:T _ _ _ _ .. , . - , ..... _ _ ......

16.1. libni
A be:<zrims. jrW(lh és lOriés /eheriiHgér
... II """" I <IZ Adr...,ICM SQl. G<mcmNo" q,rl<""
pd~/J/tlltb<", blz/QSflh<llJ".

Ebb"n 3 p;>rbeszédablaklxlfl k~ je~et _ G<.,nerJtc INSERT, CPDATE. and


DElETE ~!ement:s (L'JSERT. L'PDATI: ét; DEU:TE utasit."\sok Il:who7.:'lsa) é5 use
optlrnisOC ronrurreocy (OpIimi5la "=engé5 hasznlllna)- taUlunk. A 1.Ieszúr1s, frissí",:" és
töriés lehet&égénck blZ!osíuis;ihoz csak annyit kclltffinünk. hog)' bekapcsoljuk az el'16
,eJöl6négyzetet. Ahogy kés6bb I~tni fogjuk, al. SQL nydv a SELEX.'l' uta;JWs lnclleu
lliSERT, UPDATE és D!,;LETE utasithokat is tartalmaz. amelyekkel adatokat m:irhaturlk be.
rn6dosith.llunk. il\et,..,. törölhetünk. Amikor bekapcsoljuk az emlit"'-t je~"let, az
SqlDdl:1SalJrce autom11ikusarl IétrellOZZ1 ezeket al. adalmÓdollíIÓ SQI.-uus/lhobt is.

A Generale INSERT, UPDATE, and DELETE statements jelöl60égyzsl csak a6:.kor


émetó el, ha a Coof.gure the Selecl slaternanl ablakbi!l1 rna!lldon kltérdezés
visszaadja alábia a!s6dlll\18S kulcsát. A2 SqlOataSourca v~r16 VBrélslóia cuk
akkor képes automalÍku$lI!lllÍtreIlOlni \Ll INSERT. UPDATE és OELE'I'E utasIttIso-
kat, ha ft SELECT utasMs módot ad a wol! egyedi 8lOrtOs[it\sára. Példánkt!iIn e~
1IlI. jelenti, hogy III oSlloplislába bela kelloglalnunk a Bookl D os.zlopot, vagy úgy,
hogy a • Iehel~1 választva mtndan OSlIopol -msuadunk, vagy úgy. hogy
bekapcsoijuk II: Be ~kID oszlop jelöl6négyz8tél is.
Ha a BookID oszlopot eIIeWjlattiik Bso- ,kB tábla elsődleges kulcs oszlopává
lermi, olvassuk al újra a Book" tábla léuehomsár61 és III els6dleges kulcs oszlo~
uer&pérÖi $lÓIÓ 1"\I$Z1 a lJ. fej(lzetben.

A.rosodik jelOl6nl-gyzet (Use opl!miSlIC concurrency) cs;Ik akkor emet6 el. ha a~ els6
;clöl6oégyn"lel is bejelöltük lia eZ! is bekaf>C5Oljuk. a fri5l.ílésc:k b lörltsek végrcllajt:l-
sir~ csak ~kkor kerill 001", ha a módosit;lnd6 :«\alak TIt.'1n ""ltoztak meg:ll! utolsó
hozz:iféres 61:1 Lehe1. hogy ermek jelent~ mO:SI még nem vil~gos II sz:imunkrn. de
ne agg6djunk: ~ térIcir:lll f,*1.<:1. k66bhi résJ.ében m(1! ''issz:l!énJnk, miután Il:ny!egesen
dktl;zítet(Ünk egy ASP.l\TI oldalI. amely Jchct~ lId az ~dalok ~~rn

Egyelőr" leh~t csak:lZ eb6 ",1ö16~-zet'" bpaoljuk be. ti; ~ Use optir1Ü.Slic con-
currency ntg)'Zete! hagyjuk üresen. Az 01\ gnmhr:. bLum"" té~ürlk vissza 11 Configure
the Select Slatemem ahlllkb:l. majd 11 "'''lll gnmhh:lllépjünk a TeSI Que\"}' ktpemy6n!.
ko a Finish gombbal z!ifjuk be 3Z SqU>:l1aSource \"ezér16 ~;lf:izsl6j;lt.
Az SqlDataSoun:e vezérl6 folTásk6dja
Mm!:;n "~ge1;t(Jnk a nr.lzs16 beállilása;,.,.J, v~!lSUnk forr.ís nézdrc. és v~nk .,gy
pillantást:l. var:izsl6 ~!tal el6:llIíIO(1 kódra. amelynek II 16.1 rx'ltUban lllhalóhoz kell
lu,;onlítani.J..

16.1 . p6lda Az SqllJu/tJSo"rcr ,'f'rbIéjorrlWltJdjn mosll(Jrlo!sJ, b<$zrirob"l 6


frW"nl fKJm'~ IS ,mMlm=
1: <up:Sqlo..taSO\lu<' IO··SQ1Dat"Sourcel' ru","t 'urver"
- :"n"ect lonSU il><1~ .~ lS C"nnoteUQnStri fIlIB, Connect ,onSt r i ilii b"
2, ~l~t..c"""""nd·_·DELETE !'ROM [Booh) WHf:RB [BooHOI • 8Bookm "
_ In&ertcoar.and=· INSERT I1l'1'O lBooka J (['1'1 t l e l. I Aut!>or l •
_ ('fe"rPubli.hedl, [Pdcel. lLaatRca6On), [Pag1!C"unt]1 V1o.L.UES
_ (8Titl", '''-uthor, iYearPubllohe<l, IPrl<e, 'Lastll .... dOn.
_ 8P"!I~ount I'
;, SelectC~nd~'SELECT • FROM [HOoke]" VPdatec~nd=·UPOATE
_ {BooksJ SET [Tine] iTitle, (A"!hor] • '''uthor,
_ (YaarPubl1ahedJ = @YearPubli.hed •. [Price] • IiIPrIce,
- [L.o.otll.... dOn] "' IlA~tR .. a<!On. (PageCount] _ IPallooC<:>unt WHER2
_ lBooklD~ ~ iBooklD'~
4, <O<tl .. t .. l'iII~""",t"u~
5: <up,par_t"r Na"",,~'BookID' '!'ype.·tntJ.· I~
~, <IDeletel'dr ...... teu>
1, <Upddt .. Panlll",t"u~
S, <up,par_tH N_~'Title" '!'ypeo·Stdng· !~
9: <aal"Pdt_ter -'·Author· 'rYpeR·Str;l>\I· i~
,0, <up,Par"""'ter N!I..... ·Y_rJ>ublis~ed· '!'ype.·lnt32· f>
ll: <asp,Par_ter r<.' .... v·Prlc .. • Type.·Deci ..... l· '>
12, <up'Par ...... ter N_2"LaltReadOn' '!'ypeo·Dat .. TI_· I>
ll: <a5p,hr....,tH _.·PagC!Count· 'l'ype."rnt32· i~
14, <up,p"r_tar _o·lIOOkID· '!'ype.·lnt31· h
l~: </uPdatal'ar_ter.>
16, <InG~rtPar_t"rB,"
li, <,,"p,Par_t~r ~.·Titla· Type.·Strlng· i~
18: <up:Par_t .. r N.m8=· ... uthor· 1'yp<>.··Stri"l)'· I>
U, <"'1',Par_ter Nameo''l'earP\lblhh'"'' Type.·InU2· 1>-
20, <as1',Paramet .. r N~.·Pr;G"· Type~·Deci ..... l· />-
~) , <asp'p... a ..... t ... NlIlM.·l.utReadOn· Type,·DatWfI ..... • ',.
22, <8$1',p ... _ t e . N~.·r.~~Jnt· TY~='lnt12' I>
23, <lln ... rtPdr_ters~
24, <lft"P,SqlD.ataSourc,,>

A 14, f..,ez.etben <-g)' olyan SqlDataSOun:e vezéTI6 ködi:!! I:!uuk, amely csak egy SELECT
masitJiSl 3dott ki, 6; a köd j(w~1 egyszcrllbb ~ult. num a 16,1 péld:íban l~dut6 24 SQl'
Az egyszerűség azonban csak anrulk volt köszönhető. hog)' csupán kiolva!)Iuk az 3d:1-
lobl n 3d~(I)jzisl>6l- nlOSt viszont olp n kódrd van SZüksfgünk, amdy nt is Iciri«.
hogyan szúr!utunk be. frusíth~'tünk és törölh'-~ünk ,dnoluL
16. ÓlI • AdItCIt tM6M, beIBriA Mi mrbszt" l l m

A 3. sorOOn le"ő SelectCor.ro<ond ut:il5iláson kivill a 2. és 3. soman három tov;'ibbi


parancstJt:iI5itás szerept'l: a De l .. t ..<:O<l'I!Io'lll(!, az InsertC"""",nd (mindkeu6 3. 2. soman),
és az lJp<UoteC~nd U. sor). Ezek ~ pa"'ncstJla~íU5ok adj1k meg ~roka\ al. SQL-IJ13sí-
tá5okal, amelyek ..'! ~I kell adni II hlucrJdnl»zisnak. anllkor aduooI szúrunk be,
f~ítünk '""gy lÖ<lünk. A femi parancsula$i~hol néh.1ny p"",nJéter Í$ kapcsOlódik,
~melyeket a 4-23. sorOOn ulJilunk Emlékezzünk vlS5Zól. hogy az SqIDaUSoun:e vezé<"-
l6kben uJ:llhat6 SQi.--IJtasiWoknak pummcwretk;" lehetnek, amelyek kés6bI.J beillesz-
tend6 értékek hel~"ÚfZ6i. A par~mélereket a p:lI':lI1CS\lt:il5ltisokb:m ~ iParalflfltlf .. IMv
abkú elemek jelitik

A paral"tlélereket a <Delet ePanllJ>eters>. <upd"teParameters> és '<!nsertPara'


ID@teT6> ~k hat~ro:a.ik meg ri:szI."ese!Jben. A DeleteCOIIZIWOnd uta<ításlxm ~kl:iul
egyetlen par.unél..... U!800klO) szolgáj a törlendó sor egyedi al<>Oa§itására. a <I).. I .. t.,-
p"rameteu> r6z. azonban a 4.Q. SOlban egy <"$~' Par ...... ter> elemben kife~;, hogy
a aooklD paraméter egy eg6<: szJm. figyeljük meg nOl1oon. hogy:l par:1Inétcrnek nincs
meghatirozoo &réke. EmlékczhClilnk r:1, hogya H I«kében. ~mikor az SqJ(}J\aSource
\'ezérl6 var:1zslójjnak segí~>b'eI SZIlr6lUfejezéseket hOZl\lnk llife, a WHF.RE ziradl-kba
.beledr6102;l.l.lk" al. l'1"téket. és ez a~ Mék jel.,.,t meg a hozzi t:lnoz6 <asp, Parameter>
elemlx:n. A <Dele .. eparaMter.>, <UpdateParollllleters> és <ln.ertParMleter8~
résL.ek <a8J): Par/llDllter~ elemei :uonoon nem t:lfulmaznak egyetlen bedr6tOZOlt
&téket sem, men a pammé!erek értéké! futásid6ben fogjuk rneghatirozni. A tör16
utasi~s (oeleteC,-"d)@!:lOOkIoparnméteréncktn(>kelcMtattól fúgg majd, hogy
a felh~szMl6 melyik 50ft kívánj:. toroln;. él "nnek II sorruk ~z azonosít,*, (BooklD) lesz
majd ~~ emlitel.1 par:unél.er éltéke.

A I«ke ké56bbi részében aZ! is megnézzük, oogy'Jn szurltalunk be. frissíthetünk h


tÖ!"ÖJhetilnk adatokat a GridView és 3 Del.:I.l!sView ve:ctrl6 segn~gb·el. Akkor majd
vil;'igo:;5á válik. hogyan jelezhetik a felha.o;zn!il6k. hogy melyik rekordot .szerelnék
lörölni Vllgy módosítani. és hogy a ""ebe:! adatvezérl6k mik""l adják ~t eZI az infol"l1Ú·
cic'x az adatfom1s-vez6i6twk.jelenJeg ~zonoon elég annyit tudnunk. hogy 11.:1 bek:tp-
OOluk II Generate INSERT, UPDATI. and DELJ-::re Slatements jelöl6nég}'7.etCl
az Advanced SQL Generalion Options ~rbeszédablakban. aZ ~d,úorr:is-vezéfI6
létrehoua azokal a pa",no;okat t5. amelyek a varáZ516 Conllgure the Select 51aLement
ablalcllx1n megadott adatok beszúr:1sához, fru.siLéséhez és törlé~hez szük""gesek.

Adatm6dosft6 SQl-utasftások
Altogy a 14. fejezetben említettük, minden modem 3u.ubázisrendszer az SQL nyeh'l'!
luszrdlja az adnak kin}"erésére és módosit.1s;.ira. A SELD:;T ut3sitiSl, ameUyel adatokat
oI,".lSh:Itltnk ki. már megismenük ~~ fordi1&.>k a fjgyelmOnkCll~rom m1sik SQL-utas!-
tM. az INSERT (beszúr:1s). n UPDA'l'I! ()ri.\.5ités) és a DELKTE (törl6) felé. E három uusí·
ti5l az SqlOataSource veZérlő - ha megfdel6en bclJJitjuk - automatikusan létrehozza, és
ahogy mir bizoo~rJ kltal!iltuk. :11.,.. p-OIgilru.k. hogy mi'xlosJtsuk egy !l<.bth:lzis urt;lln.:lt.
318 111. rMZ • MI.rU ~kll

Nem sziikstge5, hogy tökéictesen ~ru.ok at INSERT, UPDATE es DELETE ulasíf>lsok


működkét, men at SqIl:>ataSouTC<' örömmel eh'ég7.i helyellünk a n1Unk~t - nekünk
~k :mnyi a dolgunk, hogy bekapcsoljuk a mcgfelel6 jelöl6negyzctt:!, Mlndazc,m:íllal
mIemeS kgal1bb nagy ''OfW.bkban t1SZ11ban lennunk II fenu masit:ísok ielemé""vel él;
nyelvtani szaMlph.. L Ha az emlilcn h:lrom SQl-Ula$íw :dapj:liv:ll LiQ1:;'iban \'lI8"f\mk,
nyugodtan ugorjuk ~t a most kövmez6 rbzt, men en az SQL-ben járatlanoknak ~zán­
tuk_ Az adltok ASI'.NI:T ol<bJa kon keresztüli módo!;íLhá,.. 1 az Adn/ok szerkeszt&! és
I6rlhe a Crü/ll"'i' ~'CZérl6 SC'8ftsl-gél1Ci dmú r6zbcn kezdiink foglalkozn'-

Az INSERT utas!tás
Az lI,SERT uUsíth, mim ... neve is elárulj:!.. új rekonlol. <zűr be egy adaLW.list:'b~bll.
Az ulasl!.1.s :i.ltal!inos fornúja II kÖvClke7.6,

INSF.RT rN'lO 'TJbl~N<!YIf)ulc>pl. 0II1:1Op1. _ •. , OtIz1"f'NJ


VAl.uES(QulOpltrt<!k. QuJop2tno!k . . . '. DlIJ:lopNEre<!kl

lu lIZ QU]OP!, Oul0P2, .•• , OszlcpN II tábla azon oszlopainak \cssz6kkt~ UgolL
Il:lIolia. amely... knek az &lékelt megadjuk II VALUES rénhen. Automatikus sorsz:Imozású
oszlopok ne-.·l:t ne adjuk meg, AzoItat az OIS.Zlopoltal scm kÖldez6:1Z ULll'lít1sba roglal-
nunk. "melyeknek al:ipéneJmezell6'lékC\ h:náfOllunk ol("g, vagy amelyek Null áI"kel;5
elfogadnak. Ez utóbbiak aZ alapénelmezCIL m&CI k~pják. amennyiben van ilyen: lu
pedig nincs, Null én"kCl. A fdsomh oyJopok m&dt az O&zlopltrtffk,
r;"zlw1treék. _.. , Os>llepNtctffk hel~'ére keU írnunk.

A leflti s.zabályok, amelyek arra vooatkolnal, hogy mikor ket agy osnop lirtétLÍt
megadounk az INS!':RT LIIasítás snmára. mér ismerösek lehetnek. A 13. letkében
~ttuk. hogylkl IIdhatunk rekordokat agy maglev6l1datb~st'bléhOl a VISUal Web
OIMlloJl9rben - abban a ~dáblkl sem adtLri:; meij értékeket az automatikus sorszá.
rTIOlású oszlop l l1OokIDI ~. iletve azokna« a rekOIdoknak a szám4ra, ahov'
NtAI értéket akartunk ~. ft NlAJt nem 8flgedélyllZÓ oszJopoknak azonban értékel
kellett adnunk.

Most, hogy tlszt:bluk a~ INSER'I' uosiLls ~ltaJ~nOll alakját, n"zzlInk meg egy konkré!.
p{:I~t Az 31:\bbi lNSeRT U!;l5íbst az Sqll>JtaSource ,'ezérl6 \"Jr:íZSI6).1 ~1Ií!olta e16
(~sd a 16, I péld,1 2. $Or.lL),

!NS~T lNTO [lIooltaJ I (Titl.,1. IAuthorl , (Y .... rPubli.hedl, (Pri",,).


_ [1.... tR ... dOn). (Pagecount]:
VAWe5 ('Tit]", eAuthor. 'YearPubl ehed. I!prlco , 'L st~aadOn. I!pagftCountl

MegfigyeJhctjok, hogy ~Z INSERT eg)' új rekordot ~~úr be a 6< >ka Llb~ba. és mirnkn
mcz6nek mékel ad. kivéve 3 BooltID-L A BookID 3zért IlUrnd ki a7. ouIoplistiból,
men aUlomatilru$ sors11imQzású, \':18)'15 a7. értéké!' az ad:nbá?.isrenW:zer lwtározza meg
(lia mfgis fn."ket adn~nk neki. 3 kód \'égrehajLlsakor hibaOzenetee kapnánk.)
Konkrét énékek helyeit al Ins"ncccmand pa ... métereh"\ - ~Tltle, ~Author,
I!VearP\lblhhed stb. - hav.n$L Ahogy az Ó!1I kés6bbi részében litni fogjuk,
a [)et:lÍls\rteW vezérlő .segítségéve! kéThClOnk bemenefet a felha~mál6t61, é:; al ~Jt:ab
mcgaclottak alapj;ln ~zúrh:ltiuk lx: ~z Új rekordokat a h.1uér.u;btbázis tiblij:l.b:>. AImkor
a felhaszn:i16 megadja:lz adalokat, a OetailsVkw vezérl6 hozzjrendeli azokat
az adatforr.is--vezérl6 megfelel6 p~l"J.méterehez, majd meghj~"j.1 u adatforrás-vez&\6
besZÚTÓ paranwt (Inaertca.and).

Adatok töriése • DElETE utasftás••1


A DELETE Ulasít:i5 ;Iltaklnos fonn~;a a következő:
DELE'U I'II(;M 'l'lÍblaNév
WIlERE ""....eF.. l t4t .. l

A WHERE zár.lClH nem köcelcz6, de szinte mindig szüksl'g van ci, men a DELETE uta-
sítis mlno:k,n rekordot töröl a Tlbl&Név t:lblából, am, nK"gfcleJ a WHERE zjradékrok,
ezl-n ha ezt a zir.u:ll'kot k,hagyjuk, a t~b!a valamennyi rekorclj~ kő:ldé v:1lik

A DELETE utasítassal u.onban egyszerre többnyire egrellen rekordot ~k!Unk törölni


Az Sql04tll.Source vezérl6 k6dj:iban lev6 OI!leteCoaDBnd például egr olyan WIlERE
úradékkal renclclke1.ik. amely a Books tábla cl5ódJeges kulcs oS"Llopán, a IloQklD-n
ala pul. (Az els6clJegl'li kulcs oszlop az, ami egyedileg azonosítja a tibia sorai!.)

DELETE !'IIOM lllooka)


WHEIIE lllooklD) ~BoklD

Egyes l'SeleldJen lazítani szcretnl'nk a WHE:RE fcltéleltn, hogy a DELETE utasítlssaltöbb


rekordOltörölhessilnk. ""lcUul ha az ÖS!<a'li '2OO5-ben k.i3c1otl könyvet törölni s"Lt'fCtn(-nk.
en az U\a5itá51 ha5Ználhatjuk,

DELETE fROM [SOOkal


W\fERE 'teuPubll, ':d 2005

_o.
Ez:v; utasítis lehe!. hogy egyeden könyvet
az~. Az
!lern töröl. leher. hogy eg)'CI, kett6t, I'agy
eredmény attól fligg, m~)"en énekek ~lcrcpelnek a vellrPubl iahood

Adatok ""ri<osztése az UPOATE utasltá".1


Az lJPDATE utasítás l&ero soruk eMk<'nek megv:ihoWltás.ára sw!~1. Az utJsftásnak
megadhatjuk, me1r OIlzlopokat nul)'Cn (-nékre szen."\nl-nk m6d0síl:ini, a frissíll-s
hat6köré1 ug}':1nu.gy egy WHEIIE Zkddék adp meg. mint a DI!LE'I'E ut:lSitis es<.-teben.
Az UPDATE utasítás tehát ~íthal egy<:den ~ (leggyakrdtmn igy l=~l",k), de
cgy rekordhalmazt is,
Az UPDATE ulas1t.h ~1!JI~n05 fOJm~ia 3 következ<'l:
UPDATE Tilt>I"N<!Iv SET
0.."1",,1 • o..%l""lilrték.,
oul0p2 - )ul"'f'li1rt<!lk.,

OUl""N " Os1!lopNtrc<!lk.,


WIJERE ...ller"l'eH<!Itel

Az UPDATE Tilbl"N<!Iv SET ré<z ut1n köwlke~ő o:'>7Jop.- 6; enékHsta adja meg. hogy
melyoszlopokat milyen értékre kell módosítani. A ",llereF'eü<!ltel hat1rozza meg.
mely $(>n)kra Von.11kozik a módosh:ís; h~ a WHEIIE zjradékot elhagyjuk, a frillí[(,s
a OELETE utaSÍI~shoz hasonloon a tábla ÖMze5 rekordj:ll érinti.

A 16.1. ""Ida~, sorl\Y.J.n szerepl/5 IJpdateCOftUand cgyetk'l'l rekord ÖMZ"" oszlopjn:.k


énC,kl'!. (ri",;iu 3 BookR t~blMxm. kiv'::",e az aUlomalikus $Or.;zjmoz:bú oszlopo!:
1800hl SET
1l1'llA'l'E
[Title] = 'Tit I",
IAutoorl ~ (lMthor.
[YearPllbliahe6] • IIY". rPubl iabe<!.
IPd~ .. ] • erde,..
[~ . tR@adOnl • (lLastReadOn,
]PaQ"ocountl " lilPa~ecounl
WHEFr [BooklD) lBooklD

A WHERE zjradék az eslIXllcges kulcs o:szlopon alapul, wgyis az UI.'l$Ítás aZ adnb:izisclbla


egyf'llen rekord~L ,n6do:;ítja.

Eddig 111.11' lálluk, hogyan á llíthaljuk be:u SqIDaI:lSource vezérlŐI il \'3rlzsl61xm


az INSERT. UPDATE (os OELETE Ulasíllsok l~rchoz:is!ira, b rövid ~tt"kHllést kapcunk
a kapool6dó SQl-ul3Síl:!..sokróL K<:57.en ~lIunk 31'l11. hogy bcillít5Unk egy ,,-ebes
adm..::zérl61 az ad1tok bes7.úr:lso1ra. fm.sílkére <:5 lörlbére, A kö,-.":k,,ző részben
n[ néUiik meg, hogy:ln szerl<eszthetilnk é; tÖfÖlhetiLnk adatokat a GridView ,"e:tMő
St"giL~gévc::l. el;( kffi-.,,:(Sen pt:dig >zI tanuljuk meg, hogy::tn srurhatunk be adatokal
~ Detail5View velérlő h3..mál3t!inL

Adatok szerkesztése és törlése


a GridView vezérlő segftségével
Az adatok meg,i el=ítést'n k1o.1lla GridView "ezérlő arrA is alkalnus. hogy a megjelenítffi
ada~okat nerl<es.s7.lIk vagy Iörölj(lk. Ehl'K'z a GridVit'W-I egy olyan adatfoml... \'e7krl6höz
kell kÖlnunk. amelynek I.Jt>d.o;tecomoarul k Deletec~n6 parnnc:s:t is \!:In. EzdCel
a par~nc:soK:ot azonban:l.1. SqIl)ataSource veHr/6 V::lr:lzslöja alllom:nikus:m l~rehou..
::I ~nlunkra, amikor els6dkoge.. kulcC5'd n:ndclke7.6 adalbázisL;íblából olvasunk ki
adatokal.
IH 9' ( 381

'" bpozásl~ é:. rn>de~"Sh~1 h3",JonIó:I.n ahhoz. hogy:. GridVle... ~ :oJk:dll1lU$l leg)llk
az adJlok szerkeszt6itre b l~ 1>, nak egy ~1 ken bebpciOlnunk
:. \-e1.ér\c'l okos ctmk~'ben, A l"'rlb e<.cI.eben t"nyles <::<:Ik enn)'1f6I van SZÓ, de ~ w......
k~.Iés ",ár mis!6;zta. ll. GriJ\lew hagy nemi klvJnnl'-;l16f non ll. ttren. hogy miként
kq:oelJ le ~ 5Zefkesztés aJ:m <illó "'-'ft, Aminl knni fogjuk lu nan csup:\n at:.pvet6 ~d.llJe.
,'n~h kl)\'Clelmh1}'tt~ :Ilhmnk fd, \'lI~úLeg meg k~1J mondanunk ll. Gnd\~_ ,,-w-
l6ncl<, hogy miktrv. houa létre" P:eri<=hetó ~t. Ennek mo:g>-..Jn.iúsit" fe;e~
kb61:o9)[. A UL' heUJIJ fo/JJ1ct /(SI'('Ua#:ttúa és (,l jriss!1éJI JZtlbáJlo\ocfmíl" ~
U'1O'lII)Uk

,", Io:dtl-$)en" s.zerkes>:t~ él. a \örlést két Inlkln febdJlki.'nl kere/jUk. de :;cm",i ak.:.d.dp,
II<~' oIpn r:lOiné7.eI:~'1 ktS1.it....unk. ~mc!}"nek arutJI ~e;ZlhClo5k ts törölht.1ők i~; csak
kÖ\'dnOnk kell a tőr!6re ~ ~ ,zt... ke\.l'Jesre von:Hkozó k.~kCl cgyelkn Grld\'lew·ra
\'OO:Ilkozó:m,

Adatok t _ k engeCIéIY.mS. • felhasználóknak


It. GnJ\"~ \ezérl6t tciw bcll!ilh:lllUk úgy, 00g)' 11 fcllIa5ználók ..... k lIlblOk 1000bét IS
~n.gedé/)'eue, mégpc<.hll cgyS.le1"Je qy rekordot II törlé5/ megenge&.'5 r.icsntzcthen
elO' Delele gorlloolw VJH)' hlV"Jtko1.bolw I,HUlma:w me7.6t tal:llunk. Ahhoz, holO'
~gy adott ~ lÖröljOnk. D:lk II sor Delete gonlbJ.ir~ kell katllfllllnunk. A gC>llllJD
k:lnJnw ut~n lIZ ASP,NIT 01<1:01 viss.zac:salolio;l kezdoemo.:"Tl)Tz. m;l.to:!" Grld\"1CW feltölti
ll. megfelelő tnékekkc! az lIdJlfomis--\'ezeri6 póll"llmáeml. ~ meghívja az ad:otfomi~
\'~~ Dld .. teC"""",,,nd póI,..,ncs;lI, It. póll"llnc5 ki:ldis:lr utin ~ GridV~' Úl"" 1uoI\'lIS-Sa
k tilrll mcgre!eniu n lIlbiok;u az adaúorr.is-vel,(T!6b.'!$. A fclJ.:;oS>;n.1]ó rrundebbo5t C$lk
ann~'11 W, hogy" Dekle som9..,.. k~l1ml\";I1IZ adott sor elnlnik

A (~"Tlli Onmúköd6 djoili.'i eg)'ollla$jn nem ~enI. elé" ~ abposabban ls meg\-'Iz.s..


IPln? Mic16u awnoon beleml.'liilntnk a részletekbe, k67jl';ílnk egy mOköd6k~pc!l.
törll"Sl 1TII::g..'Ilged6 r:1Oi1WZCleI: I\ezdjlik =1. hog)·ll'trehozunk egy új ASP.r.:",' oldalt
Delete& ,·)k. asp>< néven. Ammt:u kit:lWhatÓ. ~Z az oldal a Ilo ,ob tlbIJoon ta111J\;IIÓ
\';IWncnn)i könY'·et feOOrolj;l, k egy-egy De\ete gombot helyez meI\éjük. Ua az okbJI
mr.'glitog:l.ló fe\h;oszN?ó I<\rölru SlIm:tne egy kön)~ ~ wbUból. csak a kön)"'Itö.z tlrtolO
Delete gombra keD k.ut1l1t1ni:l

lU okbl ktrehozá"", UI~n tCf"\c.zO" nézetbcn hlÍuunk t.1I}' <;qllntaSource vezérIOt


~z 01<1:01,.." b illítsuk be úgy, 1K'IIl';o kki.'rdezes mmo.'n rekordol t:s oszlopo! H<lSU'
~dtOl1 ~ 800ks t.:IbI~b6I , ~ v;t F.l7.s16 pedIg álli[.'<;I el6 at J NSEI!T, UPOATE (,s OIU.ET!
ut;'~II:lsokh(),l. szük~gd ~rJncsolt;u IS. (A Use optinu5l;k coocurreney jelölool·gyzetl.1
ne k:.pcsoI!Uk be.)
tU ad.:Ilfonú bciIIítis> udn adrunk qy CndVIC"o n,mIó! n okIalhQZ. b ...btfamba-
kém atJ,uk meg:lZ im&Il f~\'eu ~I):n~'iauftt \.",~ H:a az ad!úam:st hel)'Ol'Il
;ilhtoauk br. a Cnd\-"",,· <.>kas rimkL"';-bom ">eF1nuk az Enable DeIrUng /T~
engo:dfly«~) i~öI6negrzt':t. K..apc$)/juk be Cll ~ lehet~ A2 Enabk odeung
~ bebpo;aláso fm6itJ a tCTWlŐ n<:lCICI. & mqOeIerUk a Delcte Iu\·~tkousok
meu'lje (Ibe! a 16.2. ibrát.l Gr~tuWunk - k:treho2tunk '*'"
töri6t engeddlc7.6 r..a-
""7.ctL11PróWljllk ki az okblt ~ DebuS tnL'flO ~rt Without Dd>Ilggms I""'l11oc",\,,1 Ha a
bön~ cg)" ~dott 50f Dek.1e h",ukozhjm k~tlintllnk. ~ rt:korool lürüllilk. és n -
hu.<;a! - dulnik.
~"
.~ ... __ .........
••• __ "_0
_,~-_ .. ."

-_.--
•• • 4
-'"""'.! • •• •....
---
--"- _ - - - . ~-

----_-. --- -
-e ----- • • • •
• •


.... -

• •• - - ----
...• '

--
--
-.- - _ ....... i ,,· Iii.
.~ (..ridt·i<~,'
mAr II I6rl.!sIIS
1" >nC(I<I1}n

A Delete mező abpjU~potb:an .Dele«:· fdir<llu 1"\70tkoúsoll: O$ZIop:tként jelenik meg


A rMZŐ azonban t~IÓO meg',-lltomthalfuk a tu\"tkazáoJ ~~. '''SY h;'""3I'
kQZ:,ks heI)"e\l gombol: '''SY k~ ,.,Ieníthetünk meg. Ebhe2 keressok meg a Gnd\,""
ok05 dl\lk~;t:br" az Edll CoIumns hi\-alkw..:i.M, hogy megnpsliuk a Ftekb ptrl;>e;;~"<J­
abbkOll (lhd a 163_ Mril).

A bal alsó s:.rokban tal~ljuk 3 rlcsb:l.n ffieg)elenite11 me:t6k li$lpt. A Bo, '~ID. TI t l e,
Author Slb, OSllopokat megreleniU5 Uoun&idd (kJpc'iolt meZŐ) tipus" mer.ökön kí\'OI
t.1111unk ,ll 1:8)' DeIe1c nC\'II p"f'\no>.neUlt (Commaoo f ield) is. amelyet ~ fejlent6kOr-
nj'czeI ~u\()JJUtikusan:t \"ezérl6hö z ad .• mikor hekapcsoljuk az Enable 0ek1m8 jelölő­
~"lc:tet a GfKl\1ew okas cimkl:jj!ben,

lb kt!döljlik ~ Ddete pólfancsmc.oz6l; ~ bal abó sarokban. mqgdennek ~nn;lk tulajdon·


s.lgai a jobb okblon. Az Appe;lrlll"la'.-ez el56 tulajdonsiga a Bu ttQDType I-tJOIlIbt,pu~),
eZ h:lUrou:. meg a Delete mező n-.quc:Ic,1bt1 Jelcnkg az abpblelmezeu Link
(hi\'3Ikoti$) &ta"", ill, elM a nK'z6ben hi\.."tko:thük I;ithat6k. A rubjdon$:lgot
But tOl> (gomb) '708)" r..ge (kt'-p) &t~kre "o6cIa$ithat;uk
.--
mo_
.~ -
.- . - "

.-
~::.
ll' ... "'

- ""
,
'

- --
,"
.

\J ...--
__.. _..........
_,,,,

r......... " r •
16.3."
[<W-J[ '._ tU !,WbIe Dr*I'''I;ri6I61J1i&yv:1
~ , 't'cdttrr:d lIII0' ~_11
poml/Ul SI <..mlrtltjel

lb a gombtipus Linll: , .. ~- Nt ton. a tu",tkoz:ols \otg)" gOrOO ft:!ir,u:ÍI a n.l.teText


tu""jdons;1.gb;rn módosithatJ\lk lla kepet haszn1lunk ..l r.o.let:er..>geUrl tub~gban
adll:lljuk meg ann.:lk a képnek a:t l 'Rt-jét. "mely..... ,nt'g ~rcménk jelenilCfU

A 16.4 1bcln Iltll:lt)uk. hogyom f~ a ráa;ntZd a VISual Web I)eo.-doper Ift."e1.<'l


ntwd>en, miutin a Dclete mt'Z6t (Igy 1lli1ottuk!xo. hogy gomhobt ,,*"i~'CI'l ~
a .[klde Book" ( KOn)'v Wf1~) .uo.'~.

"'.. .... .-.._------


. __
", __ , ....... ,~ . u.·_·
......
.

i
* •• '. . '-311>1 . . .·' ...
16.4.Mn
...... tI _ . . . . ...
...... I _ , . _ .... A nia "'I.....

l!~~~~:~~:~:*~~.~__~:.~.~~:: ;u_:__:__-".1
sombAon "10" ~
800It JitI"..",
~ /(lIA/u "It

A Oek!t, mIIllI m&gjeleMse _ háttéfslint. betúdpuu, ~tAsil stb. - I FitIds


~lIbIak SIyIe r'Sléban található tlMjdonúgok.kal tovább fioomlthat6.
A GridV_ VeZ6!I6 lll8l6Qk testrewb"6róI. 15. ~1Mn beSáItíri.
részle. Lhen.
A töriés beIS6 mlIkiidése
Dc m' is lÖltfnik >':l16jM>an, amikor a fe-lhasmi16 a Delet.. gombrJ kattint? A felhaszrcll6
anny'l !:il, hogy az old:!l felvillan, ~ a rekord. amelynek tör16 gombj:i"" kmintou.
eltúnik Dc Illi z:.jhk a ~nf:d"k mögött?

Amikor a felhasr.ná16 a Delete goIl,\)rJ bninl. ~i=acsaloláSl"J kerül ~_ Ekkor a Grid-


VIeW'~ észJell. hogy az egyik sor Delete goml>j:irJ kauimouak. és ,-ila!;7.keppen
ki1ri.ltj:l a RowDelf'ting e;eményt. A GridV.ew ez UI~n fogja a sort egyedileg aZOI'IOSíl6
'!'n'!'k~ (3 BookID '!'nHéÜ. a~ ad:!úorris-vezér\6 <Deh.teParameterB> eleml:nek
'BookIO par:lJnketéhez rendeli azt. maid megh''1'l a OeleteCOIIIDIlfId parancsot.
Az ad:!tforris-vezk16 eZl követ6en kiadja a D!':LETE ulasic:\st az OlduNzisnak. behd}"~·tt.....
sitve a iBookID paraméter fn.':;kk. A GrXl\"oew. miuún az aooúllIl"'1s-vczéTh:'ín h'1l.~ZI(l1
t6r6he a rekordot, ki~ltj:l a RowDeleted cscml'fl)-t.

Ha progrill!lOOkban m6d0sÍliIIIÍ Sl8relllénk a törlési folyilmiltot. 9Saménykezelőt


Ilolhau.,k létra a RO"'Oelet in\j ás ROWDeI eted eseményekhez. A RowOel et ing
esernínykerel6jét példái! am hasmátlatjuk, hogy a programból YisSlilVOOjuk
a tO!lést Ha IlleIhaslnliló például egy otyan könyvet WIreIne tiiriilni, Im&lyoek
a Wll'lIlje Scott Mitchell, ~ megak&détyOlhetluk a törlés\. Al. ÓfII rigén ~lható
gyakorlatok lehetőséget adnak arra, hogy gyakowhok a törlés progranmott
visslavombát.

Tegyük fel például, hogy 3 felhaS2nál6 betölti a DeleteBook.d!lpX olOOI!. &s


a The Nr""be,-címü könyv [)etete- gombjára kattint. 12 visszacs:l!oUst indít el, 6;
a GriúVk'w \lezM6 bzl(.~i, hogya ham13dik sor Dek1e gomhJ!ira kanintOlt~k.
A vez~rl<'l ez utin meg~lJ;lpilja, hogy a harmadik sor awnos1tója (BookIP) .3. ez1
aZ ~rtékel hoz~rendeli a how kapcsoll ad;uforr'<s·v.,zérl6 91loo~ID par:nnéteréhez,
ma;cl megh1vja" DIIleteCOIIIMnd parancsot. Az aootforr.b.. vezérl6 be-hclyettesíti
a 3 M,!,ket a iBookto JYdraméler helyére 3 DEL"E u!asítii.b:m, &S:l kö ....'Ikez6
Ulasíl:i5t küldi el n adatbázisnak,

DELET!: I'ROH [8001<&I


WHERE lBookIOt 3

Ez lermészetesen a The Numbercímü könyvet lOrIi az ad:ubazisb6l.

A fenli u1asitás "~grehajtisa uc:\n a Gri<lView úira kioh....ssa aZ arutokat al adatfomi ..


velérl~b6L MivellIlOSl rn:ir csak nt,g)' könyv >':ln, 3 dcsn~letben csak négy sor
jelenik meg, igy" felhasw~16 csak n<'gy kooy\"e!.lát a 8001< .. úbljban.

Felmerillhet a kérdés, hogy honrt:1n n'dj::l a Grid\ie\\' V(.~, hogy 3 harmadik sor
egyedi azonosílója J. Nos, a GridVK,"" vez&16nck v~n esl' O<>UKeyN=e1l neI-"IJ tulajdon-
.\.iga, ameire! II hazzj bpcroll arutfOll"ás el.MSdl~ kult;" oszlopá"..k (os-dopainak)
nevére :1llíth.atunk. Ha eZl II lubjdons:lgot bdlJitjUk. a Gnd\~.ew ve-zér16 automatikusan
nyomon köo.'ftl!!Undm,.". ~ ~ 05Zlopbdi én':k<:l. Amikor~' 3d1U<Jr1'b.
ve1ht6c kötünk egy Glid'"ew vezérl6höl., el. a tubjdonsjg aUlorrtltikusan:ll. ,,,Llúorr.l~
ven:ri6 által VÍ$5Z3.3dou d!l6dlege kulcs oszlop en';k~ 1uP!" (N~k meg ~ Gri<J\';~......
Propenies ablalclt: 1áth:.t11uk, hogy ~ OItUl'<ey_ , tul~,.Jon>Jg tnéke 8ooklO,)

tM!yeges, hogy GndV_ OIttaKeyN......· ~ tartan.m. I hittilrllln lrI6


.datbBzistMIII Ms6tys bb ~ Ha I ~Idg Wtékll ~ I o.te
gombIe UttflM ..... llIIC. .\I:II6$ra $of keN, dl. rekord nem lOri05dik. Ha. o.ü
~ uttJnllri. " II OICIaI VihOZatIM mnd. gy6z6djilrt meg r6II. hogy
I DIIt .. l<.eyN..... IlAIJdons'goI beMitottt.t.

Szer1<oszthet6 nlcsnézot létnohoms.


II 10t\l$ mcllett:l. Grid\~rw ~e~ atr:l is k<'pe$. hogy ~z ad:I1Ok::i1 szerkeszlhetőo,'c teg)'e
~ felhoasmil6knak. Ib ~ GridV;e....'-ban bdcop<XllJUk:l. ,szerlu::5'nb timog;oú:!.;il, nunden
JO'ba ~ Edd (Szerl<e5ZIes) fdullfÚ gomb kerül, lia a r~16 az Edit gornhra k.oltint,
:ll. adon,.". su,IIes:uIu'wuj\-;lhJc. .mti azt;elmli, hogy :l.l:Ipfndmezés $Hrinl a $Zft\(e5ZI'
hel6 meuSí ~vegme~k ... \'oiluwu.k,:ll. Edil hel>'lTC pro.g kél új gomb - {'pdate
( F'lÍ>.Sitbl és Can<:el (..\I~) - kertll 1\ fclhasmáló e7.Utln úl énékekd IrtJat a rekord
~egmez6ibe, és az Update gomhra kanintVlI mentheti a rn6dosítlsolc~t, ""gy a ('''''nI.<.'I
gombol: \'lilasztva ~ \'alto=d!<>k !l1<.'1It<:se !létkai \'~t&l1(1 a r.ks szerII~és d6tti
~Ibpoúhoz. 1\ 16,6. ihdn I.llh:njuk, hogyan fest egy ~lCI6 Grid\'icw a ~
sz&en, :undyben a felhaszrúl6 a m:i5odlk sor Edit lIoml.t:I kattintoa.

1\ szerio:esnheu1 ticsnéuu:k ..... reboz1sj,n:l.k lépbei igen h:Isonlóak a töribl ÚlnOg;Itó


~zelek lareoozásohuk 1épe.c1he~

l. Adjunk~' Sqll)a~rce vezérl6t az IISP,'\"1:.T oldalllOZ, és ;1illif-SUk be úgy.


hogy lareho= al IN~EII'r, UPOATI;; és DE:LETE 1XIr:1r1C5Ok3t is,
2. AdjlInk egy GridVie-w vezM&;:lZ oldalhoz, & kÖ$60k houJ az l l~len
fd,'eu ~datfOl'T"h-vezérl6!
3. A Gtidyie-w okOli dmk~1ében k3p<Xl1juk be:l.1. I'n:l.hle Ediung (Szerl<ewé
engedél)"f!'~) fekllőnqo'zeld

Mh .sz.a\-ak.kal, az ~-eden kOlOOl .....q; n. hojn':ll. Eru.hle l)eleting hd)-en az ENble


Edltmg ,elöl6ntg}'zctet kell bekOlf'C"iOlnunk Ub oI)"n '<Zerit:<:>nhet6 tiClllÍ"zetet szerel·
~ 1~ll.'hozni, :l.mely ~ törtbt l~ Wmog;ltp, mmdktt ,eltll6rqyretet bekapaolhatruk,)

1l:ir a SW'k=,;s bmog;olt:i!.;il1;lk bek:l~..a I!1eWchet'-""'n egyszcrtl, a GridVicw


~la~l1e1meZetI szerl<ent6 fel(1lC1éf! v:W6szjmlleg fUlOmit.;ll'li szeremenL <;ze-rt'nC$t"re
ez is visZonrlag köno)"Ü, b:l. Grid\'on.· nW WlIIPJt;IÚ .... IOOz haoonló:l.n m'ldszennl
a~kűl valósítható meg, hog)' ellyeden sorTl}i k6dut ~. frnullk keUene
\bd6u "wnlxon bdrmmIlnenk " Grid\ 'k>\' .w:rkeszt6 fdíllo:«:nek t~bb;ob3.
cl&zór g)'~koroIjuk" ~eszthet6 ~z..Idc ~~l Kezdjílk :uzaI. hogy
l~",hozunk egy uj okblt Edit.!k>ok..... px n,~·.. en. és '~JlJUk" lein. l11rom rent
1~, >.tJWn bebpc$Oltuk:oz ENbIc EdJuns jdOI60tg)"zeu.'1" GridVocw ~.l&l6 oko.;;
chnkéjébeJJ. "Visual Web Drvrioper ten'ez(! ntzet&en meg ken ;l:Iennie u Edit
me~k (u.,d" 16.5 . .ilrlt)


••

,•
OJ

... ---, ---


_ _ ... '

,
I "" "".....
11.5. ":Ira
At' E>UJbk EdIli"IJi<*'MnCgj'UI bL~"fll~' EJ" ,,,,nl ptlmnalJH'%lÓl .""",.

Exen " ponton ldúl ~lkelÜnk tg)' sz..:TkeszthcI6 Gnd\'"teW ve~·el. amdrl.'l
ki is probIo1h:otunk" OOhgéu:6nkben. Uthatjuk. hog)' II r.ks nunden .sur.Ib3n ''JIn
egy EdIt rdJ"'rú hiv:llkozh. lIme1yne btt,ntv;I:OZ lIdott 50ft szerk<'Sllhel:&.é trnetjOk
A v~dllll5ZlUl6 ezut<in Úl tTtékcket ut"'l a szcrke.zthet6 mez&be. és az l'pd:ue
hl\'lllkozh,.~ k..tlinl\-1I menllJet, a rn6do6iWolt:1I (Wd a 16.6, "bdt),

y_ _ o, ... _-
, _ _ _;_
c....
-
- ......
_

-- -,_ ... ,.•


y

'.
Y • ~-
""~
~~
... .--
~
_.-- .---
- ~

M
J_,,_....
--~
I'<


11.6. "
AfoJluuntdJ6 fl _' ......'1wI6 r6CS>OIUf _ _/tt.oorn, DII'nIM ..,.,' ............1
NIOrr/ • törIHMI, iJ9V II Idatok ~ IS 6Mnyes, hogy I GndY_
oe.t",l(eyN_n tuIa,dor'rsigMlan mII9 keI"'lllKbI~ ~
kulcs OSZIOPM vllOV oszlopM. Ha ezt nem tesszük mtg. • SZ8rteszthet6 relordok
m6d0sítisai nem ketülnek Mil adatIWisba. Ha I GridV;ew b6ngisl6ben való
~Kakor ert tlpa~ pKIoskodjunk ról-. hogy I D!l.t"I(.-y_.
h.UjdOOS6g bÚIIdISI megfeIeI6 legyen.
A SZ8!USlIIWt~ aorok ~ beírhlt6 ~ formibmit IllldltbiZlsüllll
meg' I 16 eCIIttiIlUU lIIt6rOm m.g. A r..atR"II<.Oo ... menS miigött ~
eCIMb4l!SbeIj 0NI0p.t.ttlpuu ~ det"tl -., dr! hl ~fslor ~
iMnYteIIn M6tet Pr6IMt.ri; beIefmi. IlWlII • Yesl8fM(' (tegMp), II update
gornbnJ kettJntHkor kMlttlt kiplri..
lliI&Z ~, ha 110'( rn&Z6 nem fogadja II • NIl Mébket, vagy llapfitelmlNn
tlrtébt határoztunk meQ hold, mindenképpen bele kell !munk valamifven ok1ét;el
P'ldánlb.. ~ art jMmi, hogy ha ~ tÖföljijk I TI t l .. rn&Z6 tertllimil ..
~ pr6W!il* • módosftásl, kiWtel "" III.
A uerkeuf6 fe/ij« 11ISfraS.l.tMs.!i és I hwkhl UabMYO« cm:i mm.n l6tnI
fOg,U:, hogpn~mIIIl~t6~ mW6DIt ~
t .'1h..,,, III
il, hoqv mik6m lIIIiatlDt hnn6jIt .1.
ro5n6 ~ ~
biztosltha~ hogy I meZ6bI !TlIldInUPPIn keriiji!I'! VIIemiVen ~ iIftW II
Mék rnegleIaIjen • megklvMt ~.

A GridV_ verif16 fdi. mel6jánek kin6zete ugyM!ÍOV .estreuabll&tó, mwrt. Oelete


mem, vlI\IYIS II Edit hivatkozást gornbb6 v'll'f k'w' v6ltoztllthaljuk. vallIlOOt fll6do..
SithatIl* • hivatkozá vagy gomb 11IIm6t.. Ao... nWU6VeI rnegegYV6In IZ Edit
~ be4IitiAd IS • f .... ~.. w ... bIn ICI\MJI* meg. ..-...y.t I GnN_
olas cín*6j6bIn U!IMJhItÓ Edit COUnnS ~ kItII"1MI ~ el.

A szer1<0szt6 felület tBstreszabása és • friss~ési SZabáIYOI<


1'T6b:lljuk rnoost ki a uerke5Z1.het6 GridVIe\\ vezM6nkctll'róWlj\lnk különféle Mtkeket
íml u egyes mez6kbe. ilLetve h:lgyjunk üresen ~ nwl:Óket, hogy 115.;uk, ml történik.
\"~lbizInaJeg hamar djOl'ünk, hogy elég könn~ kivetellel tllílh:l1JUk IRIgunkat szembe,
amikor memm prób1Ijuk.;ll ~eSZlhel:6 ~ '-qpeh3j1on llIóclositi....,..
~ h:l üresen h:lgyunk egy kölde1.ően döhe0d6 rnC:Zt.1I Camll}= p&UuJ a -rIt l"
\':Igy az ""ther), ''liS}' ha hel)1den formitumú értt'kec írunk be (p&Uul a .hose;zU" SP
a PageCount mallbeJ. A 16.7. ilbr~n láth:l.ljuk wuokJah lll: InIemel ~.
~mely .. kkor ;et...'fIik nlC8. ha a l'lsum StudiO l/rocc clm(J könyv r..stRelldOn ~~
°V"n'lrdayo_re p~lj\lk 11!otanL

A k;v~eI feU~k 00 u_ 00gY a Grid\""", vakun ~tadja a végfelhaszn.il6tól kapolt


&lad az adatI"orrh-\"ezérl6nek. éli allllkor:lZ megk~i ~jt:oni az UPDATE
uta.si1l5l lll: w,bb.sh"" a helyleIen \lag)' hiiIn}"ZÓ tné-kekkd.:IZ adatbcb.1$ k... ~eb ";;ill
kl- ell UlhatJUk ~ 16.7. j!rin
........
l~ ___ "

o ... · j
- _..
.. ~

~.i1:;./-
.. " .• _""._,~ •.• , _ _

---0
"",,._~. __ .....


• -
Servar Error Ir 'jChaptllr 1f' AppIi<:.lrtOl,.L

...
_. _-_._...- .._. _---_.. _----
nr. OIrIrtjj .... not _~rnd v~td DoMToM n..n;o ~ ~n~"" ..n _

------_
""''''II
--_._---"
M IlKI." o.

_.- ...__. -"---'-' _~._-

--_.,_ .. ..
_ _ _ _ _ _ .... _' .. ,.. 0_'_ 0' , ..
___ ._....... __ - ..... -.0--" .-" ... _,.. ...
_ OM _ ._.
16.7. "
IrclJWlen
~
,_~
1/,.
, fo,.",,,,,,m,' érr~"'"
prób<Jlunlo b"."wl
<J fAjtRrt140n
"'ezó!tr, JritWdI
1""{If"'*
lia meg szeretnénk ~Imdi!yozn; 3Z iI~'en hib:ikat, telilre kelJ szabnunk 3 Crid\íew ál!:ll
IétrehoZOlI szerkeszu'l felületet A GridV.ew ,-eZér!6 minden mez6 kódjának lew=·
bru;ál megeng.-di. A Title, Au thor, Ye.o.rl'ublished. Price é!; paoeCount nle7,ókhtn
p('ldiuJ d'lszera egy RequiredFieJd\ 'alidalor veZérl61 rendelnünk, amely gondoskodik
róla. hogy a felJ\3SUtil6 nundenképpen megadjan valamilyen értéket. a Price.
t.luHReadOn, y""rPubl iehed b P"!j'eCOUIlt mcz6khöz pedig egy Compare\·alid:uor
\'ezérIŐl, amely bjztOO5ílja. hogy a mezőbe mcgfelel6 adattípusú futék kerOJjön, ~minek
esetleg az értéklartOtnány<lt is megh"táro1.haljuk (p('ldiul h~ azt szcreménk. hogy
a Price mez6be beín énék soha ne legyen kisebb o--n:l.l).

A szerl<eszr.hető mezők fel(llet;;nek lesr:resab:iSOl meUetl arr.a is s.:ükségiink lehet, hogy


fclellÜk. ha egy .. =:6nem szerkeszthet6. 1\ 16.6. ~bcln pé1dlullllh~ljuk. hogy szericesz-
lo!skor a BooklD mezŐ énéke nem m6d0sílh:llú szöveg rTl:U3d. A Cri<MeY.' vezér16az el-
s6dk-ges kulai oszIopc:>kllt aUlom:uikusrn csall oI,!U$Iu;/roni teszi, miv,,", ezek azono:silj:ik
egyedileg a szericesll6 alau álló Mlrt. Mis meWk csak oI\"ashatÓ\--:l. létele il; egj-·5zenl.
péld:lull\3 azt s.:e/ctm:nk. hogy a felha)"Znál6k ne v:lkozl:uhaSl;ák meg a kön)'\'ek címé!.

Végül, 3 Crid\'iew arr.a i5 bizlOO5íl hcillilá5okat. hogy fcleuük. mil}"en formiban kell
elküldeni a felhasználó ~ltaI bein adatokat az adalb11.1Snak. Például ha a felhaszn:\.ló
ÜTe!;Cn hagy egy karakter\~TK típu~ meZŐ! (amilyen a Title ' .. gy az Author).
az "dalb:izis rekordi~nak frissítésekor l\'uU értéket vagy 0= karakterbinool:
kelJ hllszn:\.[ni? Ezekd II hcilJít:isokat is a Fields pi,bes~édablaklx," adhaljuk meg.

II következŐ részekben a szerkesztő felület t=et;zab!lsának feni emlilet! vonatkoú-


sai\'al, i!1el\le az adal~Z,s frissítés; szabál}'ainak meghatátoúsá,.. l foglalkozunk
I'"

Abpállapotbcln a GridYiew ~'1l olyan mez6io:', ~meJy ~ Iduérben 1=6 atbtbizisclbb


dI;6dIeges!wb CNIopifl:l.k fdel oq. C$lk OI\~. Amikor,. f~16 egy sor Edn
gornbj;tra ""ttJnI..,.
csak oM5Ilal6 mezók lO\'lbbr.l i> nem s=il:esztItet6 5ZIÖ'o'egkénl
jelennek nq. (Pekbk6v. nb.zük nq,. Be ~IllD """lŐ{ II 16.6. ~brin.)

Tovább. mez6kd '-' megjelölllCtOnk CSlk oI",..sIul6k~! C5;1k annrit kdllc!nnunk. hogy
a Fields plrbesz&bblakban ki,.,Jöljilk a ki~nt mez61, hogy \x:1ö1tsilk ~ lul~~fPit
,. jobb okbJn. mor.;d a 1l.~hav;c.-("isoI.'lk«li'!l) ,obzbc:lI rnegk~k a il_dC Ily niliIt-
donsáp. él Tr, "..r:a :illitjuk (11<!d a 16.8. oIbcl.t).

"Nr'I'.
..
--...---a;:
'.....
--
.- ----
".

,-
ill ..... ,

'.oL l - •
, -----"'--"'-_#"
-
[-- ... - ( -..." •
16.1.1itn
If.. Il Rcado..I)' lultJ"""""ifloI
Tn .... ,... Milj"•. a lPHI%d"
,,,,,,, lesz ~11tt'fŐ

Enn)i az egbz. "'n\lkor egy mez6t C5;1k oo.-ashatókénl ",Iölunk meg, a !lOt' &lii ~rn
karuruVöl :o me~ ntm szerkesztlk'l6 ~~ je'IenilC rtlqI

AJ.. eI6Z6 6r.I.oon ~IIUk, 00gY:m forrtúUl3t]uk a GndYIC90 ,'eZ.éM melOil. ~ld;íul a price
meZÓl pénUTtéldtm, a lasIRo:adOn mez61 pedig diorumként, id6pont nNkill A GOO\ie'l':
mez6ire alblmazou ~ abpértelrnezCs ~ , _ &\'.;nyesülnck az alapétcl-
mczect szerkCSl:l~ fdiJ~
Ennek sv:rnItiI....6cre fornV.zzuk a pnce ts a LutReadOn
mezóc a pénznem és a dlrum formiw IwnkterLincávJI. az aUbbi Iépeso..-kd kÖ\'et\'~

1. )l;yiS5Uk nIC8 a Fields plrbe<redabbk<x a Gnd\lew okOl! ci11lk~n k"\'6


Edit CoIumns hi\';ukozoisr:.l kJruntn
2. A 1flC'l6k b:lI 3lsó 5:oro!Cb;;m uUlh.ló 1i!iI..:1j:1b:ulIu.U)n~nk ~ megfelelo5 mezőre
J. Mmdk<'t mező eset<'ben állílSUk a Ht:alf:ncoo., tulajdonsJ.got F~1tI"-r:l,
~ D<ltafoVTllltS trin61 tubjdon5:ig pedig a Price öelében legyen IO:el,
a LastReadQn esct8x>n pedig (O:d).

A [.,nú ~jllil1isok megadisa ul:1n a Visual W~i> JX-,.·clopcr lervező Iltzet{~n megfe-
lelően formholI mezőket kell l:irnunk. M06I IltUilk meg ~z oIddl a böng&.z6nkben,
é kauinl5unk ~Z egyik sor Edil gombpm (I~sd a 16.9 :ibcll). Anunl I1lhalJuk.
~ f>I'"m szerkeszthető $Of"Okb'ln a Price k a La*tReadOn m<:ző formil.lsa megmar~d,
de az tppen uerkesl:lk ~lat1 ,,116 'lOfban a s:dNegmez6k e;:eket az tntkekel nem
form;i7.ou :illa[)OlUkban mutalJák.

I ta aa szeretnl:nk, hogy a formázou l:rttkek szcrkesztéikor ls mcgtarts4k a form.iz:isl.


a mező AwlyForrn.otInEditHodewlajdonsigil kell beállitanunk, amelyet szimtn
a F"oeIds ~~akt-"'n l:rhetilnk el A lul~jdonsig ala~dmel'1t értéke al'a lse,
de ha True-rn :illtljuk. a Ul-rk"''"Sl:lt."1.1 sorol< is megl:.lnjik ~ fonnllzá.s(. Mi"cI a \..astReadOn
me;:6ben CSólk a dilUlnol 5Zerelnénk I~lnl. az id6ponlOl. nem. ennek a mez6nek ~
az ApplyfonutJnEdi tMocSe lulaJdoru;ág:ll "l'rue-m állíl:munk.

........
1,~,_

--
.. _ •• _" .• ·~".
.......
. ..
_- •

-- --"
O--O .!l.iiO,-
. ~.
-
~
,
--"".. -- -- --..... .......
.- 1_ ..... ~" m

-- • -- ,,---
_.- - ••-- -- .
o-y_ ....
~ I" ..
,"' ,,, '"
"
~
k
• no.,..." .......
~~
••• ,,, .,
.~
~

• .,~.-

16.9. 6bnt

Mielöll ~zonban a Pric .. ApplyFormat.lnEditMod" lul~jdonsig31 LS .....~kon "!'ru ....,..


mező
áUí~nk. l:bredjűnk r:i, hogy ez gondot. okoU1at, men a pénll:rt&ktnt \-:116 formá~
nem megengedeu karnkterek be'..el.etésb-el pr. A pr i ce mező egy lIOOf\ey típusú ~
hoz kotpa;olódik azadatbázistiblában. amely egy száml:rt(:ket vlir. Ib a ptnz6ttkktnt
"a16 fomú~skor a fornoázó kifejez6bc 3 ptnznem jelé-! (ptIillul a doIl:ifJClet) is ~Jcfog­
IaJjuk, éi a fdlJ:lSZflil6szerkeszt6kor nem ~\"oIílp el e21 a ~leI a Price mez6b6il.
a ~ith menl&kor az ASP.NET oldal kivftelt v:IJt ki. (A r.".stReadOn mező form;izj-
s:\,,,,11l1fiC5 gond, mert az adatMZls olyan dilum&tl:kekel is kl-pes kezelni. ~mely ..knek
n időpont része hiin)I7Jk.)
16, ÓI1I • Adatok t&Iáe, betz(rig" 1Z8fOP! ' I i 1391

Null értékek és Iires karakter1áncok hasznMata

A r!Ícsn~ cg)~ mez6i alt ad:Itb:íZi$:ibl~ oIJ"ó1n ~~!opa," ru..:.puJll:Ik, ~me!yek meg-
engedik a Null énekeket l_, A L.astReadOn oszlop po!l~ul nem követeli meg egy énék
megadását ha egy könyvCI még nem olvastunk, az oszlopba Null ének is kerillhCI . Ha
a felha$Z:lá16 urest"n hagy egy mem, II GridView ve~erlö abpo!ndmeres szerin! egy
l'u1l éneket próN.J al. ada!b:íZISÚbla megfelelő oszlopában elhelyezni. EZI szemlélte-
!end6, módosil5l.mk egy ~n . .amelyben a LaotRe... <tOn mező valamilyen ditumol
t3nallTl:l~, és töröljük ezt u énék<-1 II !nez6b6I. A m6d0sít~s mentl!se ut~n nézzilk meg
31. ~da!~zist.ábl3 ada!:!.;! - ~th:ltjuk, hogy U adot! könyv LastlleaöOn oszk>p;1.oo Null
énék kerill!..

"'éha azonban arr~ Y:ln sZl1k.ség, hogy Null énék helyeit a Grid\r!<!W üres kamkler-
l~flOOI[ ha52mllJOn. Tegyük felpo!ldlul, 11Og)' a r!Ícsnézetben '-~n egy mez6nk, amely
egy nvarehar típusú oszlopon alapul , és nem engedi meg a Xull ént<kekCl.
(Emll'kezlletilnk cl, hogy az nvarehar tipusu meU'ik karokterlán<:<.>ka! tiirolnak.)
Ha a felhau.n;'i16 a liO! S7.erkes<:lésekor üresen hagyja ezt a mezőt, ki\'l:Ie11ép fel,
men az ad:nb:ízi&l~bláoon 131~lhat6 O5.lJop nem engedi meg a l'iu!l énékekCl,

A problbn!! ugy kOsWbölhCljOk ki , ha.3 GridVie .... vezérl6c arr~ u\.;l$Ítjuk, hogy Null
énék hclyt,1t ilycn esetben I1res IwmklcrllmcOl h.3szn::Ujon. (Az Ores kar:okterlanc oI}":!n
kar.\kterlllnc. amdyben nincsenek karokterek.) Ehhel. a fields ablakban
a ConvertEmptyStrinq1'oNull !ulajdon1lágot kell False-ra áll1t:1nunk,

Az automatikus szövegrnez6k cseréje egyéni SZ8It.eszt6 felületre


Amikor ..gy r:1.csn.:zetben az Edi! gombra ltaUJfllunk, alarl'nt'lmez(.,; s.zcrint minden
ilu:rke-whet6 IIlt'l6 .s.<!Ö>·..gmeu'i\·e '·"lik. El6fordulhal azonoon, hogy szerkem6 felOlCI-
ként nem stiWegmez6kC!. szereménk, ...... gy legalábbis csinosil:lnánk ra~uk, Y:'Ig)' en"n-
6n6 vezérl6ket adn:lnk hozz:ijuk. F-.... zen1lenne po!l~ul egy-.egy Requ;redFieldValidator
vezérl61: adnunk awkhoz a mez6lchöz, amelyek oty:m oszlopokon alapulnak, amelyek
nem engedik meg 3 Nun énékeket, ~ amelyekben ÜTe!l karakterl:lncot sem s~eretnklk
IlItnl. A szíim-, ilk1vC dátum/idő mez6kCl Compare\':llida!or \"ezérl6kkel én:k'mes
e1lamunk, hogy biZlO$ílSuk, hog)' a beín énekek fomúlulTI:l megfeleljen .z o,Wop
adanípus1nak.

Ahhoz, hogy egy mező szerkes:a6 felíiletl'1testreSZabh:w'Jk, BoundFit'kl (bpc.;oll


mez6) tipw;ról TcmplaleFidd(5:lbIoomeZÓ) lipusú\'á ken 3!akílanunk a mez6t, A Boond-
"ield me~6k (amelyek automatikus::m U'1r..jiirmek, amint egy adatforcls-"czérl61: kap-
ClIoIunk 3 GndV.ew Ve7b!6höZ) a howjuk tartozó adatforr.1sbeli 0$7.k>p ért{,ká ~;ma
5ZÖ\,t,'gként muuljá.k.3 nem szcrkC$t\.lI(.'16. (os $Z(j"egn!ez6kénl a szcrk=hCl611Of'01<
esetl'ben. A TC1JlplateField mezők ezzel szemben lehetóvé te\7Jk a fejleszt6knek. hogy
pontos:m mcghat~rou!k awkat ~ webe:i vez6l6ket. amelyek a szerkemhet6 bs nem
szerkesZlhet6 sorokban megjelenítik az oszlopok;lt.

A Templatel'ield y,b1o ..oJigyUlteméTlye. a sablon pedig "..-bel vererk'ik bs Slaukus


Irn.tL·k6d keveréke. öt sablon létezik; egyik ha.sm:llata sem kötclez6:

• ItemTempbu, • H~';;lderT(.'f11pI3te
• Ahem:l\ingl!emTemplale • FOOIer1'cmpbte
• EdithemTempbue

Anlikor a ries soronként kir:l.lZolódik, II sablomnez6k II sor típusa és ~Z elMtet6


sablonok szt'ru11 képez6dnek le. l ia egr i\;Iblonmc7.6 sz:'imkJ po!;ld1ul megadtuk
II Heao:k.'1'Templale (fejlécr.ablon) sablont, II meUl fejlksor:1 (.'f1nek 3 sablonnak 3 kódja
alapján k~pez6dik le. A nem szerkesZthető elemekhez az ltemTemplate (elemsabion)
bs az A[\(·tnatingllemTemplate (válukoz6elem·sablon) hasm~J:uos, 31161 függ6tm.
hogy az utóbbit meg!m.irruluk ..... iHetve hogy az adon sor pjros \':Igy pjratlan sor...,
A ~zerk""zthető ~ ""blonja az Edit[temTemp!ate (szerkcszthet6elem·sablon).
Ez most n*8 elég z:l\"olrosnak hang07Jelt. de egy I*kb ul1n segít megvilágíL'lnl 3 sablo.-
nok n1\1ködl'stt. Ahhoz 3<:01IOOn. hogy ~thassuk, hogp.n működik egy sabIo<1mez6.
d6ször létre kell hoznunk egyel. Adhatunk tel;e:s.en új sablonme~ is" r-~li~.cthez, h:l
szeretnénk, dc mivel most egy mir létező BoundFle1d sablon Uelkew6 felük1l:1 ~k:lrjok
testreszabni. csak annyi! t",zünk, hOID' a BoundField llpusú mezőket T~'1t1pl:neF",1d
!ípu5úvi alakítjuk. Ehbez ny;s,'<Uk meg a Fields pjrbc:szlidabl:tkcc, jelölj(lk kl az ~l>tlakílani
lúvlnt Boundl'~1d lÍpu5ú melÓl. és kattintsunk a Conven this fldd Inlo a Templ:neFlekl
(Alakitsa eD 3 mez6t sablonmcz6\"é) hi\':ltkozisn 3Z ablak jobb alsó =Uban. ~ tulaj·
dons:Igok alatt.

....,,---- --
--
,..... n "l<

,- " ,u· ..
JI _ _
,-
[' .....-
-- •

--...-__'-..._-,-.....-
'O' ... _ _

<a.. ." "'"'

--- ",tI.-1
16.10.~
1\ ~16 feW",
_I'Cl:WMloTIIC>Z nt6dosiu".
/1 IJOImdFieIJ m.mSIM
r""IfJIa"'F/i>Id m~
16, óra • Adatok tWu, beSZCriSI Ih taIk...." Im
Abkil.SUk nlO't a Price mez61 ~bIonmez61.x;, majd az OK gombb:d :clrjl.lk be a Fields
ablakOl, A lefVez6 nézetben .!iefnmilyen ního:clst nem (;\,unk, és lu az oklalt kipról:dljuk
~ böngés26ben. a viselk,,'(\ése is ugy~noIyall ~, mim a JnCl.6 sablolllllelÓl'é :d~kitáSll
el6u. Ennek oka az. hogy amikor egy BoundF'tdd mez61: TempLa[cfiekllÍpusö'~ alaki·
tunk, egy ké! SlIblOlU tart:llm:ll.6 sabloomez6 jrön Il!tre. Az egyik sablon az [temTe11lplate,
~mcly egy label "cztrl6b61 ill, ~ misik pedig egy EdJthcmT"",plate, amely egy TextBox
vezérl<'.ibm. A GridVlcw "czérl6 kódja' a Pr i ce mez15 sablonnlClÓI'é ~I~kf[;isa u[~n
a ,6.2. pt<1~ban Ulha'juk. (FotdílSUnk különös f.gyclmel: a 10-17. sorokl'dl)

_ ~utoGener.teColumn.o·Fal&e· OotaKeyN~s"BookID'
~, DataSourcelOo'SQlDat850urcel ' B8ckColor~'Wh{te'
_ Bord"rcolor='IDEIlFDB" BorderStyle, 'None' Bords ..... idth.·lpx·
_ C~llP .. ddi"ll=·4· ForeColor='Black' GrldLlnetor'VHtic81'>
l: <Columns>
4, <asp,c~ndFleld snowEditButton.·~e· I>
~: <asp:BoundFlel<l DaUPleld="BookID' flead .. r'I'ext.·800k tO'
_ J:nsertVi.ible=·pslse· ReadOnly' 'True'
6, SortExpreulon.·SOokID· I~
7: <UP,BoundFleld Daufleld-''I'ltle' He"deflext~'1'itl,,'
_ SortExpr""810n~'Tl t lu' I~
8, <a.p,BoundFleld DataFleld= 'Author' Heade~xt.'Aut~JOr·
_ SortExpre8Bion."Author' I~
9, <asP,BoundField DataField.·YQdrPublhh"ll·
_ lIeader'l'ext~'Publi8hM' SortExpression"YearPublhhed' l,
10, <aup,~l~tePleld He~de~xt='Price' SOttExpre88jon~'Priee'>
ll, <Bditrt~late>
12, <8~p,TextBox IO~'TextBox2' runat='aerve~'
_ 1'ext*'"U Bind(·prlc.. ", \~'></a8p'~tBax>
lJ, </l!ditltemT_late~
14, "'!t~late>
15, <a"p,Label lOo'Labe12' runu." .. erv"'r·
_ Text·'"," Bind(·prlc,,·, '(O,cl'l b'></asp,Label>
lli, </Itsr.....,late>
,7, </a8p:T~lateFleld>
18, <aSIl,BoundField oataField~'La8tReadOn' lIe"d~~xt, 'LastR .. a"""·
.. SortExpr"BBlon~'Laot Elead' ApplyFOrIMtlnBdltMOd ... ·1'ru .. •
_ DataFormatString<',(I,d)' IIt,.IEncode,·Falae· I~
19 , ""8p' lIoundField DataFIeId.' Pagecount' Head<>r'l'ext~' Pellecount •
_ SortExpreuIM~'PagU' l~
20: <IColu.n8>
21, <FooterStyle S./OckColor~'1=99· I>
22: ",RowStyl .. S./OckColor.·fF7F7DE· I~
23 , <Se l ected!!""'!:ty l e s..ckr~l ,rr' tC'i'5D5A' Font -110 l d~' True'
_ Forecolor. 'Whit,,' "
24 : <PagerStyle I18ckColor. "'F7I'7DE· F"recol 0< a 'B leck'
_ llorhontalAl III'" "1Ilght' .. >
25: <Head ... rStyle aackColor"'I6Bt <B' Font Bold1'~e'
_ Forecolor" 'White" I>
26, <Alter""Ün\lRowS~yl" BackC lor.'I<Ihlt"" I>
~7, </a.p,GrldVlew~
Megfigrelhetjiik, hogy n <Ed1t:lt.m'l'~late> (11-13. sor) k <Itern"l"~l .. te>
04-16. sor) rn7.ek egyetlen webes vezM6c unalmaznak. és ezek Text rulajdonsiga
a(/fll!lapcso/áslm kereszt{ll bp értékel. A~ adatkapcw!is fOll"llája <ti sind(o"=lepNo!!,,..,
"emk"tel"z6"FonMtll.llLe!r6") b. ér. egy adotl ().QIopbték Itio!\"~$ási", szoIg:il az
adatforr.h.. vez(-rl6b6l. Az <lt~l .. te> úgy 1\a(~rol.Z:J. me-g a benne 1....-6 Label
..ezérl6l:, hogy a Prtce oozlop ért&l:t pénzénékkem ({ O: e) fonni;w.l jelcnítse meg. az
<Editltem'l'emphte> TCXlBox \~k ~xt tuJa;dons"ga pedig a Price oszlop
61 ..kl:t kap?

A $lIblonmezők sablon,ai a !c",ezó nezetben ;S 5zerkC5Z1hct6k; ehhez a GridVlt."W


\"c7..;,16 okoo; dmkéjében 1....·6 Edi! TempIa!"" (Sablonok szerkesztése) biva!ko~s",
kelJ kanimanunk. Ekkor 3 Price n>ezl! derl\$lblonja (I1emTempl,tc) jelenik meg. de
3 lenyil6 IiSl~b61 ,msik sablom is vJ:I3snfu!unk slerkesZll:sre. A 16.11. ~bcln liI!haljuk,
hogyan fC51 a len·ez(; néZel. a Price mező elemsablonpnak szerkesztésekor.

Ha ki Slefetnénk Ié!Jni I sabIonswkeSZlő Ielúletb6l, is vissza akarunk rémi


a rácsn6ze1he.! I tervező né18tbe, ksnintsunk az End Tempi.ate Editing
lSablon SlI!fUSZIésinet belejelésel ~iv8u.ozásra az okoi c1miében
(lásd 8 16.11. éIJ"tl.

..........
• .,WiI.
_------- ... •
.,

-"'"
- 16.".6bra
JI funplmeF//'Jd sa/>ictljai ÍI"
~I,~" 'err.n 6
~-" '
nbPIlx""

figyeljük meg, hogy az elemsablon egy L4be12 azon~ít6jú (ID) label ,·eÜ'rl6t ur..
tllmaz. Ez aZ 3 címke, amelynek kódja a 16.2. példa 15. soclban ~zerepch. KaninlSUnk
erre a ,·ezérl/5rc, és vizsgjljl.lk meg a tulajdons:jgait a Propertiel ablakban. ~zrcvehCl ..
jük, hogy a Text lUlaidon~g mellett esY Im lemez;kon l:tlálhat6; el. jelzi. hogy ~ tulaj ..
don~g adatkapcsol6 kif"",zésen kereszn11 kap (,n~kel

A wabes VtI~k adatkape~ k~ejazését aDataBindings (Adatkapcsolisi


pMlemdab\akbM szefteszthetji:t, amelyet az 800n vazérló okos tfmkfjében
találilat6 Edit OataBiodings (Adathpesolatok szefteSlIése) hivallr.Olásra kaninM
éfhewnk el.
16.. ° AdMoI:;I& " , ~ " _\_, , 1395

Al, hnnTempbte dnnr61 most ,-jhsunk az EdltllcmTcmpl3le sablonr:t Ekkor egy Text·
Box '-ettrl61 kell ~lnunk, amelynek Text lubfdoru.;ig.:> melleu szim6! egy lemetikon
U!1~16:il properues abl~kIJan_ A Price mell! m:rlceszt6 felületének lelresz;lbb;iho~
'~ZZlik el :il ki"~nl m6doSllhobl az EdiUlemTempbte sablonban;

,. Teg)'Ünk egy p6unern;det :il TQl80::r '-ezerlő dt. hogy jeleZZük, holn-

a felhasWlooak nem kelj beirnia azt. Ehhez kanln15unk al Ednlt<''fIlTempbte


sablonl.>ól a Tell'tlklx ve;t(>f16 elé, és írjuk be II megfelelő ptnznemjelet.
2, Állítsuk a Te>rtUoll' vezérlő Column. 1U1*lon~~1 ~ 10 tn~kre. IlOtIy
~ szö"'egmell!l'ÖYidcbb legyen.
3. Adjunk egy ~ulredf'lt'ld\";llid:lIor ..edrl6l a sabJonool, úgy, hogy II ToolbolI'
jlQlemtóI a sabIonba húzzuk. Állítsuk az elJen6rz6 "ezbtll COT.\ ~oITl::>VIII ,,:!... ~.
tuUjdons.lg;iL az EdrtltemTemplate sablnnb:ln kv6 TelUBox ,,,,UMaZOfl()"d6j;jra,
:il Display IUUttJon$J.gol Dynaaie-ra., al Error", "'9' pedlg\eg)'fll 'You a.llt
enter. pTie.' (Be kclllmi:l. egy :irat),
~. Adjunk egy Compare\'alidator vezér\6t az EduhemTempbte S;;1b1onhoz. (:<, ~lJitsuk
be ügy. hogy nul[j~1 k~ pérubtéket ll<' fogadjon el (V3gyis a Type !lllal-
dons.1g értéke legyen Oouble,!IZ Operator lUlajdon.:ógf Oree.ler'l'hAnEm l,
~ vslue'J':>C~rf-é pedIg O).

Hillel u.."" 1nSSit«Ii. lUd:ibUrUt al ASP.NET C óllÍ wál6riwtll


kaPCSOIa\bIn. lapom" \'1$$lI' 12.1ejeze1htz.

M""t~n v~grehajtoltuk :il fenti négy l~. nl:uilk meg az oldalt a bönglm6ben. és
~ljuk módosíl:lni a Price mcUít. láthatjuk, hogy ha Oresen hagYJuk II mcz6t, vagy
JlCIllpénzénl'ket, illetv.: olyan pl'nz(,néket próWlunk bdmi, ami nulljn.i1 kisebb,
értelmes hiOOllzeoctet kapunk. 6; al trtlik ad:lt~ mmtbére nem ketill ~
(ljsd a 16.12, b 16.13. ;ibl'.u).

AlQn kivül, hogy ellen6r'l6 ,'e~616ket ,'ehetünk fd, és m(xI05i'th:lljuk :il 57il\'cgma6k
megjclenl'sl1, a s;zeri[em6 fdülcl: ug)' ts tesll"t':!iZabl~t6. hogy a TextBox veúri6ka
egy núslk, jobban meg(t'Icl6 webes "ezét16re ocrél)uk. Ib ~ d~zetben ptld;iul
a kOnyvek ~nek nemél. is meg $lerelnénk jelenileni. t<n:Iemesebb egy lenyil6
U:dt bIztositani a nem k!v~laslt<4;lr~, minthogy nt v~l]\lk eJ a fell~sznilÚ(6I, JlOg)'
beÚ'\:l 3 Male ( FM.) \'agy FI'IlUIe (1)06):QÓt, A f~~t'l '-ég61l:1151h:it6 gy:lkor1atok
kOzött t..Wunk egyet. amelyben ~:u: k= a feLadat, hogy a w:rkeszt6 felület
~'egmez6it egy rNsik be-.ltell "el~ C'Oeféljuk
-0

.... -. ...... "


•• ,
-""'_
,...
'---
...............
-......

--_.- -- - --
." .. - "","",

~n
, ' .....

--
<>-r.. o..

--...... --
m

.. -
, ..
,,, ,..

- -
, ., '"
•• ~-
.n
Nn

16.12. libni
H"" Prlt:" " JeZ6I rI"""", IIt'l{'juk, I"b...l n""" jmm'il,fK'II

o ... ·.) ~"'~,.. ..... ·-e


.... ---

• , ---
--- --
,...
o...y_",", -- -
-- -- ,'''''-
"".-
........
n ..,
".

--- - , .......". ,~,

--
• ,
~
.... ...... .. -
'-" ,. •• ~
-
••

16.13.6bra
;\ Grltf\1L"'. addiS ".,,,, Jouiitjtl ei " ,~"",/QV<SI....mrS" Price ",cz6b<:r, .........,1"$
pénztrt&ect,JCm ad",,' mcg
A Coml*eV81idalor Type tulajdonságát aZMt illitottuk Double-ra CUrrency
hef'{ett. mert al adatbálist61 kapott adatok alapértelmezeIt formátuma 8l ár esetében
l'Ié!N tizeOesjegyet tartalmaz. a Cur~ency adilttípus azonban legfeljebb kéltiredesre-
gye! enged meg. Ha tehát a CUrrellC'Y tipus! has.má/tuk volna, az eIUn6rnI VeZÚrI6
minden esetben panaszkodna. ha egy sor sz81bm6sKor a Mgy tizedesjegyet saját
bnileg nem csökkentenénk legIaljebb lenár• .
Eméi jobb megoldás, ha módosltjuk a PT!c' - mező TelCtBo~ vezérl6jénet; Text tulaj-
donságábao IIMznAlI 8d&tkapcsoló kifejezést. ldeélis esetben az aredménynek
két tiladesjeQyet kelklos tartalmamia, iIm~ a (O, o . 00) foomitumlllifóval ímetiR al.
Ha kiváncsiak vagyunk, bMrM kipf6báMlalfli az adatUpcsoló kifejezés módcsltádt
a lenti értékre - ha sikerrel jMmi:, nyugodtan vlÍ'IDnllSSut a ClmlpBreValidator VlI~
'!YPe tulajdonságát Cunency-re.
11. ........ 16rt6M, '-z(riu" grt- t' 113IiI7

Optimista versengés
AImkor az SqIDaUSou~n be:illítpJk lIllNSERT, UPDATE ts; OELETE p:ir3ncsok!.im>
~sjl. arr~ islehetőség..1 k:lpunk. hogy u optmlisU ,.~ hasomllal:l meUeu dönt-
sünk. Ez kúe,ezetten III acbtok szerke!!Zl~ és tÖrIbén> \'onatkoZlk. eh'n &do=es
meg'o'l7~lnunk:l; ml1k~ dv~ fI'lÍI:'i(I(t r::1témomk 2fT1l. hogy mikenI wirlurunk be
2<brolw a Iktalls\~~' VtttrI6 ,seg1l5("gt\'Cl

_ .. _ _

:::-...--
' _ _ '"
~oI.

_---
.-.......-
' ...
n
___

e ; ... . . , -

_._Oooo_ ...........
_ ot
U:O-~

1;;; ............... _
__ .A _
....., , _

16.14. in

4u
"l)m4r módosfkUau
.
I/n "8)'Ídrft11es ..., foIhos:m4/d
~~-" /
akm!' '. fo/ül/rMI,.u.

A wclx-5 alkalmazások v~lqlrója, hogy egy_'z(."!"1"e sok-sok fclh~1ó keres; fel


a webhdyet. th o/y:I.n wdxJlcbll>ol rc:ndeIkel:ilnk. :uno:ly 1eh.-16r.'t' ~ a feJll:Isznllók-
n:ok, hogy ugr:uwuuk az 2d;u~k;,iZ aw.t;ut 5Zt.-rk~k ,,,gy loroIJék. 22 eg)..dqtt
lTl6do5iw gondokat okaUl:lt, men a ... d>kis.Zo!giló b al: Ogyf"'l (a Utogat6 ...-ebbOngé-
sz6je) kÖlÖIl a foly;l.m:1\ sor.In egy Időre megszabd a k~pcsoIa\' :>lag)'lIrul, ha egy:;~erre
többen Lo; mt:gtckinthctik III oldalt. és :1I.l:.lok"l nl6Oo.;jlh~lrok vagy Iörölhctnek ugy;.n·
abból az acbtWzist.:ibloib61, elt'lfűrWlll:ll. hogy eg)~ keuen prób;11j1k m6<!o<iunl
ugpnazl aZ adatOl. Ennek n;flG'l te<:hnikal ak>odlly~, de aZ ~daLokkal dolgor.6k sclrn.lra
zavan okoz/tal, men nem tudj:ik, hogy veliik egyidejiI1eg mi5 is dolgozik ugyanazokon
az arulokon,

Tegyük fel p&aul, hog)' egy oIy~n ASP,r-:ET oIdlllt készíletnlnk , amelyen" felt=.:n.il6k
a Il001<,, t~blában szerepl6 könyvek ,.rutait módosíthatják.. Kl:!. fc!h:aszroI6 (roondjuk
Jisun és Sam) egyllz= liitog:11 el aZ okblrn, e~bt ugy;mazok>ot az adatokat kapj:lk,
p~ldául 3Zt.látj;l.k, hogy a lís,.m Swdlo /lacllscímú könyv sl.CfZ6jeJames Aw:ry, 6;
a könY'·et 2OOS--ben "dúk ki. AmennyibenJi",n m6dosítaru szeret.n~ az adatokat,
ptldául rögzit.~, hogy a könyv szerz<'ije ~:ocnme Dave Yat.es, az Edit gornbrn kaltim, és
az éTttkek szmeszlhet6 SZÓ\'egmez6ben jelennek meg. Ha Sam ug)"dnekkor a könyv
kiadhi dit.uncit abija 2OQ5-r6l 2OO2·re változtatní, 6 is az Edit gombr.l k:mint , és
n éTtl:kek rola is sZL'1Kentha1'5 szöVegmez6kbe t.ölt6dnek be.

Jisun lehát ntt'xlo/;ítja a S7.eOO, és "7. Update gornbra k:;ltlJnt, A Books t:lbla sikeresen
fri,;sOI, és II I 'i!;IIal 5wdio Ilacks S7,erz<'ije f)ave Yatesre váltOZik P~r pillanat.tal k6óbb
s.~m is az Update gOlllbra kallint ,\1ivel1'5 az Edil gomlxx az d6tt nyomta meg, hogy
Ji:sun m6d0sítOlla volna a sZCT'l6l, az Sam képemy6jén továbbra is James Avery, e~n
amikor Sam vi'gleg<.'Siti a s;aj:\t !ll6dosításit, a Jisun állal megv:llloztatoo adaI feliil1ródik
A probl~mit a 16.14, ábra szem/tIteli graftJrusan,

A fenti probJo!'ma dkenJl(;sl're szoIg11 a Use Oplimístic Conrurrency jclOlónégyU.1


az SqI[btaSource vez(;rll5 var:1zs~ban. Az üplimiMa \'ersen#S alkalm:nisa nl:lkiil
~ OELETE ts UPDATE utasfIlook ifIIERE z:!rad(;ka kiclfÓlag n els6dJ,,8"$ kulc:; oszlopon
~Iapul, ami pé:lillinkb:tn a BOokID, lia azonban oplimi5.l:l "er.óengbt !.:t~~nilunk,
~ WHERE tir:ld(,klY~ mimIen OSZJOP és azok eredet; (,rt;';ke bekenJ!. OplimiSIJ. ve~n­
g~1 teltát az SqlD:uaSource vezérll5 UPDATE Ulasít.Jisa valahogy igy fest

UPOAn {Book_] SET


lT itleJ • iTit le.

WIlERIi: (Il001<101 - aBook1O /\NO ITltlel • IPorl11_Title /\NO


w IAutho~1 _ 8<lri!lJ,utho~ AND

A~ iorill_()8%lopN~v par.trnéler rakllrozza el az oszlop tnéktt, amikor a felh3.5máló


a~ Edll gornbra kauint., Az UPDATE utasítá~ vtgrehajt~siír.t teMt csak akkor kerill 'iOr,
ha az Edit gombrn kauint.'is 6u a úbla egyetlen mi5 os~I~b:tn sem tönént ~hozás.
Ha leh~l enge&1yeuiik a~ opllmí5.l:l vel'!iC1lgc,st., akkor amikor Sam frissiti a I '/s"a}
$lJ/dio flacks '{earPubli.ohed nte~6jé1, nent lllnénik fri5silb, men a WHERB tirad('k
olYdn so!! kell-'S, amely - többek kÖZŰ(t - szen6k(,nt James Avert nL"\'rt lanalmazza
_ márpedig ilyet. 1l<'111 tal11, men a szerz6lJisun közlx-n módosítotla

Az optintiSL;l versengl!s hasznos szo!g.1ltat!is, de igaún akkOltesz jó szolgá~'tOl, h~


mogy a~ esély rá, hogy t.'8)':ile= t.öbben frissitik vagy törlik ugyanazokat. n adatokat.
Ha il)'esmire stimítunk. kapcsoljuk be ~ Use Opllmlstic Concum:ncy jelölón~gp;elet,
Adatok beszúrása a DetailsView vezérl6 segitségével
A Goo',-,C"'o \-cz.trl6 ugyan g)'en:k~l'::kki 1C5Zl az adatok szerkesztését étöri&ét. de 1I1'T11
nem ad m6d0c, hogy új rclcordok:at szUr'JUnk be az ada1.bins/.l;;l. A DetulsVIC:W vereM
enel net11bcn i~. és ll. l>esZúris ctmogaúsJnak cngedayelése ebb.-n a vezfrl6ben
ug)"OInoly;m könnyü, IIlInl a \l!eO<esnb és lOrib tirnogab..druk bebpcso/J$l.
a Grid\~Ie'\'-ban

A bItlúráson kMiI • 0e1Bils1f_ ~i ft lilfIfti kjpességeU-' il ~


Elaka! nem térgyaljuk; meghaqyj~ 00616 gyakor1atnak. Mindazon6/UII • uen:esztH
61. tonn ~ menti•• OeUlibV_ VIZI6ri6ben ffi8Jdnem potl~
~ imi. lf1'Ilt • GMV_ 1Mt6btn Ildttd..

Ahogy ll. GridView e5c'18>en. az el$61q>& egy olyan .Dc\:.Iils'~.ew ,..,zm6lém-oozisl·


hoz, amely t1roogatp II I>oenúr:isl, lllO6\ is n, hogy egy olyan SqIDat:.tSOurce ve7.tTI6t
adunk az okblhoz, amely \;;Imimazza az IN~T, UPIlATE h OELE'I':E uu,;.itlso!ot is.
Hozzunk I~n: egy új ASP.N!!T okbl!. és ~d,unk hom egy ffiI'Iek megfelel&'n bdmlolt
Sqlllitrlource \'czb\6l. ahogy a fej<:~ kor:ibbi reu&en Ie\lOk

KOvetkelt'l ~énl '~nk fel egy Delal15View velkrlOíl a ler\'ez6 nézccbcn, és


lupcwljuk hozzá az SqID:ltaSoun:e vezérl6t, A De!ailsView okos cimkéjében bp-
~JUk be az Eru.bIe lruoening (I:k:$lú~ ~gedelyez~) ~'ZCIct. end egy
"ew (Új) gombol '"eSZÜnk fd a o.:u.ibView löbbi mez6je abn, ahogy II ]6,15 ;íoom ~
~th3lJUk. (K2pcso1iUk be:iZ Eluble Pag;ng ~utet 1$, hogy ne CSlk.az ris6
rekordot lhsuk, Iunem \'tglgllpkedhes:>i1nk,. rekordokon.)

"._ .•.... , ·~.~~''''H'·. . ......

-
- •- ---- -,
- •
- ,

- - •

'-- - --. -
- 1 '__
n .... ~.
AM r~--
••
r.: _ _

.- ..... ...
-- ~
lS.15. Mn
A l)r!/Q1/Sl'it"I" ""'11/TlmR
" t.>-uniJ """"""M.J....
400 III, r'-:l • MWIk.I aclftbúirih.
Ha megn"ufIk eZ! az AS]'.I\'ET oldalt a böngbz6ben.I~thatjuk. l.agy az cls6 könyv
(I'lmal Smdio Hacks) jelenik meg. a lapozáshol szükséges hj,.,uko;Wsűkkal, valamint
egy New hi\'~tkoz.:issal, amelyre kaUmlVa ~ Detltils\1ew vez['T\6t bes:1.iir6 rn6dl>OI kapcool.
hmJuk (I~ a 16.16. ~br.í!). Besziir6 m6db:!n a felhaszn:\16 é-rtékekct irhal a killönböUl
szerkesnhe{ő mez.őkbe, k az Insert gombra kl!IUfltv.l llj ,,-,kordot hoz/tat It:tn:.

A besz(!rást támogató DetailsView testreszabása


A GridVteW-ooz hasonl6:m ~ beszllr.isllimogaló Octad5\"lew i5 nagy ~rtékben {<$lre-
nabható. A bcsz(u'lis cngcdélycz6ével egy Insert meZŐ! adunk a ~7-""'.hez, amelynek
lulajdons:ígah" Fields p:irbeszédablakboln te!tinlh<.1jilk meg. A s;:erkl':.illhet/5. ,Uetve
lörll-sl tMr!ogalÓ r.laméZCIek E<.hl é5 Delele mcUlilicz h:<5Oll16an az lru.crt mez/5
!tinéZCIe is lesueszabh.:uó. Abp:\ll:Ipollxm a mez/5ben az Insen SlÖ\'q!Ű hivatkoz.:h
~lh:1I6. de el a ButtenType és n In sertText tulajdonsigokon keresnül m6d0:>/;íthatÓ .
.ti. GridV'ICW-v,d n>egegye;,:6en" Oetails\'1ev.· [nsen mez('ijc is lehet h"':llkozis. gomb
vagy kép, é5 a gombol<. illetve hivatkozások esetében meghalirozhatjuk a megjelen6
felirntol.

l , .... ~ .... ~., .. "" ... , .. ,,"'~... _ ~ "

-- 16.16. 6bra
II M!u.' ftO"'bm ka/tilll'" a lJt>I<>ils\ KW
,orzerlóIle::Ii'!l módba iIt'fXSOIfi.k

A Detalls\"te'III· mInden meWjénd< ,-an egy InsertVidble r><"VIl" tul:ljdonsiga. amdyCl


SZintén a fields ablakb:ln illíthatunk be. lia a tula,donsjg én8<e Fahe, a meUl
iij rekord homadisakor ll<."'lll jelenik meg_ A1apjllJpoll:>an nundcn el.56dkgc5 kulcs
oo.clop (péidánkboln el. a BookID) InllertVillible tul~jdon~ga !'<>lB e én.:;kil.
A1togy a 16.16. ábra mUllIlja, a BooklD mN:6 Kihe marad, amikor új rckordol :<clrunk be
II Booka t1ibl:lb:l.

A Oet~jls'f_ mell5inek van egy RudOnly tulaidonsága is. de az a baszúr6st


támogató Oetails'f_ vererlókben nem érvényesül. csak II Sl9Ikeszthatö
vlikozatftan.
A szerkesztMl5 1iCSnáeU~ ha$onIó;an a ~r1sl t1fTlOgi1t6 r6z1etes ntlCtoek is van
~ alap&teln>eze\t benúró fchllete, ami nem rrW, mmt C'8)'..egy TexlÜOX \'eunl5
a l)eszliró nl'zethen mcgjelen6 minden mez6hö.z. 1b a bes:dlr6 felületet cgp~nl igénye_
inkhez szcre~nk ig3zitanl, alakitsuk 3 Boundl'ield tipusú rnezőket sablonrnezl5kkt, ts
vtgc'ailk el a ki-r.im rnOdosit1sokal az lTlSC1lltcmTC'Illplatc s:tblonoon,

NnÍ!\l. ÜW16, a ~riSI umog:nO l)a;;ails\'.ew működbc Igen Iu5onlO a szerkeszt-


hc\6 GridV>ew ,-edtl6k8'lez; mindktr w~ verer115 ugy:lnazobt a lehet~kCl ts
tot=:labhi .szoIg:IltathoOt kinllp_

Összefoglalás
Ebben a lecktben azt Iltztük rnc'g, hogy mik~t szt.'fkenthelOnk, Iörölhetilnk ts wir-
hatunk be adatok;,u egy adatbázisba egy ASP,:"JFf oId::tlon k~l. Az adaIOk meg.
ielenll~ hasonl6an az ad:ub1J:1S wtalminak ~ egy webokblr611S tg)'
ada~,~z&I6I. vabnuOl egy"~ adat"eh:rll5t igtn~'eI, Ahhoz. hogy a<blObt
wrha..unk be, fliMil.hessunk vagy törölhe:ssünk. az SqIl);II~Source ,~úrl6t úgy keU
bdllitanunk, hogy el6tUil$a a n>egfe1e16 INSERT. vpWt.n ts OI>U'I"E uta.\iti5ok;lt. ami
o;Ik eg)' je1öl6ol'gylet beiu.pc:soIb:It igl'nyli a '''~Z5lóban

lb az SqlDataSource \'czérll5t megfclel6en 111ilouuk be, a Io<:erkl."ztéos (>s törlti!. U"~


sinak engedé-IyC'zése egy Gnd\-ocw vezér\6ben CSlk ~nn}'ib61 .ill. hogy a \'-~
al adatfon~hoz kapc:lOljuk. ts az okOl!i ómktbcn bclwpc>;Oljuk az En:lhk:: f.hling"
Etublc Ddcung joeIl\I6ntgyzcIcket. Enn~i. ami felk'tlmül ~ ahhoz. 00g)- ~ r,ia..
nl'ttIben acblObt ~c.'$nhes$ünk &. töröI~nk - <lZ EdIt t.':$ Delet" lTlC2l'5k ~
zeté!;. illc:r.~ a szerkesz\li fdiilctd u.onb:In 8obzor tg)'nti ogen~'etnkhCl UIt'Il.'tnénk
lsu,taru Ez a feladat nem bonyolult, fomWrod ~".l""t nem ,go:,n~1i, (os a h~ml \X'"dl
De\"C'Ioper tef'.'cz6 nfzel.H>en könnyen eh'ége.zhC't6 lIa al ~datok fri~IOc "'IlY 1&1.:lo<'
bonyolulClbb logikát kÖ\'C1e1 meg, clekhcz a m(l\-cletckhcz~ykczel6ket Irtlatunk
(A GridView egyik e:scmt'nyé\-~l k:ip::solatb:lin k::sz m:ojd qJY ~';lkorl3t is a f<'iczct '''gl'n.)

Az Odl :.wal zfinuk, bogy n~k, hogran stilrtulUnk be uj rekordokat egy adatb1-
J:lSt;ibboo a Dt'lails\"oew n'zbt6 ~_ A heRur.l:!l t\rnogalÓl)a;;a,I5\'1e'I'-
~ ugyaruwbt a ~kct ,gm~-elle. llUlU a ~ és törlés! timog.aIÓ
~ze\C'k kt.':$zltt.sc. é$ a bC'$WrÓ felület is ugy:lnligy sub!13tó teStre, m,r'il a Gnd\'........
!Zerkesn6 felülete_

I:bbC'n ts az cl616lecktben megtanultuk, hogpn l\.:Istnálhaljuk a GridVicw ts


a DetailsView \'czért6kc!t act..tok mcgielcnlll:sére 6; m6dosIU$ár:t A kön'lkezi'l6r:1lxln
~zt ~Wlk meg, hogyan kaj)QQIhatjuk eg}' atbtWns adna't egy DropDownüst,
lbdioHunonlist vagy ChC'ckSoxLlSt \~2l'r16höz. és an is bcmutatjUk, miktnt lla:Rfl;il·
hal/Uk eg)'iJn a DropDoo...nWit ts Grid\-oc\\' vez.&l6ket. hOSY az a<btokat .wlrjílk.
402 1111. rMZ • MIIlb edIfb6ziookkll

Kérdezz-felelek
K: II lórlbllámogaló GridI ie,,' ,'CZérl6k eseté/)cn mil lllwmUyell lehl!lÖSég am>.
1108}' '-'Kl' ab/akban megerősítést Ilbjllllk, am/u a fel/r.aszrnlló a Dele/e gombm
kall/m?
v: A GridView vezl:rl6 be:illíthat6 úgy. hogy .. ~ ügyfélcldalon mcgen'lsí[~ kérjen.
~mikor a felhaszrcil6 .. Delel" gornbr~ kanim. hogy megbiwnyosodjon róla.
hogy a fdhaszn~16 valóban [öröini szeretné II rekordol (1:isd II 16.17. .ibri[).
A2 IIzt'fK.'t:tblak aZ oldal visszaCS<ltol~sa elótt jeknik meg - h... II f.... Ihaszn.i16
aZ OK goml=. k.mim, II visszacs,uol~s megtörttnik. k a [örlés pontosan
ug)' megy v~. nunth... ~ jelenít"nünk volna meg megeros.ítést k615
üzenetet. Ha azonban a felhasznil6 II Cancel g<:>mbra kattint, .. vlSSZ;lcsat~SI':I.
nem kerül:;or. igy II rekord tör\esére sem.
Ha meg ~~nénk t.:mulni. hogyan adhatunk ü8}féloldali üzenetabbkot
egy GridView minden Ddete gornbjához. olv;lSSI,Jk el II httjl: I/NM. J1\ir:ro-
8oft.r:om/lib~~ry/de!~ult.~8p?url~/llbraryfen-u3/dn~8pp/html/Grld

Vi_ElIlO ... sp intcmetdmen takilhat6 cikk Utl/tzi'IS eNem-side xript IQ


Confinn [)(!Ielwns dm(J részét.

16.17.6In
JI n.*wd ",rltsdor "It)' ~I ,l:umelabklllllb "'~Ié$J "fo/luu,,"1JJ6I6I

K: Optimista versengés alllal",az~/lor, ha a.fr'/ssitésre mgy ff'Jrlt:sre 1/em kerül sor,


m('rt fl ,.../lord m"S,YíltOZOlt, htJgJVlII éncsírhelj(llit erről afrll=ná/6t?
V: fU opl.imi$\a ve1'1ieTlgé.. csup.1n n eUen véd. hogy aZ egy.szC1're doIgoz6
felhuznMók ne irh3.lSik felül egymois m6d0sí~sait. amt IIcm ad m6doI.. hogy
flgyelmeztessilk a feJhaszn.1I6t, hogy a frissít6 vagy törlés nem kenIIt be
aZ adathizisba. nlet'l az adatok közben megvjltozuk. Es~erint a 16.14. ~brin
Uto« foxgat6könyvnél hi~ba kattint S:lm aZ Update gomb".. optimista verseTlg6
hasznjlat~ e;SeI('I1 a m6d0sítoisai nem kerillnek be n ~datbl1.isba. 6; alapérte1-
meres szerint err6l nem is kap .mesítát. Az oklal a frissit6 után a szerkesztés
eJóul jllapot1ba áll vlss2:l, a kia~s fve 2002 !"-,,Iyeu 2005 lesz, a szerző pedig
Dave Yates.
[dt,:iHs est.'tben &Imet érte:<fll'Tli kcUene. hogy a m6doisít:isait nem sikerillt
menteni, mert azok feliIluuk ''0Ina eg}' misik felhaS"Lni16 váhozu~5:lil.
Ezt úgy val6sílh.1tjuk m"8. hogy egy ese~n}'kezelót hozunk Ié1re a GridVIew
vezérlő Rowup&!oted. e:<embIr"'hez. Erre aZ ~}"" aZ u~n kerill:>Or, 00gY
a fdhaSUl116 az Upd;lte gombr-~ kattint, b; a GndVII'W eikOldi a frissítb;i
k&ebTll'l az adatfQr1'b.\'~
A lIOW\1pdIIu,d ~}'kezc:\6iEilCk rm~ik par.am&creként cg)' r ,dVi_-
!,IpdatedEvenUrq. típusú objektumot kdl :i.Cldnunk, amelynek VölLn tg)'
'\Uect..:!Rowa r>CVi'I tulaj<lorWga, Ez a lubjdons;\g. ahogy kiClI~lhaltuk. aa adja
meg, hogy h~ny 50rl trinlet1 az ad:ltbá1.l5llak c!kfildött UPOi..'!'E uWith. Ha ez az
trt~ O, az UPDATE nem jirt sik~, Völgy alht, men a 50f! közben 100000ék, '70gy
adr!, ~ OPtirni.WL ,'ft!lm~ ''lIn tl'l'trt)i>cn. ts cg)' ndsik felh2m\1l6
módosil()u;o a WI' IlIJ1;,IJrmt. Mmdk& esetben lfle8ICImithcWnk egy üzenetct. lu
at aJj!)bi kódol; befljuk az ASP,1\1:T okbl forriskód r!:sztbe,

Protectood Sub GddVi_~t.'UeyViOl ... nd .. r As Object •


.. IlyViOl • As gyat_.W.,b.Ul.W.. bC' ntrol •• Grl rvl~toodEV..,t.o.rv.)
.. Mandl ... GddVlewl.RowUpd;oted
ft •. Affe<O'tedJo,,,,,,, • e TIl.n
UobelID.TW<t • 'Your ul)(iAt....a. n<ll: cc-.i ttood eltb .. r
.. becftu •• the r...,,,rd no 10000"r ed.U or lllnother "Jlrr

...
.. rec .. ntly INde • cllanll" to thla u,cord lUld youf updat"
.. ,""uld hAv .. ov........ ltt"n t""."
,",nil".,'

"" ... "


A GIidVK.'W RowUt>dooted e;eménykczc:l6;&Iek \(,{rehozi:>ához viltSOnk forr.1.o!;
nt1.t.1re, k v:1La~k a GridView elemel az ablak lxII fels6 ré5Zén ClUlhalÓ lenyíló
~b6I. illetve a lI~ted ~mo!n)' a jubb oIcbhb61.

Ismétklkérdésel<
I. .Az opumisl2 vcr'JCngb, ha bek:lfX'SOl,uk, az adatok bc:szU~I'lIo, frissrl6l:re ts
törit:st .., lesz lulhs:ll "Igaz vagy lumis?
2. Milyen feh&elfoknck kell fcnruiUniuk, hogy az SqllnuSou""" vc~ v:>.rú:sIój:;o
ktpcs Icg)~ aulom:lldcU$:l.n clóoIlliClni az INSERT, UPDATE & D!LI!:'l'E
pIIr~naolm?
3. HOg}'lln .Q.;lbhaljuk lestre ~ ncrkeszthel6 r;ianttClell: Merkem6 rdilletél?
4. Amikor egy ,,"cbokbll~tog:u6p em· Gnd\~oew ~'lIgy D=.i1sVr\'> Odctc, EdI!
,,,gy lll$el'l gombJ;1l'l1o k:.J1tIIlt. nUJ~ csemen)'$OI' jál$lÓ(bk lS
5. Melyik ká ~yre kerti] WI' 1000ésc;kor>

l. lt~mis lu opurnisl:lo ,-ersen~ cs:.k az aWlok fnssll~ ts lŐrIé:I&e ,,,n


hlI~1 új rekordok besrilrisakor ~ fdllaSZruílók rK"ITl tudjjk fclillími cgymb
m6d0sil:l$:lit. llK'fI mindkét feJlu$Zllll6 Úl adatok:u ho~ l&re.
404 1... *r • MIdI rWb" ,"el

2, A lektrdeleu l<iblinak rendelkezrne kell ~ lrukaal, a SELI.'C'!' uWil;;i.\lUk


po:dis: Ieg;>l1bb ezlaz OWOPOC 'iS6Z:.I kell:Hiru3,
3. A Gnd\r",,,, ,'emlő al3pbtelmezé'l ~enm minden Boundf'oeId lipusu mez6(
TenBox veúrl6k~1 képa le, Ahhol. hogy c'lt a =!<em6 f(']il!elct lotrcsz.Il>
~uk, a Boundflekl me~et Templatáield tipus(".:i kellal3klt:anunk I!:r. ut:\n
m6doI;íth:ufuk a mc."z6 E<lnhernTcmpble Slblooját. ~ ,'égez.hetJÜk el ~ ki'~nt
~:ih Ozt;ll.15Ok:a1.
4, Anlikor a fellusWló ezeknek ~ gomhokllJk az egyiktre kauim, el6swr
az ASP,NET oldal vlssz:.lc5uolb:ir:.l kerillMlr, \rlSSZllC5:1toll~kor ~ Gri<JVieW ,-agy
Det;.i!sVIew észIdi, ]IQ(!)' egy Wu, Delete ,':agy Insert gombra kanint~tJk. 6;
elindit;" a megfelel6 ~)1, a GridView törlé>kor 3 Rov[)o·~~t Ing, frlSSJt6kor
a j.' )wUpdat;ing ocmtnyt, 3 1>eullsView pedig tÖf1~ rsetom u It..n.let tpg.
frissiu:skor az It-updating, & be..zúriskor 32 J~_lTlllert 11>9 eso:mtn)1
El uw. ~-6dik a ..,ebe!. :oWt\'en-'ri6höz kapcsolt adalfornb--\'Cztrl6
mcgfeld6 I""~tC_nd, l1pde.t..c~ '",g)' Delet..c.-..nd IXlranoa.
amely egy SQL.... wí!i9: küld;lZ alblblrun..,k, !:>eoru'Y2, frissit,'e \'2g}' 10r0I\-e
a ,-ekordol;, VtgOl 3 ,,'ebes a<.bIH!~ jelzi, hogy 32 adalfn6doe;,ús befqe~
& kJvált", 2 RawDelned VJgy RowUpd.tted est'fTlén)1 (GridV""",'). iIIewe
n ltelaOeleted. lt..upd.ned ,';Igy It... rnserted eseményt (I)eta,ls\iew),
5. Rowt)o,lIJting & ROwo.1IJted,

Gyakor1atok
l . AZ Ada/ColJ lórl.'sh/l'1I t!11ged<'/)on~ u foIl"unuilóktmk dma rtszbm Liuuk.
hogyan teszi 1ehct6vt a Gnd\"iew veztrl6 a felha5zn:ilóknak. hogy töröl;mek
egy rekordot a r:iC1b61 Akkor mWletttJk. hogy amikor a fell\:UW16 a rklct:e
gombra brunl. ~uszacsllQÜ5lÖ!'1mik. & a GrxW!e90', mICI6n 1l1llSi~n.i az
adalf()f1':\5..''eztri6j& az adatol< !örl6;:re. kl'·.1llj:1a RQWDelet 'no;! ~)1,
lia a tÖrI&t bizonyos relt~elck fenn;ill:\s;! est."Ien V\SSZó! szeretoénk vonni.
oc:m.mykezel6l hozh:l.lunk I~re ~h~:t az ~yhe7.. amely ITIot'gáILlpi!)iI,
hogy .. ~ kell-e ..onni a 1ör1á1.
Ebben a gyak:orlatl:xon az a feladatunk, hogy egy oly:m ASI':>.U oldalt készítsünk,
3~1y égy törlbl !;lmogaló r.1csntzctben f~ ki a lIOOk9 ad,nbá7.isúbb kőn)"'e,t.
Ezen a GridView n~2hl6n k!V(]! n oldalhol adnunk kell mtg egy ubel \'ezb'\6l:,
amelynek ro 1Ulaidoosá~t do'letel'ailed-re. vidble lul:ijdons;ígiu r .. lae-ra.
Text tubjdor't5Jglh p«Ilg a "Why oh ...1ly would you ..... nt to delete thi.
book?" (Az l5len szerelmtre, mom alarp törölni ezt a koo)'\'eI?) tnékre oillillUk
(A VídblIJ rulajdor't5Jg I'als..no :dht:isl\-al a \'e~ nem fog Iekqx:z6dru,
lehit a felhaszn:il6 bÖn.gtSZ6Itben addig nem jelenik meg, amig "tSSZaes:alOUskor
-rrue-r1I nem :illitfUk ezt a lubJdonsJ.8O'-)
KÖ\'etkez6lt-ptskomt írJUnk escmÓ!n)1tezel6t a Grtd\"oew R" ... Del .. ting
esem&1yfhez. Az esemt-nyk~zek1 m.i.\o(xhk p:mn*lerektnl eg)' ar-iclVi_Oe-
leteEvenUrqa típusú oo,.,krumQI k~1l ~ladnunk. amelynek van eg)' Cancel
ne\"\llUb~1P A f~I~1ó ~Ital kezOOnén)'e~ törlés vis5zll,'onásJ.hoz
csak ann)'jt kelllennOnk, hogy en a tulajdonságot 'l'rue-ra jllilruk Ezen IciviU
eTlnek az osnJl}'IUk v~n egy Valu .. úpuS\i lula~!I'I is, amelyt.'! az aUbbl
fon~ban h;l.5zn1lv~ klolvae;halunk egy értékt.'t abból ~ :;orb61, ~mel}'et a
fell~J6 törölni ue~1nc

A fe!ad;lIunk az, hogy '-IS6ZaHlnj\lk a 1000bt. bo mqgckn;~k a <lelete,,,1 .ed


rimki1. h:I a feUl3SZIÚl6 q;y oIy;>n kÖllp'el. ~Itforölni. amel}~k a ~
UCTtny ~J)'em (Scoo Mnchell) Ha a feJhasm.;16 egy lThisik szcrz6 könp-ét
pr6bi.!p törölni. rejtsOk el a del ete Fai led (ml k(1. és h.agyjuk ""H~liIenni
a lörlC!st.
Segitségképpen Ime eHY rövid kódrészlet. amelynek a RowDelet inq -=m6ly-
kezeMbe keU k"rttlme,

H •• Valu, <·"uth>~·'

2. A Ut-rliies.;ztffld/Ilet l/.'Stn'Uabása és "lrisSU<!SI U(jWI)o.II címll n.'szben 1:iIlUk,


hogy sablonmez6k .\'-'81~ell\OgY:In ~bI~'tlllk le.lre egy adott met6 ~zer'
kenr6 felük"l("I. A I('(k~ a Price meUít módos.ítOOllk. hogy tarUJmazzon
egy Requ;redFleld\~hwtor & egy Compare\.ahdawr "ezM6t is. Ez a k ..... e!~
,.~ gondoskodoa róla. hogy a feUl:ISZruil6 oIpn pénzéftt.... et:adjon ~
1rkért. :.uni nem Iusebb Q..n11
I'eje220k~. amIl elkezdtünk. b .adjunk RequlredFleldVahwtorveztri6kC'/
a Titlol, " .. thor, V... rP\lbllahed b P"\leCount mez&höz is. ',"anunt
Comp:m:\'alidatOf vezerl6kC'/ a vearPUbl iehed b PIl9~ount mez6khöz.
A Compare\':llidatOl' "ezérl6k feladala az kell. h~' ~..,n, hogy bil101o'tlJk,
hogy mindkl'1 mez6be nul~TÚI n.ag)'obb e#Sz ~m kenlljön.
3. A sablonmez6k EdllllemTempl:ue sablOflphoz nem cs:ok ellen6rz6 \'cZ<!rl6kct
adh:nunk. I",nem:& TelIlSox vezérl6kel ls m1s lII'ebes \'ezérl6kre ~he!iOk
Ebben:& gyakooaIban a !.4atlleadQn mez6 uerkc:sZl6 felületét ~k le$m',
b II YliwgmeUít egy Calend:ar \~TI \-1ltj\lk fe!,
Ehhez.a !.ast_clOn meUit 52b1onmeZŐ\é kell ,·;iJlozt:nnunk. ITUjd.a TatBox
,'e:reM IÖrÖInOnk kell az EdilhemTemplate 52b1onból, bo:& 52b1onba kell
hU7.f1Ullk egy ClIend.1r \'ezM<'5t ~ Toolbox p:dett1r61 Ekkor kipr6b:l!halluk
~z oldalt a böngbz6:oen látni fogjuk. hogy ~m;kor ~ fc:lha~J6 szerkeszten!
p1ÚW1 egy sort, a.sor L... tR ...dOn me~beTt egy napc;';r ielenik mcg
A napd.m:.n nOllban ">ég egyof'lJen ditum SIncs kiielOh'e (méH ha szerepelt i~
énék a Laat~eador; mel6ben), M lu :I rupt:irból kiv1bSllunk egy dátumot, éi
:IZ Updale gombr::o k:IIUntunk, az ének mmtr!Kre neTt) kenti .sor
408 1111. ráz • fO'UlU ~ ..

Ahhoz. hogya jelenlegi I'rttk megjelen)"n ~ naptarb:m. a felhasUl1Ió ;lItal kiv~­


laSZlolt érték pedig beken1!jön az ~dalb;izistn. egy olyan ad.llk3pcK>16 kife-
jo:z~ le5z $ZÜks{,giInk. amely 3 LaatR"dOn mezŐl a Calcndar veztrl6
selectedOate tulatdon~B~hoz rendeli. ut a Calendar vezérlő okos dmk6-
jében az Edtt Dat:lBindinjp h""tkoz;'i= kaUinr.", megjelen6 DataBindings
p~rbesztWblakoon adhaljuk .neg' egyszenlen ,';il:l5$ZUk ki a megfelel6 lulaj-
donságal (SelltCtec1D.ote) a baloldali li.st:ib61. maid a jobb oldali lenyíl6
Jisláb:m jelöljlIk ki az aooúomis·'-ezér\(i azon ~ (l.<I.stR" .. dDn), amelyhez
eZl az I'rtl:kel k<5tni szerelnl'nk Ne felejtsük el bejelölni a J'wo.-way I>dubinding
(K&irnnyú adatkapcK>Jás) jelöl6nl'gyzetel.
A fenLi ,·~ltOzt.aI"S ,t;greha~1:<a Ul~n próWljuk ki az okl~11 a böngésll6l>en.
lia egy oIy:tn könyv adalail szerkesztj(lk. amelynek van L... ue .. dOn érttke.
a CaJenda. v"z<,rkI S"lectedOata tul~~ga a naplárhoz kapcsolódik. b;
az Update gomb ... kanintv:o aZl a cUtumot n",n!jilk a L.l.lltJh... dOn l'ltl'keké-nt.
amelyet kiv:i\asZlOttunk a na~tb:ln. Mindazon~ltal. ahogy l'szreveheljilk, a 50f
5Zt'rke:!;Zlhet6vé tIltelekor a Calendar ,'ezblő a V i aibleo..te tulajdc:>nság~nak
l'ltl'kéhlil a IIDnapot: l's az l'v<1 muutjoa (ami alapt'rtdmezés szerint az aktuális
dátum). Bzerint ha a szerkeszthető sor LIlstR....dOn ~rt(!ke November J l. 2005.
de az aktu1lis dátum March 13. 2006, a hónapok közölt vissza kdl k:<uimgalnunk
a novcmberhez, hogy láLha.'iSUk II ki,""l"-SZ1ou ctitumot. Tem,és2ete:sen azt
su~nk, Itll II 1>01' nerke:whl.-t6vé tL'Ielekor a LaatReadOn ~tumának h6n:ipj:l
b; é\'e jelenne meg. AhllOl~ hogy ezt e!(!rjÜk, vissu kell térrtilnk ~ OIlendar
,'e2ér16 DauBindings pMbe:.'Zl'dabbkihoz, a Visiblllloate tulajdom:igot
a r...atReadOn mezŐ énaéhez kell kÖlnllnk, b; ezúltal ki kell kapc;olnunk
a Two-""'y Databinding jelöI6négyzetel.
Ekkor ~ s:zerk=he!6 rnOifll'zelnek azon -Klrok el;C18:>en, amelyek a LIlatR ..... dOn
mez6ben lartalmnnak ""lamiJyen l'néket. ugy kell múködme, ~hogy elterveZlGk.
AlOkrulla soroknál azonban. amelyekben ez az l'nék Null. ncrkeszléskOf kÍ\'~cI
lép fel. Az, hogy ez miért történik, iUet\'e hogy a C:I!endar vezérl6 Seleetedo..te
tulatdonsig1hoz mib!. adtunk meg kétir:ln)'Ú adatkapc;ol.!l.st, núg a Vi .. ibleo..te
tul~jdons1g esetében c.sak egyuányút, a 19. fejezet egyik témija lesz.
17. ÓRA

Adatkapcsolt lenyíló listák,


választógombok és jelölőnégyzetek
" fecI«! tanalmólJól

• Lenyí161is13 feltöltése egy ad:ub;izis·lekérdez~ ere<ll!\l,nyéveJ


• JeJöl6négyzctek és vilasZl6gombok lét""hotlsa aOOtb:b,is·lcktrdelXs alapján
• A ráaméze\ekben megJelenített tartalom sziIr(,se a OropDownLi~ vezbl6
S("gíl~8é-veJ
• Az adathizisb6! s:cl.rmaW awtok ha'lzn!i!;.(ának el6nrei II lenyíl6Iisl:i.k,
jclöl6négyzetek és vála$zt6gombok érTékeinek bedrótoúS!ival szemben

Ahogy az el6t6lci.rom leckében l~th;U\uk. az ad.~ú~Yezérl6k könnyűvé (csuk


az adatbárisokkal val6 mun!cl(: egyszenkn csak meg kell adnunk, h9gy melyik eiblárn
és oszlopokra '':Igyunk kív1ocsiak, iUl"I\-" hogy uükségiink \"lIn-e az INSI!.RT. UPDATE
és DBLE:TE utouílá$okra is. Ha az adaúorr.í5-,-ezérl6I megfelel6en 1llítouuk bo-, a webes
adatvezérl& segíl5égél:el tehetjük lehet6',é a végfelhaSL/'lálóknak, hogy műveleteket
végezzenek az adatokkal egy ASPJ'I.:"E'T oIdalQll keresztill. A GridV;e.,." Det3ilsV.ew,
FormView, Repeater l'$ J)ata/.J5l vezt,rl6kön kí\lÜl non!»n "Z ASPJ\TI 1\5Clvezérl6ket
is l~n~lmaz.. amelyeket s.zinltn hozzák.3pcsolhatunk az ad::llforr:is-veztrl6khöz. Ezek
~ lislavezérl6k" DropDownliSl (lenyíl6Iista), ~ Che\:kBuxUst (jelö161ltgyze\·]ista) h
~ RadioBuuonl..iSl (v~lasZl6gombhsta).

A ll. fejezetben núr meg.sn>erkoolünk" f)rQpDownLiSl, ~ Chc<;kBo)( é.~" RadioBuuon


"ez&l6k ASPNET oldalakOfl való h.t57.n.iJat:.'ivnl, <k akkor még Dl"gunknak kdk'!l meg·
adnunk a lenyílólisla demeinek, illetve II viilam6g0rnbok""k és a jelól6négyleteknelc
az éntkell. Vagyis ha egy 1cn)'í161isl1t szerel1únk volruo. amelylx'il a felhaS"m~16
kiv!ilaszthatj:! II kedvenc hg)'laltját, II különböző ízeket nekünk kellett egyenként
hozzbdnunk II liSl.1hoz. MO&! aWll!»n, hogy már tudjuk. hogy:!n dolgozhatunk
ad::ltboizisokkal. újra g6rc:s6 alá vehet jOk a II. leckében megismert vezérl6ket.

Listavezérl6k - áttekintés
Az ASP.NET webes vt'zérl6k széles viilaSZlélcll kimUj:I a fdhaszn.116i ad::ltok Ö:SSzeg)"ll~é·
§ére.amel)'ek közül többet is meg..-izsgáltunk a 10. és 11 fejezed""n. Eze~k a vezér-
I6knek egy kil1önJe8"" c;oponját jelentik" uocbe1l1.sUl/'I!Z<'rl<5k amelyek a v::Uawh.:n6
Iehet&égek lisdiit krrúljik a fdha~16nak. A II leckében n'>l.'gismen DropDownList,
amely egy lenyí161i50:b6I egy elem kiv:llamását cngedélyeJ::.i, is ebbe II c:;oponoo wr·
t07.ik. A CheckBol< h II Radio&uton vezérl6k egyetlen jelöl6négyzctet. i!Jeto,-e ":'ílaszt6-
gombot hoznak Ittre, lehál nem hstavezérl6k. de ezeket gyakran csoponoon haszn:'ílp.k,
és az ASP.NET kt!. killön lista'ezl:rl6! biZt05íl a Jl'lól6néID-~et- és ,':lIas-~t6gom1xsopör·
tokhoz: a Chedc:BoxUst és a ~<hoBunonList vezérl6t..

A Ilstavez'!'rl6k rendelke~nek nthin)' közös tulajdonsággal Mindegyik elemek gyO"i·


temtnye, még ha e~k az elemek (l\ás-nt:ls típusúak is. A DropDownüst elemei
egy lenyí161iSliban l.:Il:llhal6k, a CheckBol<l.i.st jelöl6nég)-~etek csoponja. 3 Radio-
ButIOnUst pedig v~lasZl6gomboké, Az emlílett vezér\6k kÖZÖlt programoilii szem·
pontból is vannak ha$Ol'\l~gok;

• A webes 1l5t;wezérl6k elemeli a vezértő It""'" tulajclo<1ság.'\n keresztül érhetjük el.


• A lÍSt.:1vezérl6k minden eleme a Llat It . . O:s2Lil), egy péld:1.nyn. A list.:",ezl:r!6
leképezé.""kor minden LiatIt __ péld1n)' a mcgfelel6 IHML_k6dd::l alakul.
• Minden listavezér\6 bclmtható ugy, hogy visszacsatolást indílSOO el. amikor
a felhaszru'i16 megv~hoZlalja a vez&l6 iUapc>l:Íl. (Ezt a fejezetben később részle·
tesen tárg)'al~jk.)
• HJ kl'! visszacsatol~s kÖZÖlt megváltoJ::.ik 3 listavezérló kijelölt elem ... lefut
a SelectedInde"Ch"nged esemény
• A listavezér\6k It..... gyűjtemtnye fdlöllhet6 statikuSltn. programból. \llIgy
egy aWlforris-veztrl6n keresztill.
17. «a • Adeö;!lpCtolllenyl6li1dl . ..,.zt6gombok" ~ 1409
A II kckl'ben l1uuk, hogyan rendelhetilnk elemeke! .scl1ikuS3n egy OropOownl.i$t
vezl:rl6höz. Ilmlékezhetilnk ti, hogy ~ DropDownUst veztM6 okos dmkéja:Jen van
egy Edit !lffllS (Elemek szerkesztése) feliratú hi\':jtko]js, amelyre kattint'"A megnyílik
a li5them COllection Editor p1rbeslédablak, Ebben az ablakb:rn adhat juk meg
statikusan a list:lvezér16 elem..."il. A CheckBo::d.i$l b RadioButtoollst vczérlo5knek
szintén van okos dmkéjt", amel)TIen ugyanúgy megt:lU1iuk az Edit ltems hivatkozá5l,
amelyen keresztill ug)'arul7l a liIilltem Collection Editor abbkOl hívhat juk e16.

A loovezérl6khöz azonban nem csak .$llItiku.$:ln adhatunk elemeh1, hanem egy adat-
forr:\s-vezét\6n keresztill is rendt'lhetiink homjuk énékekct. Adjunk egy SqlDaIll-
Source vezérl6t 3Z okblhoz, 11lítlluk be, hogy kiolvasson egy fekordhaJmazt egy 3dal-
bi~i$l.1bl.iból, majd kössük 3z :ldlIOk~lt a list:l\'ezérl61IÖ~, és 3J; SqlOataSource 1JIllI
vL«SJ;3adou minden egycs rckordhoz Jétrqön eg)'-egy IiStllelem.

Adatok kapcsolása. listavBZérl6khöz


AZ adatok howkapcsol1s:t ~ !isl3vez"rlőkhöz nagyon hasonlit arra, ahogy a GridView
vagy Oetailsview '..-Ú'r16höJ; kapc5(>ltunk adatokat. Az egyt:tlen kOlOnbség, hogy míg
a GridView 6 a DetaiJS\TlCw vezl:rl6khöz v:iltoz6 s]jmú oszlOpOl köthetünk az "d:Jtb1-
:tisI!ibl~ból,:I lista"ezérl6khöz legfcliCbb két 06Zlop kapa;olódhat. Ennek 3Z:12. oka,
hog)' a list,I\'ezérl6 elemeinek két tulajdons:iga van::I Text ts a V.. lue. A Text tulaj-
oons:ig haúrozza meg a képern)'6n (a JenYl16 listában. illetve ~ jel61t'lnégyzet vag)'
v~laszt6gomb mellett) megjelen6 felir:uOl, ~ Value vi5wm nem l:íth.at6 tuJ~",lons;lg,
amely az elemekrt'll kiegeszítt'l Lnfo~ci61 tárol.

Ezen ~ [lOntOflawnoon nem kel! tör6dnűnk a Text (!s a value tul~Jdons;lg közötti
különbségekkel: ~ példlk sod.n minden vilo'ígoss:l v:ilik majd, Egyel6re g)'"Jkoroliuk
azt, hogy mik<'nt kapc;olhatunk adatbáz.isb61 s]jnnaz6 adatokat a különféle
listavezérl6khöz.

~ ...... _.... __ ._ .... _--


..
A.' I•

,-
_. - . .JJ

.• .
,-
..,.-

-.-.--
,.-
--- _.
11,1,~
Az oldal 'XY SipDmaSource

-0:, ....

.... ~~- .,...... il ér hiJron' Il$Im'<!Z~


ho4z<lad<is<l "tán
Kezdj(tk au:ol.hogy I&rehownk egy ÚJ ,\SP....r.r okbh LinControh .•• px~,
hozdad"nk egy SqlIbtaSouroe ~~úri6I:. és beállíquk úgy. hogy a Book5 ubb minden
~I ~ (I(SZIop;i1 'i.sszaadja.,u 111,'fRT. UPDAfte DEl.E'I'E 1JlaSitisokr:J nen lesz szi\k5é--
gOnk_ A kÖ\'~ai5 Iq>k. hogy eg)'-qn' OropDo":nllit, CheckBa:dl9. e lbooBullonUst
V('Úri6I: hOnmk az OIdalt:a. éi! rlfjük írJUk a "e~ ",,",·éI.,u Sqll):!,t:&lu~ és a h1rom
liSCI''eltrl6 no;aJ.adW utin a k~yón oIyumll kelll1tnunk, mini a 17, I ~br:1n.

Mmdh1rom Il!IIa\'e~ér1/1"
ok"" dtnkéjtbrn t;llllunk egy choose I):!,t;I Sour<:<: (A<büorr:j,s
kJV;ilaSZilsa) nevU hivalkozbl. amelyR' k~\\lnt'";I elindul a I):!,t;I SouI"C'C eonrtgUr1IlÍOfI
Wizard, A var.iz:<l6 ami k&, hogy adfUk mcg ~ '~~bnd6 :adatfOrr.iH't'ztrI<it. lUnvc
az eg)·esli5r.lvczérl6l< Text o!s V.lu. IUbjdolu:\g:dhoz kapaolni kl~nl OISllopolut
Állitsuk be Il\II"IdMrom "ezérl6 adalforri5al Ogy. hogy a Title oszlopo( jelmi~k meg.
az értélc pedig wrmazzon ~ BooklD oszlopból A 17,2. ~Irln aZ! l;ilhott,uk. halil' miktnt
kell briJli\;l.ni a [lropDov.nllit ,~Zérl/I" lKbtforr:i.dt ebben a p5rbesz!<bbbkban

_ ...... -_ -
=...-~~!
...
-_.................--...
-
--
17.l.1itn
\~. h II liSlO"eziil6h6J: 1tnpaoI.. , h, ./m nda/fomú-i'tth16l b. ..... /tp:>fIPI

MIUI;\n megadtuk a JistI.'·cz.érl/l" adaúorr:j,~l, a \"Isual Web Developer lCJ'\cz6 nézete


~mileg 1TK"~llozik, aZ Unlx>und szó (lild a 17, I ibr:il) helyeti a Databound jelenik
meg a OropDownLisl., RadioBullonUst b; CheckBoxLisI vezérl6kben A Il..tavc1.érl6k
I~nylege!l értékeit Qak akkor llthotlJuk, ha az ASP.NET oldalt a böngés26ben nézzílk
meg_ lia mindent jól <:Sin<iltunk. a képerny6n nl kell Umunk.:mU1 a '7.} jbr:in,

Mcgf®'elI)dJilk. hogy mll1deg)"lk llMa\'ezfrlo5 öl elemet \;I.rt;JJma:z; egyet.qrrC1 u Sql·


Ibt:lSource ih:Il VISSZa3dOU mi~ ~kordhoz. A !drom \'elbt6 kÖZÖlt 3bNn mUI~t·
ko;uk knlörtbs4 hog)' miként képenk le u elemeiket.
~ . ---"..
g.]z..• , -


...."...., .. - - - 'I
c__ _
lIo...y_o.. .._
C~_
C1>o_ ......
c ... ~
• •' Zw

-
11.3, . .
It '-~ flt 61 ritrIOft klJ'ldJ_:naJI, <VU''W'"''' /bQIfS ~ m/ndtm ...",,,1fIINz

A listavezérf6k dinamikus feltöMsének lH6nyei


A Il IKkébm l1uuk, hog}':iIn töh.lldjük fd .. ~kkd st:II.lrus:on:l. DropD(r~'TlWI
" .. ~" ÜSlIt<"nl CoIkClion Edll(ll" pjrbcsz!dabl3kon kereztUl A (Jl«kBoxWl b
" RxlioBuuonllit ugy:l.neZZ<"l m6clszerrel1ÖIlh<"I6 fel 5Clukus>.n. Al: ,,!bk mqgclenilt.
~Il<"z \I ,zu!ri6 01<05 cimlcfr'bcll 1lll11h.:uö FÁIIIICmiI hn'3tkoUsr:l kell kJnmununk

A ...1:bes Ilsuvcz&l6k lehAI limogalj.1k a 5Cltilrus fchölt6t, de gr"k",n el6nyOscbb, ha


:IZ elemeke! dinamikustn,,, vc-<hi6 "d:iúom15t!oz kapaol:l.s:h':ill olV'~ ..... uk be, A 51<11,kus
howrex:le16.sd lIZ a sond, hogy lu. II jövőben nJeS'':1ItOUlólk:l megjdcrute\1 elemek,
minden okbll m6d0siununk kell, ahollu..5zn:1lJUk "wkal, H2 azonb:ln dil'l:l.mikus kOtbt
aJUlm:azunk, ,-:loltoru t'SC'I&! eltg u lId:i~múbLil frissilenilnk, :ahonnan az elemeit
wrm:lznak, & keun is \.':iIgyunk.

" 11 fejezetben ptltl1ul ~lIkus módon fag)'l:r.ltokkalIOhÖltünk {d egy lenyfló lisclt, &
:Ifelhasznil6l all'll kmilk, hogy v:ila.s.Q;:l. ki a ked\'~, A:J. trlfkeket IchJl 5ta1,kusan
adtuk meg. ele en IIlCglchctJük dinamilru5an is, hll Iftrt'honmk egy lceCreamFlavou
nL"VIl tjblál az aWIb!lzbban, amelynek II követkeZO: kl:! os.zlopa vlln:

• IceCre<Ulll"lavorID - az egyes (zeke! eg)'e<!ileg :l.ZOIlOI5Í'16, autom:otilru5


5OIR:imoz1sO, int tlpusú, ds6dleges kulc5 mező,
• Fl",vor - az adoll r"8)-I,,11 rte\-o!'t (~oU~, \':iInllu scb.) unalll\óllÓ
nV"-tchartlI)O) hpus(i~.
Ezt kÖH1Ően az ASP~''ET oL:lalon <:gy SqllntaSouroe 'l!'zt:rlőo.d kiot-.~t",k al emliteu
úbb ao:bl:lJl, & a DropDo<>.'TilisI; ~1ÖZ k:ropaolhaquk azok;at. Ez túl sok munkiin::lk
tanhet ~ kfpest.. hog)' a:t.k ~únk n;,w.ny rag)ulttipust.1:$ tl-nyleg nem
,·tgzimk oly:m gyorsan. lII1IllIl:I ~nk o8"n)· ~t6sl a ,.ezérl6 1js{1~ Collection
Eduor abblcilun. Amikor azonlun a~ 3(btok:1.t nds okb .... k~ ~ rel ~ ~­
rolrn. ezzel a megkÖZl'!ít~ m:lr td(k .o;p6rolunk. alclrcsak abban az ~n, 1\;1
:IZ elemeket kés6bb m6doo!;ltjuk. vag)' lu ~l. adatb.lzisban Ö5SZC szeretnénk kapcsolnl
valahogya felhas=il6ka\ ts a ke<k-enc f~gylaltfukaL

A le8e8y:5~üb esetek ki,·étd~·el - amikor a~ elemek a jö\'6ben bizto•.;m nem


"~hOV\:lk meg, padluJ h3 a liSl.:lból a nemci. az 6d1 \"lIgy :ll.lgenlNt.'Ill lehe1.~
\'JbQth:uJUk ki - eHn ja\-asoIt dinam,ku. hsu\'~'Zl-rl6kct haSZJdlni

A ll. 1eJ8llItb.n r6VdIn tmIIIettúk, hogy • v~ nagyon sok Jdatb6DS 1Obb,


~ kapcsda'.bJn M6 tM.IM!6I 61. N. íly.! llIIkiós lMIatbMSOk hISlnMetItOr
lI'{IkI1III '*ífuoU, hoov ew Iis~ 6WetaPCSOII adatokkal Ulleltöltenünt.
Iyen uetben ~ fontos, hoov II . .totat tIinarríkUA1 nyerjúk ki 1l1dI~
risbóI, ft ne m-ót~ ba stalitUSlllIl ~

Programozott vtiasz 8 kijelölés m6d0sftására


Amikor cgy ...-cboIda1on ...·ebes ''Cl.l"116kl1Iu~lunk. gy:tk,..~n tudni S7.CTctn~nk. lu
egy lisU,,,zét16ben meg,..,"h~ ~ ki",1öIt elem. Minden lisu.,..,zé-rl6nck '"lIn egy
s..lt'~te<Unclex(:hang""- ~)'e. amely Vl5S2::lc5aloliskor indul t"l. lu a \'e~~
ktJ"iölt deine módosult. KDr.ibbi pékUnkho.l. \·1lJ6Z:Itén-e. adJUnk a Li.tC-mttol •••Upll
okblho.r. egy 8ullOn 1:$ cg)' l:Ibd '·czm6t. ÁIlit-wk ~ gomb Tellt lU~lPt Cliel<
lIe--i'e (KlIttlllt5 ide).:l eimke lD & TO.t !ul;l.tdoosIg:til pedig .tatu,,-re (:;Illapot), Illene
egy Ore!. k:uuterl.lr1Cr.l

KIh-etk.,1C5 Itpbk:ént h<>zzunk Ié!:~ cg)' ",'lectedln6ooxChan9ed eseménykezeIOt


a DropDo .... Wt vezérl6höz. Ehhe~ cg)'s;(en1en kaulI1t5Unk duplin a ,'eZér16re a ter-
\'e~ ~l'.CIben, vagy v:1ltsunk forr.í5 ~~. ~ ~':;I13S$lUk ki a vezérl6 azonost!"",!.
illt.1\'c a Se l e<:tedlndexChan\led ~'m('O}1 a képcm)"6letejffi 12111lutO lenyOó
Ibdlkb61. M!ut1in létreho~uk at e5ernéo}kezel6t. az ASP.I\'ET oldal fotT"15k6djinak
igy kell klnéznie:
Partlal :14 .. t.latControh
I,'.rIt. 'lyat_.loIe!>.UI,P"\J'"

Prot..,~.." sub ~."tl""l .. t.-lI",xdlangedtByV_l -..der


.. .... Ob)Kt. ByV_l _ .... S)'n_.rv_tAOV.1 Ikndl . .
.. !)ropDownLhtl.Sel .. ~edlnd,,~
A fenti esem6lykezd05 - DrnpDc>wnLi8tl_S.lectedlnde~ed _ mmden
alkalommal ,t:grehallódik, ha az oldal vis5ucsalolhl kezdeményez, b a lenyfló
l;sj\.>;ln kijelölI elem megvállOWU. Ennek kiprf.lW11s.1r~ ~dfUk az aljbb; k6dsort
:tZ e:i<"ménykezelóhöz;

atatuB.Text • ·'!'he drop·~ list val .. a • nov • ,


_ Dl >p1""'>WULlstl. 'l..:tedValue

Állil.wnk be f'g)' IlIréspcwllot ~ a somJl hclyeuiJk a kurzon a somi, é nyomp.tk Ic


az p9 bdlcnt)"űt. ''ag}' kaulJl~nk a mal}!Ón, Ez IlUn tndil9.Jk CI a hihokerc.1l'5t II Dmug
menQ Start p:m.nc:sa.... I, Ez betölti az ASPSET oldala II bOng&z{Ibe. Megflg)-elhct,ok,
11Og)· kC2de!ben nem indul el II ~lectedlnde"CNonlled esem&>)", men II 1cn~i1611Sl:1
allapota ,~hmatlan. A k(lpaTly&ek ezen II pornon úgy kell ki~znie, mint" 17.3, al>nn,
~l.U1 II kOlönbséggd. hogy al.6ta adtunk IlOlll (.'SY gombot is.

Az ASP.NET Wllbdde!KM v6;ren hibaklrltÚS e!IptWIlI 4. fejealben


10;1 r nmri. HlIwI ........ lnSSIteri 11: ~ lapo..... VIUlII
III .ntett Iect"-
A lcnyM lisdlxln kijelölt elm! ~ nélkilllt:lflint9Jnk II gombn. hog). az ASP"'ET
oldal újr:l\öltOdjön. A selectedlndexChan;Jed esemény ~ 5C1T1lndul d. ml,-el dllJez
II lenySl6 listában kijelölt clemnt"'k ( I islll!"1 Stlll/io U/leks) elóhb meg kdl ,~ltozni.1 M,~
",da:loSzunk egy mhik könyvet II IJSl1b61. és kau.in~nk ismét II gonlbra A \1"bLK...1O-
I:Iskor ezúttal lefut a Sel ectedlndexC1\ano;Ied eso:mbty, II hibak<:!1':'i6 ~ rIlC']:t:!.lI
II be1Iliwn ~l f~k II hibakm.'56 l"ututis;it az F5 bIJlentvO\'d: ekk"...
II ~ ablaka fri$sül, & II stat ... dmké-ben ntegjt:lmik I I l1Zent'I ~ kijc.·Ic'lIt k<)ll)"'
BookID &tékn·e\ (11sd a 17,4 ~l>nt) .

....._.
--- D.......... o.._

...""'_"'r.,.
,

-
t> ,_
$ _
' .. _

0 ..... '_0.._
(,,.,_ .......
. .~­

~-

"""' lU. jin


A cfmlttbm az ulOljárrJ Itijd(Jll Mm).,
~1d1""16
414 1Ml. rkl • MIri:IIdt!h4zjsokbl

'\kgjcgy~, hogy ha nem vi]toZllnunk 3. kij<>JöIésen, k újr:t ~ gombr~ kan!nlunk.


a SelectedlndexChanged esemenyre nenl kerül sor, men. -:unim Unuk - az csak akkor
köv,-'tketik be, lu a \isszacs:uoli5 el6l:1 meg-:>illozik a hsta\'(.'7,érl6 ilblpolll.

Ahogy a 9. fejezetben em.Iílelrük, 3 kiszolgálóokb!i kód és események, amilyen a IÍ5(;J.\-<!-


zérlők Selectedln(lexC~nged .,,;eml,nye és a hozzá unom esenlénykezeUI. csak
akkor l\.Idn:Ik "tgreha~6dni a webki5mlgál6n, h:! 3. böngésdl kif~;eZ<.'1len kéri n oldal
újr-Jtöll~ (a \'Í56ZJaalolhű. A listavezérl6k kijelöll eIen~nek megv:\110ztat~Sll alapéTtd-
meres szerint nem okoz ~csatoU"I. eÚft a ,..,d'0i6 SelecU(llndexChllnge(l
eseménye nem indul el azonnal, amikor a felhasm:lló m6d0:silp a kijelölt elemel, csak
akkor. h:! e"lJ. visszacsatolás kövel;' A:z. ~ I*1cU.nkban I*ld1ul a lenyíló hsI:1ban kijelölt
elemCl nw N"mber-<-61 I 'b"..a} St,uiio J/acks-re m6d0:;íthatjuk, de a 0r0pDc:r<>.T\ÚSI
,·ettrl6 SelectedlndexCNr.Tl<]ed eseménye addig 1>(.'111 indul el, amíg a dick Me ~
bttlntv:t újr:> fl<.'flltö!tjuk az oId"lt.

Ha a lenyíló hS(:1b6l el6!.:zör a 7he NumberhelyCll a t'islta/ Studio llada, m:ljd a Flsht
a"bcímú könyvet v:llasztjuk, majd a Cikk Me gombr:l kattlnttlnk." SeloK:UdInd",,-
Chllnged eseményre akkor is csak egyszer kerOl sor, mert a webkiswJgáJ6 slcmpom-
jib6l a lenylló lisclban kijClölt elem csak egyszer 0!tozik meg. n,e M.mber-r61 F/g/u
a"b-r:>. Ugyanígy, ha a lenyi16 list~ban kijelölt elemet nre ,v"moc,..r6l I lsual Studio
Ifacks-re n>6<Jo.o;iljuk. majd vissza, és így kanintunk 3. Click Me gombra. II Sele-cted·
IndexChIInged esemény nP,,, indul ..1. men ll. webkisrolg1ló szempontjib61 nt'm
tÖlténik wltow" lenynólÍ51.:1 illapot1oon (hiszen amikor a weblciszol~ló el05sz<>r
I.. ké-pev.e az oldal!. a DropDownUS( \.'ezérl6ben II 77", Num~rctm(l könY" Voll
ki0IamV3, és II visszacsatol~skor is ez ~Z énék \'lln érvényben).

Egyes esetekben iIITiI IahIIt szükség, hogy IIlOnnal tudjunk róla. lia egy ~staveW16
aIapota megváltolit. Egy oldalon példMlllahllt egy Ouick Links (GYGl"ShJVlIIkolások)
nev(l1eny16 ~$\W:;, amely a wl!bhaly nép~ertibb oldalait tátalja, és azt SZ&retnénk,
lia a Selec:t.edlnd.,>«:h4nljed eseménykezeló a felhawlálót! megleleJ6 OIdaIrlI
irány(18ná, amint kiválaszt egyet a l&nYiIÓ W$\ábó!.ltyen esetbeo IIlOOnal üjlll akarjuk
töheni III oldalt. amint megváltozik a kijeJölk - azt, hogy elt • viselkedést hogyan
éfhetjiik e( a listavelérl6knél, a követkero részben ta-gyalju....
MMkOl azonban nem bIZtos. hogy számit, lia a ~t&Velé!l6 . . .ta maqválton"k, '5
III tirtélre cm akkor vagytri, kiv6ncsiak. amikOl visSl&Csatol~ keriil 501. Ilyenkor
prooramlogiUt érdemes ehlyezni a Button Yezé~ Click eseménykezel6jtlben.
am&ly III oldal újratiilté~OI fut le.
17. ÓIlI • Adltkaped IInyIóIltik, vB. Ir$gorrb:Ik" JaWI"'''uTarb* 1415

Automatikus visszacsatDIás a 1istavez11ri6 megváhozásakor


A webes vezérl6k okos ómkéJében kzrewheltiink egy En.1ble Alltol'OSlHack
(Alll<>matiku$ vÍ5,Q;aC;:llo!i5 engWélyez6;c) nev\! jelölőnl;gyzetet, Ez II jelölőnl-gyzt'l
határoUól meg ~ vezérlő AutopostBaek tuLa~g3rt:1k éJtéká. amely aa jelzi, hogy
~ lisl:IVezérl6 elindít-e visslacs:uolht. ha az :ílbpota megvillozik. Ahogy Unuk.
:I. Jislavezérlők alapéJtelmcili szerim nem in,manak el Öflmtlköd6en visszacsalol:1st;
ehhez álul;ib,m egy gombr~ kell k,lltintanL Ezt'rt amikor listavezérl6ket haszn~lunk,
~ végfelhaszn:íló b:lrmilyen m6d0sí~ végrehajthat _ ki- él; bekapcsol hat jelöl6négy-
zeteket. illetve Vlilas.n6gombokat, v:tlamim megvil!oztllth.atja egy lenyfló li9:a kijelöh
elemél-. (,s:l. ki5a:>lg:'il6oldali kód adchg nem fog értesülni err6I. amlg:l.z oldal!
újra nem tölti,

lch(,tséges nonoon, hogy ~wnnal éJtcsQlni szeretnénk, ha ~ felhasználó 'TICg'''áhozutj;l


egy li5tavezérl6 ~Uapot:il V:!.gyil; ha a felhasWl6 rná<ik elemet \":1laszt a lenyfiólistlb61,
ki- vagy bekapcsolp egy Che<:kBoxU5t egyik jelöI6n~ét, vagy rná<ik "ilasztógom-
bot válaSZl egy RadioBuuonUst lehet6ségei közill, rögtön tudni szeretnénk II ,'1ilt0zá5r61,
él; nem akan.lnk arJ'll várni, hogya felh:lszrnl6 egy gombra kanintson. Ezt II viselkedést
úgy érhetjük el, ha bekapcsoljuk az Enable Autol'ostBack jelöl6négyzetet a lisla,'eu.rl6
ok05 ómkl;ében lia II jelöl6négyzetct bekapcsohuk. :I. 1i5l,wezérl6lekepezéikor
egy ügyft"loIda!ijavaScnpt_kóddal b6vilL amely azonn:lli visszaa;atolht okoz. amint
II felhasWI6 m6d05ítj;l II kijelölés!. Az oldal úlrntö!tl'sckor a list,wezt"rl6 Select O!<l-
IndexChanqO!<l ....,ménye fut le,

Az 6rd h~tr~lev6 rész~ 3Zt nézzük meg, oogy:ln has.zn~lható az emlitett liJIrom
bst:lvezerl6:1 mindennapokban A kÖ\'Ctkez6 részben egy oIy:m péJd:lt n~.tilnk meg,
amelyben ~ DropDownÜSl. vezl:rl6 seglt$gboel szűréS{ hajtunk '-égn.' egy Goo\'"I(......
vezérl6bcn megjelcrútend6 adatokon. A péld:1OOn ~ DropOownList AutoPolltBack
tubjdonságit Tru~ra ~llítjuk, hogy az adatok önmOköd6en frissiiljenek, ~mint 3 le-
ny061i5l3 megváltozik. Emellett ~zt is megvizs~jllk, hog)'lln gyí'Ijthetünk aootok:lt
a felh.aszn~I6t6l,l:s IK®-~n dolgouIlItjuk fel uok:lt a RadiolJuUonUst él; CheddloxUst
vezérl6lc: alkalmaz.1sivaJ.

Az eredmény szíirése
a DropDownlist vezérlő segitségével
Az e16z61úrom f~zetben:l Book!i adatb:lzi5táblával dolgoztunk, és I~truk, hogyan jele-
n,thctjük meg ~zö&zcs benne tiroIt könyvet egy GridView veztrl6bcn. A 14. leckében
megni'zl!ik, hogpn adhatunk .bed1ÓlOWtt" 5zűr6kifcjezéieket az SqlD:na$ource vedr-
16Mz, hogy megsubjuk, nlCly könyveket adja \'ÍS.5Z3 az ad,nfOfT'h.\'ezérl6. Konkrét:m
k(1 kifcjezb.t adtunk meg, alllel)'ck azolmJ a könY"ekre koflátoztlk ~Z eredmén)1,
amelyek azonno;ít6 érteke (BookID) legfeljebb 3. kiad:\sl ~e pedig 2005 volt.
416 111, ráz . MRlIdaIlWiwkk.

AJ; adaúOl'l'1s-vezérl6 ~ltal vis5Za~dou adatool bedrótOWll szilr6kif,*,zésekkeJ i$


koriátozhatjuk. de nlOSl mkibb azt ~Zt'Jelnffik, ha a weboldalunkr:l elljtog;.tó fd·
hasmo1ló pontosan megadhatn1 a szilrQ alappl AImkor az SqID>ltaSouru: vc.re1i6
"arllzsl~Uan énékeket hataromnk meg a szilr6kifefczések :Q;jnúr:l, rncg;ldlutjuk azt i5,
hogy a20k ne bedrólO2Olt Mékek legyenek, hanem az oldal egy másik webcs "elkr-
l6jéb6I :Q;jmuZUfl:lk. A2 SqII);naSouIU' "ezérl6l; tell:ll beállitlutluk ag)", hogy a WHERE
z:1r.Klék mondjuk egy DropDownList vezM6bcn kijelölI ~l{'ffi('fi alapuljon.

Ennek :w:omléltctésére el6:s2ör adjunk még egy os>.lopot a Books t:\blihoz. amelynek
alapjjn egyszeruen sZl1rhetfOk a rekordokat. AJ; oWop neve legyen Gen"l! (Míífaj),
tipus;! pedig n ...... "c h a r (~O) . Mh'el a \k>Ok e t:lbl~ban n"lr '",lnnak rekordok, \"'gy
alapértelmezeti értéket keU adnunk enllCk az aWOf.'n.ak, vagy úgy kell beállftanunk.
hogy megengedje" !';ull ém'keket. Egyelőre maradjunk az ut6bhi megoIdá5n~1.

Ha át Sltfttnénk tsmételrn, hogy miként kell rneghatMOlI1i egy SQl SlINer lOO5
adatbázist;\Wt a Visual Web Developerben, Iepouook vinu a 13. fejezetllez,
Akik jártasabbak az adatbázisok használatában, tadják. hoqy nvarchar ( 50 ) típusú
Genu oszlop /!elvett iDbb lenne egy új. Genre nevű keresőtáblát létrellozru, és
a Genre lD idegan kulcsot adni a BOok .. tIIbIáhOL EmeIIutt a mugoIdás melkttt ts
döntIletiink, ha jobban tetszik. de ha ez kínaiul hiWlglÍk, nyugodtan rTIiIIlIdhatunk
I Genre OsMp létrehoúsánáj,

Miutin hozzáadmk az új oszlopot" t:lbI~ho1:, jelenít5ük meg a t<lbb adatait a \rlSU,,1


Web DeveJopcrlx-n, és írjuk be az egy"" kooyvek mOfapt. A I'/,w(ll SlIidio II(Jcks és
a Create llmr Orm Websltee.;et&.en ál a Te<:hnology (tudom,1nyos). II n,e Number
esetében a al1SÍnes.s (üzleti), a The Cmel".,. jll J/w R\'e és a Ffght Club e5etéiJen pedig
:I Fi<:tion (irodalom vagy regény) megjelölés mel!en döntöuem.

KÖ\'etkez61':;pésként hozzunk l&te egy üj ASP.NET oldalt OropDownl,ist. " Gp", ~'en.
amely egy Ienyí!6list:l.b2n felsorolja 32 Ö65zes elérhető mUfajl. és egy GridView vezér-
]61; is umlma2, amely megieleníti 3:rok~! II kOn}"'eket. amelyek mOlaja megfelel
a lenyí!6listából kivllasz!ounak Ehhez k& SqIDataSource 'ezérJ6re lesz. szOkségílnk,
egyre a műfajok lisCijinak kiolva.sás:lhoz, egyre pedig a 1i5táb61 kiválasnoll műfajú
kön}"'ek kinreresehez.

A mtlfajok felsorolása ogy ~nyII6 listában


El&zör Ö6.S2pOrltosítw.nk a mufajok fá• .etelb<: a Ien~íló lIStába. A DropDownLilll vezerJő
a 800b t:lbl.1ban nqhat;lrowu ,,,la mennyi műf~jt bmlmazu majd, és a2 oklalralá!G-
g:Jt6 felhasznál6 alisúb61 kiválasztoo műfaj szerim szilrheti:l rác:sné7.etben megjelenített
kÖf\}"'Ck<:1. Ahhoz. hogy ll:ocllOzhassuk az elbhetó mufajokat felsoroló DropDlm'1'11.ist
'·cz&l6l;. az alibbi ~péscket kel! végrehajlanunk
L Adjunk n okblhoz egy SqlDalaSoun:e "e2érl6t, amelyet ügy állítunk be, hogy
csak a Genre oszlopot adjl vissza a Booh ~bI~b61 Az ere<!m{myt rendeU(lk
növekvő sorrendbe .. Cknre OSl.lop tnéke szerint
2. Ha a vllr:izsl6ban végeztünk, v1lloztassuk a vezéM ID lulajdonsjgának éTtéko5t
:lZ SqlDataSourcel-n'lI a beszl:desebb gl'!nr"BDataSource-ra.
3. Irjuk be a Choow a iF"r<' (V:íl~n egy nll1fajl) w.ilveget, majd adjunk egy
DropDownLlSl vezérlŐI az oldalhoz, 61 kapcsoliuk Ö5/;ze a gl'!nr .. aDataSource
~daúordssal, a Jcny06~,;u dt.-mc.°inek szövegekt'm és értékekénl egyar:1nl
aGenr'" OS2Iop én<"keit használva
4. MódoI;ltsuk a DropDownli:;t vez<"M 5emmilmOl1d6 DropDOwnLletl aZOfl06il6jjt
g",nres-re.

MOS! prób:íIJuk ki az ASP.NIT oldali a böngbzŐflkben ([:bd a 17.5. ábr:il). Figyeljük


Illeg, hog)' a lenyíló l~ 6telemc'l (art:llmaz - a 600k" úhla minden ""kordphoz

.... _- _... .
egyet--c:gyt."1 -. blr a tábla csak h~rom különböző műfajt tárol.

l"""",'_~·~.,,",·~,, _-)(
"

17.5. Mo
A w",)iM liSldba" .. B!JOkS uI!>ia
m{",/cr, rriorrljdhor larll>%1Ar
"RJ' el•.".. ,rem (sal, "",!"Jtmkt~,1 <®"

A hiba kijavf~ho.z ügy kelJ bt-:Ulitanunk az SqID:uaSol1rce vez~, hogy csak az egJrnj
(kO]önböz6) mlIfaiok:1l adja vissza a 800kH t1bL1b61. Ehhel: nyissuk ~g űjra
aZ SqlDataSoun::e veztrlő var:izsl6j:'il, 61 a Configure Ihe SeI..a SCUl-mcn1 ablakban kap-
oojuk be a Retum ()flly llruque ruwS (Csak az egyedi.sorol< ";ssZ3adi",,) jclöl6nég)··
lelet, ahogy a ]7.6. ábmn l.~thatjuk.

Ahhtll, hogy B1: it megoldás it kivánsáQilirW; szennt mt1ködjöo, 10010$, hogy


a SELEC'I' ulasftás csak egy oszlopolla..nrel3djon vinc.!!. A Retum only unique
rows ielöl6néllYN1al bekapcso/va I seu:cr láriidétba'l SlIIfep!.! 6$.m)s oszlopot
megvil$gáltBljuk, és it lekérdelés csak akkor ~éI egy sort mésolal/lllk. ha rnindM
OSlIop /irték8 megegyezik egy múik sor írtékeivel. Ez azt jelenti, hogy ha I SELEC'I'
utasftjsll1k mondjuk it 'l'it l e és Genre oszlopokal adja VtSUII, akkor az alttdmény-
be mind III öt rekord bekenJ. Csak ak):;or maradna ki valamelyi/t:, ha kM olyan könyv
!etV\/! az adatbiztsban, 8trnllynek a címe lis I műfaja is rneQeOV8zik.

A fenti m6dosfús végrehajl1sa ul:tn nélzük nx'g (iir3 az oldalI ~ böngé:slfiben.


A 1"")'116 li5Iában ezÚttal három elemet 1:I1~lunk Busine:ss. Fiction bl Technology.
418 I ll r6Il • MIda ~.

_._
--_ ...... _........_--
-_....._.- _....
-
_~

11.6.6bnI
.11051 .:salt a k11MnbőztJ miifajoknl OOft" ,,,=,a

Adatok szt1rése a kijelölt múfaj alapján


A kö\'etkez61épés egy GridView vezérl6 hoz.záadisa aZ oldalhoz, amdyben maJd q;:Ik
azokat a könyveket jelenítjük mcg, amelyek 3 kiv:lla~nolt műfajba tanoznak EI&zör
csak 3djunk egy GridVit'w vctffl6t 3Z oldal hoz, ~mely az ~ könyvel mul:nja
a Booke ~bI1b61. Ezt n elmúlt kb. Wban ndr többször is megtettük, ezért bizonyil':l
könnyű felad:tl. Csak egy SqIDoltaSource vezérl6re lesz szOkségilnk, amelyet úgy kell
beállítanunk. hogy minden oszlopol6 rekordol visszaadjon a Books t<\bUb6I. Ahogy
a mOTajolm vi~adó SqlDataSource esetében teltük. v.1hoztassuk meg ennek
n ad:túorr.\s-vczérl6nek n azonosítói:it is, SqlDa~"Soureel-t61 booksDat ... Soure~-",.
Ez udn adjunk egy GridV.ew ,'ezérl6t a Z ASP.NIT oldalhoz, 6; kapcsoljuk hom
a book$IloltaSoUrCf! adatfomist. A r:icsnl'ZeI 3ZOflOSíl6ja legyen book • .

P~ljuk ld az oIcblt a böngészLiben. Mi"el a booksDaUSourcf! SqID:uaSouroe ~g


nem Sl:Űri 3 múbj ~Ia~n 3 könyveket., 3 r.icsb:In az 00:ze!: könyvel 1~ljuk, flIggedenOI
au6l, hogy melyik m(lújt jelöljük ki a lcnyíl61is(~\.>;tn. A következő lép6; eztn a ~lO"rh;
megv:d66it:1sa:ol bookeDa~il Sourc .. adatforr:\s-vezérl6n belil!. EJlhez lérjilnk vlsl;za
aZ adalfonis-vczér16 valliz.slói:ihoz. és a Conligure Ih<: Select Stalemem ablakban
kaUintsunk 3 Wl{IUIE gombr.l n Add WHERE Clau~ p:lrbeszéd3b1ak megjeleníléséhez.
A SEL EC'l' uta.sítbl>oz az alábbi ;meRE ú.",&kot ke!l3dTluTlk,
SELECT •
FROM P,ooka J
IfllERll IGenr .. 1 _ A l elU'fl d ll.t "'born k.ijelMt ••1t.j
MIVd lll:l~, t'oOg) ez '" WHEItE z:.,ir:K!t;k a "nu ~I mlIkOdjOn. t'll
at 0S:tI0PDl keU kivibszc:munk a Column lisUbóI. Az Oper.ttnr Itstiból ~ála~:.zuk l Z ·
m~letet. a Source 11$t.lb61 pedig,. Corurolleh..."I&éget, nli,'el ,. szíh&ifejt'~ abp."iul
az oldal qn'ik webes velérl6jének éTt.:ktt. akarjuk ha,ználnl. A Controll(')><-"I6:s1:geI
VlIJamva,. jobb fel56 sarokoon uW!ut61'llr:l1ncter I'roperuC!; mező fris:;(j1. és mt:gje1eníl
egy COntrol ID (\kz.M6al,0n05ilÓ) felir:lru 1enyDó li$Ut. ilkwe egy Default \:aIUt'
lAlapéTtdmeD!U ~J fd,nuÍI 'iW'.'egmez<'iL Az ~b6I ,-lbs.l.zuk a g~"" .. ,elérlc'Jl:
(''agris a DropDolP.-nw vu&t6nket). Abpéflelmo:D!U Méket nem kell VlIl.:uz1:Inunk,
"In'lJ08Y ezt '" mcz6! Gresm Iu.ln'llafjuk

fl1en6nuilk, hogy a képcmyóokön aZl1ál;Uk~. nHm,. 17.7. lbcln. II\;;ljd bninlSUnk


az Add g<.>mbra, hogy,. l);Inulléten al SqIJntaSoun:e ,'CdTI6I>Öl. adjuk Az OK gombbal
tt'rjOnk vissza a Confisun: the Selce! Slatemcnt ablakhoz, majd fejeUUk be ~ v-ar:hsI6
has~l:t!ll

_.--__.._---
--------_ . -_._--
.. _------
-- --
-. ~.

--
17.7. an
lqo,l".tfo/ <:!lY WlfERE :ufrrufAot pttmn~l..té",. ame()"do ~ a gen""
kn),il6 II<MbIln W"VaulOll ,,",.. /onMrozzt/ '*ll

l'óéuilk meg ó;r~ III ASPSET oldalt '" bön~ Etilttll az okbl d$6 betöltésckor
a rkSMU'ibm csak egy kOnY'iet (The Nu,"~ fogunk I';:tni, mert csak et ,. kOn)""
fdel meg '" Busines:s miJr"'JlUk (U~ '" 17.8. <ibr.it), ~ljuk ll106t m6doI;;i!,.ru '" miJbil
'" knyM l!$Úban_ srmrru $Ol'1Il lOO ..-..uk! A rio ~ nundtg,. nil!' Aumber dmiJ kOn)'v('(
mutatja. Ennek oka az, hogy rnl-g nem ~lyeZlOk lZ aUlOm:llllru~ v;ssucs,noUSl
" DropDo"."I\Wt ,~ú'rl6ben, elén a lenyíló Iwoon kiiclölt elem megvJlt07:!<lt;\$;I
ÖIlmag:lh:m nem okot v;ssz:;ocs;.tohlS!. Ehhet a \('zérl6 AutoPoIltBacl< tulatdo-n~gal
True-nl kell :i1lÍ!~nunk. J~vilSUk ki telót ezt 3 hibill, lI\;;lid töltMlk be újnl az okblt
H~ lT1OO9 núsik múf",jI \"~l:l.wunk:ól Ienyfl6loob6l, ",zoldll Ólnltölt6dik. b" r.I~zet
frissOl (Usd:ól 17.9_ .1bril),
420 111. r6a: • MIIltI ecII'Mzisokh.

..... _-""'-
l,···, ... ·,·.............. _" .. "" • ~ •

.) !lJ!. --(7'

- -
............ ...... J ."~ ...,,. • ... 1 _ C,o"

,"'4flOO>
iM .... ,,,.,,.,... ,.,. 17.8."
A DropDtm">llJsl.aJ(l.~
oldal az első ~t6;"",

-- -
_- .. ,._....
......
\

- ... ~ ,. '...'.-
.,.
17.9. Mn
AZoklal miiI/d "

-
" feiJUI$!L.tAJ6 " /enyfM
, r_ c. _ _ l/SIti/xw Idjdl.lll i!Ii.-met
Bu.sín=rol T<'Ch "~m
m&/osl/Ol/ft

A OropOownlist VeIérlÓ Autopos t Ba.:k tuIajdonsigit nem flIlbitkmül kel Tnle-fa


iWI~ani . Azt is m&gtohlltjúk. hogy egy gombot adunk III oIda11K:1l il lenYII6 ~stil iIIá,
Refruh (Frissítés ) felirattal. Em! a gombra ~attintva is elindíth8ljuk allisSllICsatolésl,
és lrissfthlltjük a rácsoézetet e lenylló listáboo kijelölt érték alapj ... A lénv~ teM!
az. hogy valamiképpen visSliICsatolás! ÍIldÍfsunk el, hogy a rácsoélet lrissüljön, és
ell eIérl!etjük lIl "'u t oPosta..~ k rutajdonsjg Tru..-l1l 611ít~aI, iIIetW egv g0mb-
bal is, amelyre kattinM il fellasmtol6 mage kezdemoinye:h&ti ill oldal újrató~ését.

Adatok gy(ljtése a felhasználótól a CheckBoxList és


a RadioButtonlist vezérl6 segitségével
II ll. ór:Ioon IJittuk, hogyan gyűjlht'lünk ad:uok:u 3 felh.aszn.116kl61 3 a'\eCkBox €:s
RadioBuuon vezérlői<: segítségheJ. Eleket u öru'illó veu;rl6ket h~swlva minden
stilkséges jelöloo<'gyzethez 6; vilaszt6gombhoz egy-egy CheckBox \ ':Igy R:ldioBunon
\"ezM6t kellett elhfolyeznilnk - ehelyett :a.zonb:m alkalmal.h:llju k a aIed<Bo~ Li~ b
a Il.adioBuuonÜSl. vewrl6kt.'1 lS.
ErN6WaÖ:; 'IIUa, hogy j,lőI611'gyzetet 5O!MI lilii 'nI/'f több.." kivflrrrtAdt
~ • lthaSmMÓknak, • WIaslt6Qcxnbot kÓlli azoma., Ig'fIdtJÖIIQ
ellik "lf lehet beJtlölve.

A OleCkBoxüst és a RadiQBuaonliSl el~i\ $l:IUku$:lll a ~ilem Collection Editor


p:ilhe::nt<bblakhul adlbllUk meg, amelyet a vezérlöokos dmktjtben IC\"Ő EdIt Items
ruv:llkoúson kereszttil ~letunk el. Azelemell hoz:HixUsanak menete aeknek
.. VC'~ az ~ LSlTK'8'I'8Yl'zik azz:aJ. anu! a l)ropDo\.,núSl \'e2t.'ri6rIéIl:.lIunk.
A ~ Jq:oéIekel a II fc,ezed:>en ~lltik

A CheckBoxList és a RoidloBunonlAt egy adaúorris-VC';r.&t6höz is kölllet6. a1lO8Y


II f~;r.eI koriibbi, Admolr lIaPCSOkiSa a lisJtlt.ICZMók/lÓZ dmO' részében 1~lluk. Akkor
uonb:m nem tirgy~l\uk, hogy mik6u ~llapitha\luk mell, hogy II felhaszo:ll6 melyik
elemel (illetve a Ch«kBoxUSI esett'h-n mdy elemeket) v1las.ztona Eonek!öbb módp
15 "an.

• A IÍSQ,~úrl6 ~nek egyenkénu \'iZ:ig:ibl:ll


• A :!:el.ctedlt_ tub~g ,·lZSg:ilal:ll. amcty h!\'motiSl tanal"",z a kLjdöll
.,~

1'(:U\ik meg miodkét ~1.enl EI6szőr ho:aunk létre egy \Íj J\SP....U okb1t Ch_ ,It.>.nd-
Radio. up)< néven, amelyen elhelyezünk egy SqlDauSouIU'. egy Chc<;kBox~ 6 egy
RadioBul1~ ,-e.ztrl6l:, Á1hl5Uk be \Így n SqID'JtoLSoUlU vezéT\6l:. hogy II Book. tábla
nunden oWop:il 6 .... kOt'dj.l.! \'1SSUlIdja, b lu.pcsoIJuk ~ nund II Ol«klk»tllil.
mmd a IbdioBunon.L.iSl •. C'ttrl6ho.z 6gy. hogy a h,st.lVC'zerl6k a Title (QJOPOI
jdenít'18: meg,:;IZ éft",kGk pedLII a BookID o.szIopb6I.szjtm:lZZOl\. \'i'gUl adjunk tS)'
8onon h egy ~I .... efx,s \"f:.zérl6I: aZ okbJl~. adjunk aZ d6bbihe~ eg)' ct kk
~n)'kezd6l:, majd \öröltok a dmke """t IUb~g1nak &tékét. h rendcljilk
hom a UlIlIlts lIzono:':16i1Ó1.

Súnjunk rá egy PerttI, til nt7.l.uk II"-,!! n okbh II bönllés.z6ben Jelöl6négyzetek- liOn'it
kell l:ítnunk, amelyek a ú~ban taülhal6 öt kooyvho.z lar10ZlUk, lIlalluk pedig v~lasz·
16gombokat. amelyek ug)-'anezeket II könyveket !OfOIpk rel.

A listllV8Zérl6 alemeinek feIsoroltatása


Ahogy ~ lecka....'1'I kocl,bWn emlitethlk. ffimdh!lrom hst.weztrl6nek ."n egy I t _
lulaidoru.:tga. amely ~ 1i5t:i clcmeinek gy1lj1~n~ 1~r1alnl:lzza, A g)'LTjtemény elemeLt
prDIIl1Lmból az aLibbi kód<bl $OI'Oha!h:n;uk rel-

-,
, " CheckBo"Lht el_lnelo. f .. borolt ...,b ..
ror b,-"h l i AI; LlIt I t . III li.t4V11z"rl/l'lll.lr_
, ... '1 lists@l_ .1yf,o;J~end6 lIllvele
422 11.,. . ,......"'1 ... · +tol

Mo akru:lIi$Iisl:lelem (li) ruLa~IPII" ,"Ol !<l<:h oklwon bdOI trl1ctjOk el


A legfoolos:obb IULajdorWgok II ko\-etkez&

• elect..! - Logibi bték. amely UI jelzi, hogy III elemel kid.lasztou;I,-e


fellWOZlÚ.I6.
II

• 1U:t - A Ii$edernkl: melli""lm.ilen no..eg.


• V.l ue - A li~demhe~ n:ndclt (:ntk

lb II n.ul t . cfmkében meg slert:lnénk jelmllenl II kiv5IaSZlon elemck(.1. n 1Ili!.>bi


kódot lr1uljuk,

. A ·h 'kac»<t..ht el_inet fel..,,,U.'I. . .


,.~ ...CII II A$ Lletlt_ ln c:becklloxl.htl.a_
It 1I,"IflC"ted Then

... "
A kód els6 SOI'3 törli II Label ,..,ttr\6 '-'xt lulaJ{lor>5lg:ina k b1ékl:1. m:ojd k,irj:l
J~·hecl<SOxLlnl 3ZO<lO!iit6jú Checklk:l~U51 '·elérh'5 elemei!. Hl! egy elem k!\""~l;.Lmoll
JlIapotú - v::I.gyts " l i . Sele,ted éntkc 'true -. II clmke Text lullljdocutg:iho~
hoaifLlzí1nk egy kar:dllcr1~ncot. ~mdybcn jelezzuk. hogy az lIdott lislllel"m(.1
klvJI3~lou.1k. (A ka",klcr1Jndxln nerepl6 <br '> egy IITML-clem.lImc:ly!lOrlörest
Iktat be. Igy II kil11t"nel oIvaWlóbb lesz.)

• - --, -- - "
G-
- • :-, , , o
• ,
,

.,---
--
.... '
00.-,_0.._
_c-. ......
t'1'oloa.o
•c ,_
I _
h. _

0 0 . - ' .. 0..._
.~ -
" .... 0 - ......

"',.
----
, ~~

_--
.... c-. ...... _~-
....

,-
__
,
-- 17.10. "
A cl",. _ _ér <lZ /wIlarott.<l .....
, I'I*,
MIO.- """'I'i ..... I ~ . ...nyJnItII<f,..<g)%I!ri« ~ ~
Az ASP,NEr oldalt ~ 17.10. ::Ibcln l::ltiuujuk. Figyeljük meg, twgy minden bejelölt
jelölooégyzethez tartOzik egy-.egy üzenet az oldal ~[iin elhelyezeIt cimkében.
CA megoldás II ~laSZ16gomblislll eseta;.en is ugyanígy maködik.)

A S.locted~.m és S.loctedV.... tulajdo"úg.. hOSlJlálata


A II. leckében láttuk. hogyan iÓllapíth;Itjuk meg progI'".tmb61 II selectedItern ~
Sel e ctedVll l ue ro[:,jdonságok segítségéve!. twgy eg}' lenyíl6Iis1::1lxln melyik elemet
vagy értékel jelölt8: ki. A Selec t e<1I t Olll tulajdonság a kijelölt elem LiBt ! t_~ldán~t
adja vissza. mig a S.lltCtedV,:llue az elem értéké!. Euel II kl:!. tublJClonsolggal a Űled<­
BoxLi5l ts II RadioBunonLi& ~-ezérl6 is rendelkezik. de ezek e:5d8x:n óvatosabban kell
6lcet haszn~lni.

A RadioBuuonLi& ts QIeCkBoxlist vezl:rl6k hasz,ciJaakor bzben keU tart:lIlunk, hogy


el6forduJhal, hogya fellJaSZ.rd16 C(JJ'CIle" ek'11Ie1 $Ie", viJam ki. (Ez a DropI)ownLi~
e:5e'I~ nCm fordulha! cl6.) Micl6n lClcit az említett tulajdonságokat igénybe ,'Chetnénk ,
el6tszór l»eg kell biwn)'OllOdnl.lnk rób. hogy '"lIn ki~IaSZ10tl érték. Ennek legegyszertJbb
m6dj.:1. ha megnézzilk, hogya Selec t edIt_ ruJajdons'íg értéke Not hin!l~ (semmi)
I la igen, "IIICS ki\":ila5ZlOt1 elem.

Az alflbbi kód feltélek: gondoskodik róla. hogy csak akkor lépjünk tOl"ább. h~ a fel-
hasudl6 \'alamelyík elemel kh':í13sztolla, Teh"t ellen6rizzilk, twgy II Seloec t edlt_
rulajdons'íg értéke nem No thin\l"'-' , bo ha nem, akkor érjük el a S.. lec t edltem bo
Sel ec tedVll l UI! II.Ilajdonságokat (1:iMI a 17.11 :ibr."ít).

"' ...
o .... · g
_-~ ...
]".. " ..._ .... '_rl"'.. ".. ' .. ~."
.
_ , 'x

,- •
J ee _
t 'l .. •
O_ Rodu

0 0..1"_0-"_
.~­
O ~c.Io. . ... .".
o ,.. ~
I
I ck". ow I

_ .......' '..,..-..Tio_ 17.1I. 6bnt


A Mil/IS CÍ~r U 1dje1611
(J'_ "f,,~ • .=- ,<!/aszrdf/omv ~ 1A,1""j".
, !.6811uk. _lyik .l"""'t jelOlték kl a v.Huzt6qOllbliat<l.boo.n
If RadiolluttOnLiatl.S .. lecte'lIt. UNot NOthing Then
re.ulU.T.xt ,~ "Fr".. the Ra,HoBUttOnLlat YOU .eheted • ,
_ RadloSuttonr.lnl. electe.;lTt• . Text
"" H
Ha egy le/tételes utasltássat nem e1en&iuük, hogy a Select.cUe_ nem
Notblng-e, kivttllllép lel, tili a lelhasználó egyetlen értéket sem választott. és
lTIII\IIlI"6báljuk elérni a Se lectfldVa l ue tUajdonságot. viIgy a Selectedi tem
valamelyik fésztulajdonsávát lpéldául a Sehctedltem.Text-etl.

A Selecteditem k selectedV.. lue tula~kkaJ bpcsob.lb:1.II ~U<l1 is ti.nctoon


kell IcnnUnk . hogy em'Ctlen '-'ht n ...... pélo:Unyt '":lgy értékel admk viS&:!. ~108Y"n
n\\tkö<!ik ez ~ CheckBoxlisl eseI&en. ~nlclyl>en,~ több c1ctllt't is bejclőIhetilnk?
Nos. a selectedlte.o b 3 selectedValue a 1i.5l~ clsó"kijclölt elemét 3dp viMz:!. ezá!
ezt. ~ két tub.)donságoc: általáoon C%lk 1enyí\6I~k"'" és v;íbSZl6gombl~kkal has;:-
náljjk. Ahhoz. hogy megállapíth~ssuk. hogy egy ;e~-li5táoon mely ctem.:ket
;elöllék be. a li.5lJ l t _ g)'IfJleményének fdsorohatásánil kell marddnunk, ~hogy az
eJ6zl1 resw...>n láuuk.

A RadioButtonUst és CheckBoxüst vezérl6k.


megjelenésének toslroslllbáso
Az ASI'.NIIT más weI>e1i ve~éri6ihe~ h:1$onl6:on, :lInd~-eke\ a könyv ~n megtStnenünk,
a Radiollul1onlisl és CheckBoxUst '-erert6Imck is van Font, PoreColor. BIIckColor Slb.
rubjdonsiga. Ahogy a többi ~'ez(irl6 e:;etl'ben, ezeke! a tulajdonságokat most is ~ I'roper-
tie5 ~blak AppeJr:l.Ilce réSZaJen taliljuk meg.

lu. emlitett rulajdon.o;;jgokon kívül a RadioButlonUst és CheckBoxUst "ezéri6k olyan


említésre méltó tulajdons;lgoklcoll is bírnak. amelyeket a Properties ablak l.:1yout
(Elrendt-zés) rfsZébcn lelhcfilnk fcl. AlapérLclmezés szerint mindkét vczérl6b6i "t.able>
HTML~k'm jön lkn'. amcll'l1<'k 5Or:I1 a wz&\6 elemeit jelenítik meg. A n.l. példában
egy olran CheckBoxl.i5t IITML·k6o:\Pt Uthatjuk. amelyet a Booka tábla tartalm:1hoz
kapcsoltunk, a l:lyout-beáUít:isok:lt pedig az alapénelmeze!I é-nékckcn Il:lgytuk.

11.1 . ""dl A ChffJúJo.~LlSI alUli II'Irr'h<JZOII IrTML·1tt>I1 ru 1lkIph11'1n1l'Ze1f l'I""tll=ht


betilJ,láJoImdI
l: < t.bh l ct- ·Checkao~Lhtl" bor(!.,r~" O· >
., <tr>
), <td><inpUt ict~"CheckBoxLI5tl_O· type.·checkbox·
_ .....,..,=·Ch""'kaoxLhUSO· l><lAbe l for="Ch .. ekBoxLl.tl_O ">
_ Visual Stu<lio Hacka<IlAbelH/t,h
4, </tn<tn
5, <tct><Lnput \d~·Check80KLi8tl _ l· t~A"checkbox"
_ nllme~"Ch9CkBoKL1atlSl" '>d.botl tor~"Che<:k80 xL i"tl_l">
11. 6ra· Ada*~k1ny16 ~ WlH!I~"_16gyzeUt 1 425

.. Cr .... te :tour 0Wn Web.1te<llabeb</td>

1, <tdHinput 1<1='CheckBoxl,iatlJ' type.'checkbox'


.. """"', 'CheckBoxListl S2' I,.dabel for_' Ch. CkBoxl,htlJ'"

8, -</tr><tn
~, <td~<input 1<h 'Ch""klloxl,htl_3' type"checkbox'
.. n_='CheckBoxU.tlSl' I~<label fcr _ 'Ch""kBoxLhtl_3'>
.. The Catch"r in th" Ry<></label></t">

ll, <t"><1nl)'.lt l'" 'C'heckBoxLhtl_~' tYP"l'-'ch'"<:l<box'


.. na.ek·CheckBoxLhtl$4· !><label for~'CheckBoxLlatl_4 '>
.. Fight Club</labeh-</td>
H, </tn
ll, <!tabl",.

Amint l.1ith:ujuk. a jelöl6OCgyut·!ist:lböl egy egyosz!opos HTML-t!ibl.1izat fön Iéire,


amelyben minden jelöl6né-gyzethez egy-egy ~blá7.. tsor tartozik. Az eredmény a relha5z·
nál6 böngész6"t8>en jelöl6négyzetck rügg61egei li$l.1ija, ahogy a 17.3. ábrán ~thauuk.
Ha kcvb elemet használunk. a Rad'oBullon List és CheckBoxLi51 vezl:rl6k elrendezhj
tulajdonság;';f!;(k abp(:ltelmcz~'\l énl!ke megfelel, de ha több tucal jelöl6négy"let~'\
"'gy vábJjztósombot szerftnénk elhelyemi, az egyetlen Függg61eges oszlop rengeteg
énl'kes helyet emészt fel 3 kl'pemy6n, ell'1t aZ elemek egy Q&llopba kénpzeritése
helyett 6t:Iemesebb a jelöl6nl:gyzeteket és vá!as.ztógombokat több oszlopba rendemi
1\ ~yout rész lulajdons.~g3inak segítségévcI aZ elrendezést testresz:.bhatjuk, €:s a két
veZérl6lekl'pezésl'l m;ÍJj szempontból i5 az igényeinkhe7. ignitlutjuk. II legfonl~bb
tulajdomigokat ól 17.1. ~bl:lz:.tban wroltuk fel.

Tulljdonsígn6v Leirá.
CellPadding A lek"'peZet( I~bl~z:.t ccll1i köZÖlt. illetve a beL!;6 unalomhoz
haszrutlandó k;lő1~b;c lut~roZl:l meg.
C.llSpacing A ~blázat.:;ell~i közöni t:h'Ol~gOI adja meg.
RepeatColumn8 Azt hatlirozza meg. hogy holny ~opnyi jelöl6négyZetet vagy
vilam6gombot kell megjeleni!en;. Az aL:.pértelmezetl Oérték
egy01izlopos megjclenÍlés( eredményez.
RepeatDüectlen Azt jelzi, hogy milcént kel! elrendezni az elemeket. Az e!tende-
zb v!Z;$7.;nte:. (Her! tontsl) '<Igy fOgg6Jeges lehel (vertleal;
ez az abpénelmez6).
RepeatLllyeut A RadioButtonIist ,,,gy CheckBo:dJS( vez&!6I-f1'ML·1é való
lekl'pez6iekor haszn.ilandó k&lot adja mcg. Kél értl'h't vchel
rel; TabIe (ez az alapéltclmezb) "'SY Flow. Ha a Tabh
bdllrúst választfUk, a jelöl6négyzetek vagy vilaszl:6g0mbok
egy IITML-tábltiz:.tl;>a kerülnek. míg ha a Flow mdlen döntünk,
<span,. elemek jönnek létre.
A vez&ll'i v:11:l$Z16gombj.linak, illetve jt'1öIl'inégy2!eleinek lekfpez6éhez használt
HTML-elemeket a RepeatLayout lulatdons:ig ha!:lrozza meg. Az alapértelnK'Zeu l:rték
~ Table, amely egy HTML-~bláza!OI hoz létre, 3hogy ~ 17.1. :lbmn l:1uuk. H:a ez!
a tulajdoru.igot azonban a Plow értékre állílJuk, 3 <tabI b helyei! <~pan> elemek
jönnek létre. Egy ilyen bdlJítással elJ!iIOC! CheckBoxliSl HTML-k6d~1 a 17_2 péld~ban
I:Ith3!juk.

l: ~span ld2·Chec~~ietl·>
2, <input id_·CheckBoxLi~tl_O· types·eheckbox· namr.·CheckSoxLlttlSO· I>
), <label for~·CheckSoxLi8tl_O'>Vi8ual Studio HaC~8<llabel>
(, <ln- I,.

"6, <input id,·CheckBoxLi8tl_l" type="eheckbox· ~~"CheekBoxLiatl$l" '>


1, dabel fOr~"Chec:"BoxLhtl_l':>Cr .... t. Your o.m io'ebflit_/labeb
e, <hr I,.

"
10, <input id~'CheckBoxLi8tl-2 ' type."checkbox" ~~·Chee~90xLi.tlS~" I>
II: <label tor~"CheckBoxListl_~'>Tha NUmber</l~l>
12: <bt: I>
ll:
14: <input id='CheekBoxListl_3' type_ 'ch8ckbox" ~o"CheckBoxLi.tl$3" I>
15: <label tor'"Chec"BoxListl~'>Th8 Cateher in the Rye<fl~l,.
16: <hr I>

IS, <Input ld="CheckBoxLlatl _ t" type~"eheckbo x " name.·checkSoxLiatl$4" I>


19: <1"bel for."CheckBoxLlotl_4">Plqht Clulx/labeb
20, <,apan>

A <tabla> hd)'dlleMl eg}' <apan> elem jön létn:. ~n kívúl minden )elö1<'lné'gyZeI
utJin 5Zl"rept'1 egy <br I> elem. amely sortörést idéz elő a böngé,zóben. A 17_2. p.::1ct.1.-
ban IJhruu6IffilL-k6d mllidncm pontosan ugyanaZt eredm~nycli a böngész6ben,
mint ~ 17.1. p.::ldáb:m I:i!Olt <tabI.>.

A CellPadding ts CellSpae1ng tulajdoosáp alek/ípazett táblázat CeI8i


között, iletva a bels6 tartalomhoz használandó kitöltés! határol:zál meg. de ~sak
a Tabl .. .... endem alkalmmsKor. Ha a RepeatLayout !ulajdo~ PlOloM'a
álítjut. ezeknek a tula;oonúgoknal:; al értéké! figyelrntlfl kívül hawYja a leképez6.

AlapJUapol:oon ~ Ole<:kBoxU5t 6 RadioButtonUSl vezérl& fa~, err; oszlopban


jelenítik nK'g lIZ elemciket. Ilosszó jel~gyzet·l~k és v::ilasn6gornb1i&.1k h;!szn:1111-
ukor azonban ctW:~'111bb:.lZ ek.'1roeket. több OIiZIopba rendezm. Ehhez II RepeatColumna
lulajdonsigot vehetjilk Igénybe, amely a21 adp meg, hogy I~ny oszlopot kell hasmiJni
"megjdmk~~ 6; birmill'rn nrm neg;.liv ~ 6t&rI fch-d>el. Az demri< dn:n.
dezé..enck Il'inYOlI" Repeat:D1rection ~ggaI :ocIIu1lOk meg; mnek !rt~ke
Ilori~ontel vagy Verticel lehel (e~ utóbbi;ll alaJ*!teln>clés),

A 17.12. :i.br.;o egy MrornoszIopo.,; O>eckBoxllic és RadioHullon ~'ezért6l mut;ll. Az ~br3


"R~etDitecti<>n tulajclons:1g habsál is~: a Ched<BoxI isi: ~ EQ;l
alubjdons1gol v.niceHa :illitottuk, núg a IbruoHutlOnUsl ,'Cztrl6nt1 Kurhont.l·",_
Az eredményt a BookrD $ZC1lnl rendcztOk, eztn a \'lsl/aJ Slllllio Hackt Je5Z az e1s6
könyv, a~ a Cn'tIle )o,jr Olm lr'ebslU', m:I;!d a 700 l'o,m,berkOvet,6i Igy tovább.
AmInt ~that6, a ~7.rI:·lisa::.tban az eb6 kft k<'ln}"":ll ebl5 oWopban l:lWh31Ó,
,,~ keu6" núsodildxon, & igy lO\1ibb. A kimenet Id'dllmyeg&en soruk $7.enm
\'an csopono:sir.öI A R:ldioBuuonUst ''ÍZ5Zinlo!S e1rrndezee azonban oszlop::>k szerimi
csopono.J!:1st eredményez. ahol u els6 t~rom könyv kerQl:u elll6, és az utolsó kl1.
kötet 11 mbodik 0QJ0Pba

c___
_f___ 0. . _
0100_ ~"","""

0___
( I _ t_ _ _ O'/Io~."",

'O ... ~ . . . . . . It ""'" """

11.12. ....
~ RlJdlt)8m/Or1J.l.<llis 41)' Ch«1IBuxIJsI ,>tthI6. tUttJI .. 1/x'pMlCclumR$ 1OTt.... J

Azt is megI'lg)'Clheljök, hogy a ~I:lSZI6gombl~b:m 1Ug)"Obb hel)'et hagyrunk a t:ell~k


kÖZÖlt mtrU 11 ~eWI. a C"UPadding tubjclons:1gc.x ug)""IlI5:lZ eM
..se\l-brn 801"ll 1llflOtluk.

Összefoglalás
Ebben a Ieck~ n ASI'.l\'ET hsavezérl6,,'e1 tSmerkedtOnk meg: a DropDo\OmUsl,
a O)cc:k80~llil és a R:ldioBunonUst "r:U:tt6veL fu: 11 tdror:n vemlő lis\JIclemeke!
t;lnalma~ amelyeke! megadhatunk sutikusm, progl"lltnowltan, illetve atbtkapaolb::>n
krreroQl. A Idrom vezb-k1" li.1aeJem..k Iek4>e~ rn6dJ:1b;an külOnbötik: a Drop-
Do\OmUst lenyi1ó IlStit 00.: Ittre belőluk, "CheckBoxI ig ~ekk&u k~b le
3z elenlCke!, a Rad,oButtonU)I pedig v:i1al>Zt6gombok:u k!szíl
421 1.. r6R .......Wh'/ "'UI

A 1iSU\~ egyik gy:akon fclhm'.n.iLúi módja egy adon 05Zl0P ~ttsc


<"g)' :o!btb:biSu.büb61. amelynek a~ppn a fclluszruiló núrheti 32 eredményt.
~ Az -,,,,.mr szűrése a DropDou'lIU!I.'f'Zhi<5 St.7JítWgá.~címa ré.WJen Lluunk
egy pfkUt. ahol a len),16 lisl:l. külön~ mIlfa)Ok:l.l urulm:l.lOU. a ~zetbom rN'lI
csak nok a kónY'.. ek jelentek mc-g, amelyek 3 kl,';ilasztoo műf3jlD UrlOl:Dk

A kÖ'o·etkező óra Ia.z u utol56, amelyben u ~datb:1zi.oK>kra és az ~(btokk31 vi:gzt.·u


munld ....~ ÖiSSZpont06ítunk. Több olyan ad:.lokkal kapcsolalos fcladllOl ls liOmI v~ilnk,
amelynek kOlön05cn az utolsó IJáront k",k(-ben vesszük jó haszn~I, amIkor wel>es
f6tyk~p:dh.H11()( k~lOnk az alapokl61 kezdve

Kérdezz-felelek
K: A~ben IIorábbo" <xr 01.11"111 peMtl<'ltt,,,,k. aml'l..l'be,1 'ltY Gridlieu· alla
/I.""xv DropDou."lhll~ $CJIIIS<'géI-l'I SZiímllt, ~ RmllOlJlltlOflUU
'~Msnllil"j a Drop{)Q'''''UsI hl'I.I'etl~
v: Igen. 3 RadioBunonUst Ug)":InoIy3n jÓ, lA gyakorlau f",hdlt tppen at Ieooz.
hogy eg)' olyan ASP.:-rET oIdtll kblilSÜnk. ~mely a rno..'gjelenitett adatokal
egy IUdioBunonl.ist ....gilSésé"·el mlri,)
Amikor azonoon egy R:.tdioBu11onUst vez':"T'I&.el mlrjl1k n eredményt. qn.. dolgot
l:szbcn keU unanunk: a K.~dioBultonU5t alapén.elme~ szerint nem rendelkezik
kijelöli elenunel. Edirt amikor u oId.:.Il cl<'Jsz.ör betölti a szúr6par.mllken,
az SqlDauSowcc ~ runcs jelen, & klv6e11ép fel Ezt. a probl6tút l\gy
~k ki. hogy abpbtelme1.ell 6téket adunk 3 param& .......... k. anukor
&6;z.dIlÜjuk a WHEPE úr:>dékOl az 'iqIDataSoun:-e ,eztrl6 '·::lIú"Iój.lIJ<ln
Abp;:rtelmezett érttkként h:tszNlll;,tjUk a Comre oszlop <"g)ik érta:6, p&.Llul
a Bus_, dc egy 010 lur:dcterlinrot is. Il;, an SZJefCtnénk. hog)" ke7.dctbc:n
qn'Ctlen rclcord se jdcllfC1l meg,

Ismét16 kérdések
1. f"evel.zunk meg ni'Mny szempontot, amely nennt a fejt:zetben \";1oSgáll wcbcs
1íst.a\"ezérl6k hasonli13nak egynl:bl'2l
2. Ne-ezzi:lnk meg nth!ny s1.cmpontOl:. ~mely .zennl ~ fejezetben \"izsg:ílt wdJe5
IiSLi\"eúrl6k kOJönböznek egymiSI611
3. Mi a ne\·e annak 3z esemén~TlCk. amelyre akkor kcriil !lOJ. amikor egy
li.sI:;IW'zfrl6 kiJClóh álbpou meg\l1lto:dk kl:! \"iS$Uc,.::uoIis ~t?
4. "lIIyl!'fltub~gokat kU be"JlJitlnunk, hogy ~ RadlOBu11onl.isl ""gy
OJeCk80xUst \"Cl&t6 ,·iZ5Z11Ut'Sefl, tObb oszlopban képezze le ~ hsuclemeket.>
5. A Dropno..."1lWl. RadlOBunonWt es CheckHoxl.i!l ,.ez616k cgyar.i.nt
rt'ndclkcznek egy ""toPo.ta.,ck ne\"il" tubjdons::iggal. MJ történik
ll;, eZl a tub~~ Tr" .. -ra fllitfUk1
Válaszolt
l. MII,,~ik 11SUclemekb61 ~II, é$ a;wnos alaplUlajdorl:dg<>kk;ll- It_. SeI8<'-
toedIt_ selectt'!dVlIlue sib. - n:'ndelkezik. Mindr>ek van 5ehlctedlndex-
C:h.lnQed esen~n)'e. alllC'ly ~ indul el. h:o" ycZi'fl6lllapou
megv11wzoo.. ~ kn"m mmdeg)lk eset~ haromfelckq.pen h:ltjro~h;;lljuk
meg II lisUelCfIlekl"l; Slalilrusan, II l..iSlllem Collection EdilOr p:lrl:>e5Ztdablakon
keresztill; progr.o.mbOI; vagy egy :ld:llfQm1s..,~zM6n ko"re5Ztül
2. Muxiqnik ....'ebes list3\"t'zbi6 m1skq.>p kqxzi le II l~kft. A DropI)o9.~
'"Nérltllx--n mtnchg eg}1:tI~ kijelölt elem l:Il1lhat6. mig a Ibdio8unooll'\l
ve.ú:r!<5ben nulla vagy cogy, II Ch«kBoxllit \'ez~rl6bc,n pedig null;! ,-:Igy több.
3. :;electedI"l.. xC'han9ed..
•. A R"P" .. tCol .....s tulaidons:ig h:lIJ.ro~ rTN'g, hog)-l\Jny o..zIopoI tusznáJ;on
II IbdioBwlonUsl vagy Che<:kBoxUSI vezérlő, II lIepeatPirect!cn pedig :lZt.
hogy:lZ elemeket filggólegesen ,-:tg)' '-illlZintesen kell drendeVli
5. tb al; AutcPolltS.ck rulajdons;lgol True-n .illitjuk. II vczl-ri05 á[bpotin;lk mInden
ügyféloldal! rn6do!;ít;l$l Y~(:s:noL1S1 indít el lb p&l:iul egy DropDownlLst
,~AutoPoAtBack rul:itdoruoi/P11lhljuk 'l'nle-llI. akkor allUkor a fdl~
uj demeI: dlasJol II leny96lJs1jb61, az okbl aUIOC1lóIlIkusan úJf"lö1t6dik. é$ riuxlul
II DropDownU'\I veltr16 Sel...::t.cltndexCh.on'led c'>C11lén~"t'

Gyakorlatok
I. AZ (lft'dmbly w1ré$l> Q fJropDot4't1lis1 ~'eZérl6 St'8,lSt!gefdcirml ~ t.itgy:ib.
m6dszen>ket :I.1lWm:I.Z\'a nol.l\1nk létre egy oly:," ASP 'TI oIdIlt. amc-Iy
..gy G,;d\~ew ve:rerl6bt'l1 megjeleníti :I. Books tábla könyveit. egy vál~~/Jógomb­
lisl:ll;Qn pedig az 6sszes szerW(, hng)' szílfl1e\SOk ~ megjeleniletl kOny,: .. ket,
(Ne fdepük el 1'rue-11I oiUítani J FbdioBunonLi$l " ..:teM Aut, stBoo< k
lul1)donságjl!)
Ahogy a kor~bbi ~ldlnkban, Ill<>'lls ~odjunk róla, hogy ~ ri.bs.zI6fJomb-
lisUb;r.n <"8)' surz6 I'oC\'C C5:1k Cg)'5Zle1' sz.erepeIlCfI Ezen kivül, mh'd:u: <>kbl eM
belöll~kor a v:ibszl6gQmblisúban C8}~ elem scm lesz kijelölve, :l.lapfrtd-
mezcu ~éket keU :;IUnunk :I. Grid\'iew \'eztrl6 SqlD:ltaSoun:e-\"dr:1zs16jlban
Iétrehozou p:ilnm!'!:emek, leg)~ ez; az; abpfrtelmezeu par:l/nél:('I'énék egy üres
karaklaUnc. Euel a bdllillíss:l.l n okbl belöllésekor a rú:sf1tU1 addig
ncm jelenik meg. amil! ~ fel!U$Znj16 egy sl.en& nem ~~laszl a vábsZl6gombok
~I.Ségt>'eI. mivel u üres k3raklcrUnc egyetlen ~ l'oC\'ének sem felcl meg
új nen6 v~l;w;ús:l.kor n okbl úlnlöh6dik,!s u:Klott ~ kOnyvei
jelennek meg.
Az oldat klprób1l1sakor Ogydjünk :lIrr~. IJOg)' :ll 800ks LoiWban Ieg:aUbb k&
könyv unouon ug)'Ifl:llhhoz a~)Öl, b m6dosílSUk:ll IlbLi\ ennek
megfeld6en. Emclleu :1.IJítsuk a Gnd\lt.'W vezérl6 _WDilt"Text \ula~g:át
egy megfd el6 OZCllC1re, Emlékc71M.'tOnk r.i, hogy aZ ebben:ll \ulajdondgban
mo:gadou tnék akkor jelenik lllCg, ha:ll Gnd\"oew \'ez..érl6l. egy olpn acbtfOl'Tás-
,'C7.érI6hÖZ bpcsoltuk, amely nem ad \'155Za cgyetkn rekordol $eIll - E$ r*ldink-
ban pontoAn ~ :ll heIYZeI :IZ OICbJ eM ~bekor, nUd6n :ll fdhawú.16 ~
,-:1 lacztana.
18. ÓRA

Az adatkapcsolás és más,
adatokkal kapcsolatos témák
ti kcllle /ar1almából.

• A GridView k II [>etaihV,ew vezérl6kkel h,,~~JhaI6 különféle mcz(5k


• Hiperhiv::l.lkocl.sok, jdOl6ntgy«eek b képek rnegjclcn;lbe II Grid\";ew &"
DeI~iliNJeW '-ezM6kben
• Hd)"ell.esít6 \t:I.f1lktcrek h;w:""bl:il:ll WIll[ SQL-:d .... ~kb:r.n
• lU adalkapaolás n)'d\una

lU. elmúlt ot 6r.ioon több adalokkal kapcsolatos tt:.-mlr61 _'Olt. A l} fejt"~


is $XÓ
az aWlbjlzisok szerkezct&61 ~ c.!1~r6I beszéltilnk. b megnb;nlk, hogyan hoVu.16 léI~
egy SQL St:rver 2005 fucpress Edition :1Il:nbázis II \!SUal Web De\'doper h~S1J1JI~I;iv;ll
Azt'in a li \eckebcn mCgnC!zlük, hogyan dJ~zlhet6lc be ad::nok az ad.:ubá:cisb61
t'g}' ASP,NIT oldalba az ASP,Nt! a<btforris-\17.i-rl6inek huzn:Uatá,.. L EI5650rban
az SqIl):1I3SotJ!re ,-atri6I hd~l:tiik a rlg'-dmOnk k"ú:pponlpw, amely az adatok
ad::nl»;w;b6I Y1II6 dMxK szoIgjl
Al előző három órában !Tleg\';zsglhunk különböző ASP.I'-U-vezér16ket. amelrek al
adaúOlTlis-vclérl6b6l kin}·ert adatok me8JCJ~nítésére ~l.o1g;i1nak, valamint l>il!osítPk
a felll35U1á16k ho~férés6 az. adatokhol. A7. el6zőle<:k8Jen o>egnézrük a DropDown-
Li5t. a R:ldioHuuonUst <'s a CheckBo:d.i5t H'zént'ikct. az. azt megel6l6 kl1. 6n1ban pedig
a Grid\1ew bs a DetaibView vezérl6kkel foglalkoztunk.

Most~nr~ "égJ!!"~tilk ~l ASP.Nl:.' k-gfontosabb és le!®-~krdl>ban ll<ls.m:lh adatkezclhi


szolg:ilt;,tásait Mielőtt azonban tO\llÍbbl~pnénk 3 következő ténl:ira. még egy ór:\t
azokr~ az adatokkal kapc>'Ob!os t':mlkrA szeretnénk mnni, amelyek nem i!leu .. k
~zervest:n az elóz6 órolk egyikenek tarulmJih. sem.

A GridView és a DetailsView mez6inek áttekintése


fo.IS. h 16. f"jezt'llK-n a Il<lngsúly az ad1.!b.hisbólsl.irma26 ad:noknak a Grid\"..,,, b
a DetallsView vezM6kkel val6 megielerut5l'n b m6dosílis:ln volt. Ahhoz. hogy
adatokkal doJgozhassunk egy ASP. Nl:., oldalon, el6szór felvettünk egy SqIOauSouR":<:
vezl:rl6t, és bd.llítOl.tuk a megfelelő adatok kinyerésé-re. Ez ut;in n o1dalJ10Z adtuk
a ~1.(lk5éges webes adatvezM6t, bs megadtuk. hogy al el6z61eg felV(.1t adatforrás-
"ezM6t haszn11ja.

Mind a GrldV1C"'. mind a Dctai!s\r,,,,,, vel.érió meziJldJ6l~lI. Ezt.-k ~ mez6k kél d'1
"ID~két szoJ~lh:lIj:ik:

• Ilaszn.1lhat6k a \'ezl'rl6höz Lir:;ito(t adaúorri5-\'Czérl6b61 sz<'i!1n3z6 adatok


valamilyen módon történő megjeJerut("Sére.
• FelOlelct kín.1lhatnak a "égfeJhasznl16rutk 3 vezérlő valamelyik S201g.1!t:lt;isának
kiakru\zjs:lr~.

Amikor "gy Grid\rocw \'agy DetaiLs\"i"w \"ezl'rl6 egy ~daúorcls-n',zérlőh1U kapcsolódIk


al okos dmk("jl:n kC""iZ!ül. akkor al adatfomi..... vezl'rl6 minden egycs oszlop:1hoz
automatikusan egy Iloundfleld tiplJsú mező kenll:it GridVicw v~gy Decli!sVICW
vezM6be. A Iloundfield olyan mező, amely a mez6\.; el"'; k.Jt"g6ri~jáoo tartozik, k
egynenlen o;ak sinu ~7.Ö\'egk~nt jeleníti meg 3 hozzj rendelt OO<1.1op ~rt~két. amikor
~ wdx:s adat\'ezl'rl6ben €:ppen nem \·':gzünk szcrkesztbl .....Agy besrilr:bt. Ad:Itok
szerkeszlbckor \"agy beszúr:\""kor ~ IloundFiekl TexlHox \-ezérl6v': v:illOljk, ~mo;,lyn<:k
Text tubidons:>ga aZ oszlop en':két klIpja.

AI. elmúlt néhlny 6f:íban rnegisrllert ConunandFl<:kl oIpn mező. amelynek az a d'lj:I.
hogy felületet biZl06it.>on ~ felhaSln.116 sz.1m~rl! a GridView vagy a Det"LsVlew szolgálta-
tásaihoz. A beszúr:ls. szerkes:lt6i. kijdöl6i vagy tör\6; ensedé1yezése egy CornmandField
mezm-el b6Yíti 3Z adat\"ezérl6t. A ComnlllooForid az. Insen (Beszúr:ls). EdJt (Szerkes2:lés),
Select ( Kijelöl6) 6i Delete (Törlés) gornbok Mrmilyen kombirdci6jlt mt.-gjelcníth..·ti, és
a Showlnse .. tButton. ShowEdi tButton. ShowSeleetButton és ShowOeleteButton tu-
b~gok beilli~\;d jdezhCi,uk, hogy mdy gombolGlI alGlfJUk szetCpdletru, Amakor
a GI'Id\ _. \'28)' a Deu.i!sVICW oIt:05 cimkéjét haslmljuk a 1le57.lir:is, a2efke<ZlÍ'iS,
"",,'jön
a kije1ö1é5 Volgy a törlé:! l~rllo8;n,wn.ak bebpa;oLig1':l, a kkor ~u[o'llatiku!;an
cgy ConunandField meZŐ ~ rnegf~k-l6 LuJajdons;1génékck nlCgadou bcilht.:is!.lVolI

II GndVIeW h:l Deu.ibV'1(:'W ~t"Zérl6 összesen hé! oI)':1n mt'z6llart:dnuz, ~mt'1),..1


h:uzr'L;ilhatunk, MegtelunLh~l!llk és SUTkesztht.1juk a mt:z6kCi, amd)'ck felepillk e~kCi
a ,'cz&!6kel, ha:l "e~é-r16 (>k05 cimkt.;o1>en az Edu CotumlU (0SlI0P0k w:rkeszte,e)
hw:u.koUsn IGIwnrunk. Ahog)' I,othanuk az eI6Z6 órik ~n. ez a Foeldl; C,\!cz6k)
~rbesz&bblakot jelenill meg (!asd a ]8.1. ~br:iI), II "ickls ~rllesz&bbbk ~I alsó
5arldtxm IlIU]haló a ,e~r\t"I akl!cl]is mez6inek 11SÚ"" a bal fel.6 ~n pedIg
a felvehCl6 mez6lipu~k v.etCfJClnek. II 18.1. Libl~;,;u felsorolja II hé! mez61ipuSI, 65
rö"id IdriSL. ad .,zek mindcgy,kcr61

LÜd\'c szerkeztOkor "agy uj 6tl-k bemlrhakor <"SY "'~,,~''''I~.


Amikor egy GIid\'"",' ,,,gy Deu.,bVICW "czérl6l eg}' awtf<>m1:;-vcz....r·
]6höz IGlpaotunk az 01<05 dmktn kt'1'eSZlol. aULom:ltOOI5an létrejön

;"~"""":"'''~!I'J;U6 a bit
~. (Em!a:euOnk vis&z:i, hogy a bit
1"""-

fe!ülc!kált k4>Cz6thk le Fe!vd,.,\e aUlomaL,kusan \Örlénik, Illi ezen


m<l\'ell.1ek Ixlrmdyikél fel\essz(Jk a ,'el&16 okI)!; omk§én kCl'('SZtiiL
TcrnplaleFidd Slatikus ImU·kód, ,,'elles \'cztrl<"ik és awlkapa;olb kc\'eréka leszi
IdICl6v~, II 16, fqezctbc.-n TempLIIC+iekl mez6lr.et h:aszn:ll!unk
a Gn<lVicw ~eszt6 feliile!enek t~t:xls1ra.
434 1111, rRZ • MIri.II ~

Mlr megn~Zlük II BoundFicld, II Comrn:lndFICJd és a TcrnplaleField mez6k haszn~bt1t,


A kÖ'..etkc2.6 n~lL1ny I'Í-szbcn:l ChCl'k.BoxFidd, II HyperLinkField és:lz ImageFieid
mcz6ket fOgjuk ""-'gV;zs~JnL

--
.-,-,-
.~

-_
,-
.~-

--
....... , -...... "
\ ..,
.....
I L"'!"::J
lB.1. 6bnI
A FICkh pdri>csddabiak Ils/ál
~nfll""8 a lI~m adawf'%hi,J
ma6ita, ""Iam/III a foI,oeIWl6
mczOfpt4()/mJ/

A Sn tipusú oszlopok mogjolonltósének módja


Ahogy ~ n. leckében t1rgyahuk, aZ ~datbh;sdbl~k oszlopokból.1!irl.1k, :lmelyek
mindegyikének van adaulpusa. A7. 06z1op lldatdpusa adja meg, hogy núlye-!'l típusú
adnok t.1mlhat& aZ oszJopblon A Booka tábla Tit le OIS7.lop;.1 pl:1,jjul nvarchllr ~ 150 l
típusii, ami azt jelenti. hogy legfcliL-bb 150 kar'Jkler hosszú b!'2kterUncok t1ro1~sára
képes,:l LntRudOn oszlop pedig dat"ü_ ad.:lttipussal rcndelkelJk, tehi! dátum- és
id6értékek tárolására hasm.1lh.:n6. A Booka t.1bJ:ítr~n még II bit adanlpuSf fogjuk
hasz.nálni oszlopad:llok tipusaként. A bit adanípusú 06z1op<:>k <:.'lak két ~rlCk
V3lamelyiktt l:Irtalmawatjlk O ''''-gy I. A bit osl.lopok lltal!ioon [gen!Nem V3gy
l8" vHamis Hpusú én~kek tárol:is:ira IllIsW!atOSólk.

Adjunk ll105t egy bit oszlopo( II Bookll tábt'inkhoz. A \T~ua l Web Ikvelopt'f Datlloose
Explorer ablakloon ke~k nlCg II Books t:\bI.1t. IWtml5Unk 3z egé< jobb gombj:l.V31
a Sook$ tábla nevére, és ,<:1lasszuk az Open Table Ddirution (nblameghatjroz1'i
megnritisa) parancsot, amely ~ db!:!! alkOlÓ oszlopok listjj~t jelenitj nlCg. Ez u!:in
adjunk egy J{e<;:~nded nevíl új oszJopo( 3 Iá~hm, és vilasszuk a hit Dala Type
(Awnipus) bc:i1Ji1á\.t. Mivel a lábla mir taltal!lI3Z adJtoka!. ennek aZ oszlopban vagy
el kell fog1dnia !\ull frt~kekCl. vagy meg keU adnunk egy alapértelmeZett "'n"'ket.
kL utóbbi mego!(Üst fogjuk alkalmazni.
EI<lQOr lapcsoljuk ki az A11ovo "\"ull (SuU ~~z&e) ~et. Ez uUn meg
kell adnunk egy ab.ptndmezea tnéket az OtIzIop .stillÚra_ A Column Pn::>pen1t:S
(OWoptula~gok) abblWbIa Gener:1I (Á1tlliOO$) ~ keressük rrJeg
a Default Va\ue or SIlKIing (AIlIptnelmezeu énl.'k vagy ad:lllapcsolis) tulajdonságot.
~ lT)uk be ide az alapéndmezeu tntket. ami legyen 0_ Gy6zódJi1nk meg anól. hogy

. __ ... _......_.... ••••• _.


__ ...
képemy6nk a 18.2 ;\bclhoz hasonlóan néz ki. majd menuQk a !tibia m6d0!;j!JSlit
" _ . ' • •_ _ _ 0' • ....

. .... _-
• .1#,,,

- ,... ',
_.._ ' •

.---- ---- --
-- ~


....

-- -- •

- - •
,
--
•~

.----
-- ~ -

-,----,,..
n . . . . . . . . . . . ".~~ . ." _

•• I ~..
• 11 .~_~-~-'•
...
.-"

- - -- ,........ ... - _....-


,.~"

• • •
--.,
,._,..... ~.~..


.

- ." -_... -
-.,..., ......
~.
~.

•• • , •
... "
~,

y' • ""_ ... , • ., 18.3. jin


~.
• • •
• , • II R«o ... __1t>d
y. •

Most. miutlin rek·ettilk ezt az (ji oszlopot. hozzunk létre eg)' ASP-"U oIdall,:undy
_.-
mno1 J<:#M6I'«r
...... sortmUollhof

meg)elcniti az ~ ~ &. oszlopot eg)' ~emhet6 CIid\-icw \·eztriőbm. Amn\l


hombpcsoljuk a GIidV;...,,· \'Néri6t az SqIl)ara..'OQI,H'ce ,'ez616höz a GIid\'icw okOl
431 1a. 1iIIl' MIDI.' ," +ko!

drnko:jen k~:ttill. a (;ndView ".,.,....-"'\d...:!mezójc ;eIölónég)Utek $OI'Ouukbu


jelenik ml'8- Tehát n okU!; cimke el~ 01<06 ~hhm.. hogy ~'eg)·e. hogy egy
~ GridViC"'o' vezl:rl6Ii/'Jz kapcsolt 05Zk>p bi t OQ.Iop AJ; ilyen onk>pok: e<IC'Iébcn
az ok(\<; címk~ ~u(ornJhk\l.san ChcckBoxl'idd mez61 h:c;WI "~l",bv:lny06 Boundl'ield
me:dl hd}·...'ll (lisd ~ 18.j. jbcll).

Meg tudjuk ...:oUII, h..lg)''' Re ._nd<!'d mező \':l16han CheckBo>:Field h:l:> Grid\~"",­
okos cimkéjében .u Edll CoIumns tuHtkOZhr.l bujntunk. 31TlC.'1y megj<"leniLi a F...-kk
p1rbcszédablakOl. Ahogya 18.-4 ábcln Lilh.uő, a Grid\~ bal:ll.'l6 '!o1Irokban fdsoruh
ITlC.'zói között a bon_ .... ,.-d mem O>«kBoxFoeld. A Rece_ondi<! m.::Ul kJ,'a\:m:tás:l.
belölt; a mez6 tu~jdoru.ig;lIt" jobb okbl", Ahogy II BouooF...1d ""-'Icben. 'II lS
tCSlreszabhat6 a al<.'CkBo~ Field mel!iel<:tl& a Sty1e. (Su1usok) 1"k7.ix'n Ulj!luló
lulaido~so«kJI

..• ,
"
- ...

- "

- - ,"

-......-._-. _--....-
~-
-"'- 0 -

'" _

......... -
'" I[:~

lU.6bn
A Grid i ",-"" mu"", ..ul",s<'" Ch«1UJo.~H".d mer61I!llCIJiJl " 1IN:G""m!",ú..t mn6h6%

MQ5t lesztdJÜk ASP .... t.., okblunkat egy IXIfIgén6ben. Amikor n~.llogatJuk az oldalt,
a R.c,*-,11ded 1TlC.'~ minden 5Otb:tn lIlakh\' jclöl6nég)"C'I'-"'I 1.:I.1~lunk. de "mikor
egy 50f! .szeric:emünk. al. adon sor ~'zele l ....'rt>elŐl'é d.hk, fo! lehel6\"é teszi
"feUl:lIsznJlt'Jn,;,jk ~ ~ énekmek meg.·~1t02;l3t<Wt Ezt a wg;llclla'-l
" CheckBoxroeklt<."W IcheIÓ'o"é

A CheckBoxField moz6U,eI ~apcsolatos vizsgálódásunk km ppontliban


a GndView "It. dit a DetailsVisw is ugyanrgv möködik.
18. ln • N. ........... mM, lIIItlÜII kapcsolltos .,...... 1437

Hiperhiva1l<ozások mogjelenltése • HyperlinkFiold használatával


o\!iuün felvellük a ~ecaEended meZÓla Books ~bL1ba. a wcbhelyel mcglálogalÓ
fellw."7n;! lók a köny\"öpolcunkon ,,,,,'6 köny\"ek mell ...'It aZl is I~lni fogják, hogy melyeket
ajAnljuk kiemelt.,." a figyelmükbe. A lálogal6. ak! észre\"cW, hogy az általunk 01\'",1$011 b
k<.-m-eh könyvek hasonJOOk nokhoz, amclyeket 6 okas ts kedvel. lehet.. hogy UÍ\'e>e!l
mcgvas:irolia 'Izokn~k a könyveknek eg;' rés7.é1.. amelyeket eloh";l5ásr.l iavaslunk. I'.nnck
a folyarrunnak II leegys7.erfuite;.:, érdek&c:n rel\"eh~'Iünk egy BIIY (VisirL1s) hl\l:llkozlSl
mind....n könY" SQci.1xI. amelyre k>illinlva a felha.'o7.ná16 egy inlemete5 könY"dJoItba
kerül, ahol meg!ekinth(,ti az adon könY" rbzIete:s adatait.

Az ilyen jeJlega sz0l8~IGith fel,·étele a GlidView ('"agy l:>eIlIilsVicw) wzérl6n keresztül


lehetséges. ~s mcglehet6sen egyszertr a HY]X'rUnkfield mel<6nek köszönhet6en
Ahogy II neve is utal cl. a l!yperUnk~voeld egy HyperlJnk vezérl6mt'"z& jelenit meg,
amelrnek lektpel.ésc a sz:.bv5nyos hiperhivatkor.1soklihoz ha$Ol116, tehál r:lkauinl\'"~
a l~togal6 a megadott URL-re iul. A lIyperUnkfield!TlC7.6 esetében lIllyperLink
""z.:-rl6 Text és NavlqateUrl lulajdonságait ad:ub;jzis(,nékek alappn állíthatjuk be.
Teh11 3 GridView egyes $OT:lihoz t:tnozó hil"alkozlsok alappl az adalt $OrllOZ kapcsolt
adub;jlisrekord oszlopainak énékei képe~helik

Ha ez még nem teljesen viJágm. ne csOgge<ljllnk, egy példa biztosan segíl. Mi\"el egy
!luy hivalkol.á.s1akal\lnk adni ~ Grid\il:w egyes sor.lihoz, amdrrc k311,nl'"a a IJltogal6
egy U"ltemcre5 könyve..boltba jul. el'i6 dolgunk annak IIWghat:'roclsa, hogy ml:lrik
online könyvkereked6l hasm~ljuk. ts hogy núként néz ki a7-011 ~ webhelren egy
adon kön)'\" adalainak meg«'kint~hez szüks(,ge:5 URL. Ebben a példában az Ama-
Wn.com imemetes kön}'VesboltOl fogjuk haszo11ni. Az. Amazon.rom t.-st.'Iében
~ http: , / .......... araa~on.eom/e"'ec/obJdo./ASUIl ISBNI URL jeleníti meg a megadotI
/SBNszlmmal rendelkező kön)'" részletes adm,jt.

A kiiftyYtM ISBN kódja Igy 10 vagy 13 számjegyb61 álló szám, ama/y egyedileg
aronosftja a k~. Az ISBN általában il könyvek háuó borít6ic'n található.

Ahhoz. hogy il)'en hiv:llko1.:Í5l ki~!junk, CI kell rakt!í.roVllmk:t BookB ~bliban


\:I1~lhal6 kön)"'ek mindl:ID'Íkének ISü'" kódjlt, ezén fel keU vennünk egy ISBN
oszJopOI:t 15b11ba. Mivel egy kön}'" ISB;\l kódja akár 13 brakter hosszú is lehet.
aZ ISBN oszlopot n nvarcru.r (131 adanrpus lu$ZJd13t:í'"JI hozzuk létre. Nem abrjuk
engedl'lyemi a Null értékeket. de milel m:lr vannak adatok a Booka l~bUban,
kezdet~n meg kell engednünk a haszmlatllk>il ennfl 3.2 új oszlopml. amíg meg nem
oldju k a meglév6 sorok ISBN oszlopért,;keinek kitölt6;("!. M~ vegyü k fe! czt n új
O&Zlopot.
Az ISBN oszlop hoz.z;\a<\ha után szl'T'kesszük a ~bb adault. Ehhez kattintsunk az egér
jobb gOmbj:lval a Booka táblára 3 Database Explorerben. 6; ~!asszuk a SIIow Table
Dalll (nblaad:uok megjelenítbie) paranCSOl. ltiunk be egy ISBN k600t a könyvek mmd·
egyikéhez. kihag}"'" az esetlegcs kÖl6jclekct (lásd a ]8.5. ftbráú. A Bookn t~b!iban
szerepl6 öt könyv ISBN kódja ~ következő:

• \'IsI/al StudIO Hflclls - 0')960CJB473


• Crcate }imr 0.111 If'<'b$,te- 06n328267
• nil' j\'"",/;Jer- 0375W8S05
• nil' CQ/cher I" n,c Il)"'f'- 0316769<187
• FwhtClub-0805076476

'" '"-- ... -... ,-,-- --- - .


" ....... '.---, --...._. --
~- ~.,~.
". ~~

---_..........._--
- -- .-.- ,- - -
..... _ _ o : ........

I'
,.
--
-------"" --- -
---- .-
.-
-
_.
-, -
-
--
-
-
-
- -
-
-
-
- -- - --
~-

~
,_o •
•• <

- - - '"-

",--==-::"'='='='~_______________-.J~
18.5.6bra
..u- 61 .I!():"W ISB....

L- hl&..
az bci«?nUl
adrltbáztWa

Mout!ín megadlUk 3 Book" tábla minden n:kordl~hoz az iSBN értl:ket. térjünk vissza
a t!íbla·nqhatároz.is szerkesnéséhez. 6; kapa;oljuk ki az ISBN oszlophoz tanozó
AUow :"uUs jclöl6n~gyzetet,

Hozzunk létre egy ASI'.:..n oldalt egy SqlDataSour<:C \'ezérl6vd, amely viSS2;ladja
a IIOOkn tábla ÖSSZes sor:'it 6; ""zl~t. maid adjunk hozzá egy GridVICW vezMa, b,
kapc:!Oljuk az SqIp"IlISource vezérl6ltöz. Ezen ~ ponton 3 Grid\"oew az ISBN oszlop
tnék~ egy BoundFleld mező ha.'iZ!1áb~1val fogja megjeleníteni, szÖ',egkffit mu!3tV"J
az ISBN k&b , Ezt a Boundfiekl mezót egy H)'perllnkField mez5re akarjuk cserélni.
Ehhez mcnjiink a Fiel.b p.irbe.redabl:.lkba a GridView okoo dmkéjét mcgjclenítve és
az Edit Columm h;vatkods,..~ katIInt'...

A Fiel.b p;lrbeszéd:obt;,k bal al5ó sarkában l;'ithatjuk a Grid\'iew meZ6it, amelyek egyike
az ISBN BoundField_ Tá\'olimJk el e7.\ a mezőt a GOdView \'l:7.<:rl6b6I oly módon. hogy
kiJelöljük, 6; 3 li5t!ít61 rögtön jobbra elhelyezked6 Deletc (Törlés) ikonra Ic1nintunk.
amely ~ 18.6. ábrán is látható.

Törölll<->tünk b:irmely ncls olyan BoundField mezót is. amelye!. nem 5Zeretflénk megjele-
níteni. Enn(>1 az ASP.r-n oldaln.il ne foglalkozzunk a SookIO. a Ye .. rPubli~hed vagy
a L<OstRe .. dOn BoundFiekl me~ megjCleni\é:it'.'el.
-- --
..O.-- ._-
.."
~:- .. "
I: -".
-
-- .-
-
- -
- --==
...!!!!.. I
..
'"
.- .....--_.. - -
,-
>-
fiij'

r _ ... _

""
_,o
,-
_~ ...
........ '!
lU"
'" tI.- }<!4'iJj.a ld b I6roIftl.
AZ ISb,,\' lIoundFfitld -=til

Ha egy szwteszthttó GndVieW W<étI6 .... V89Y egy új aCIatOIr. bIWíriUra ......
miii DetlilsV_ 'O'IátI/l .... doI\r'n .... nem tWthIllri .. ~
BolnFIIId mIl6bt IZ adarVel6ri6b6I, nWIIll. SqlOataSoltte Wl'érI6 IS nwnti
mket az 6n~.t.
Ha azt aklll)lJ:;. hogy btronyOS mezők l11f9ieIe!l,entk INIkaméskOf vagy adatok
beSlÚráSakOf, mmdeoUppen úgy álNtsuk be IZ adltfOfTÍs.vezéfl6t, hogy 1141 •
vissza . zllbt III osrlopMt'Dbt.

MOOil.mr készen ;lillunk II &.ly IlyperLmkr.cld mez6 reh'aelm. It. b:al reM $lrokbcln
taUJh:lló A,,,ibbl,, Fidd5 (Reoddke*-"", ;illó ..,.,z6k) lisúban gt'loges.sOnk fd(~, és
!dóIlÜk k':il Hyper"'nkFoeld demel:. majd k:.nlmlSUnk u Acid (l-Iozú:Idhl gnmhn
EuelllO~3djuk a HyperLinkI'"K"kI..,.,z6l II bal abó s;uokb;;m &IU1hl1t6 ""'~L~I~
Motgassuk eD. II HypcrUnkFleld n\l"U>I a liS/a lClt:jére. hogy II GridVlew 001 szélén
jelenfCn meg. MOS! be ken 111,t;munk II HYP<'rLinkfil.old lul:ljdo~gajtn mCH/C'öh'e,
hOg)- mi legyen a leképezel! hi\'~lkoz:ls szöve~ és URl-1e

It. lIyperUnkFoeId 5lőn'g<.' b L'RL·;e meg:ldl\al6 SDtikusan ....gy dinamlkus:.ln_


It. wnam,kus át& II GndVIC1'l mInden ~ban elt&6, men az adon sorhoz unom
a<btoktól filgg_ It. !\tallkus érték II Goid\-~_ Ö55zes .sor:in:il ~~zik" II fcl"ubl
C'h~~z eg)' sutilrus lluy sm-"egénék/"C' ' .. o sztik5tgilok, és egy d"llImikus
URlATtek/"C'. ~mely al. egyet; kOn)""cl: ISB:-I értéke al~pilo dlCró lc:sz.

lia Sl3likus btékre ~h.;uk ~l1a~ni a .szöveg vagy lTRL btékcl, akkor haswjljuk a Text
vagy a NavigateUrl tuJajdonsagoltat II Text tula~g a lula)<ionsigliSl~ IIppC'lll:mce
(M~) d:sz8Jm ulálh:u6,:I. Navigat eUrl pedig a BeI\iI"ior(V',,;eI,,~d&) ,ésI;be".
,\I"'eI an akarjuk. hog)' a hivatkmis SZÖ'\'eg<' 6uy Ieg)"en al. &ne'> ~J.111iU\Jk
a H)"pC'fUnkf"1dd ~x t tub~g11 t'fTC' az o!rtékre
Ahhoz. hogy dlll~mikl.15 énékCl adjunk meg szövegk<"m V'~g)' URL-kém, ki'! lulajdon·
~gOI kell haszrullnunk. A $Uh'eg ~ében ~ o",ta'l'ext,leld és a DataTex t,Onnat
String IUI~jdonságok31, az URL esCI8>en pedig a D.otaNavigateUrl Fields és
a o".CaNav igateIJr l 1'0."..,tSt ring lulajdons;lgok:ll, Ez ~ né!)Y rulajdonság ~ Hyper-
UnkFidd mezők lulajdofl5.'igainak Dala (Adat) ré$zében tal~lhat6. A lulajdofl5.'igok a
kÖ"Clkező módon makiX!nek együn, a DataTextField és D<ltaNavigatelJrlFielde
tulajdonsagok hat.1rozzák meg. hogy aZ adllb1zis melyik OS1.Iop;Inak értéké! hawúlja
a leképezeu hiVlllkoz;\s szövege ''ag)' URL-je. a Dat~Textl'ormatStrinq és D.ou-
N.. vlgatelJrll'o...atString lulajdons:lgok pedig az én<"k statikus szövegbe fogla-
láslr:. haSZfl.ilh:uók A Dat ..TextFo....."tstring és D<ttaN"vig"teIJrIFO,"-tString
lul~jdonságok esCI8>en a (0) ka ... kterUnc szolg11 a dinamikus énék beilleszt(,"'-~

Péld:ink!Ydn an akarjuk, hogy az URL dirt:lmlkus legyen 3 könyv ISB" kódja alapj:ln,
ewn lillí(suk" DataN ..vigateUrlHelda tulaidonsligol az !SEIN énékre, Mi,'el azl
akarjuk. hogy az URL a http://www . ....... ~on.e()ln/exec lobido .. /AS1N/lSIHII !egyen.
haszn:iljuk a ht tp, I 1-.. . "",,"zon, coml exec I obidos IASI NI ( OII kar:lkter!~ncot
a DataNa",igateUrlFor_tString tulajdonság érlt'keként. Ez az l!rték arrJ utasítja
a HyperlJnkField v"Wrl6!, hogy az 3ktu:lli$ sor ISBN t'rtékl,( szúrja be 3 {O} pozíciÓf'a.
ami helyesen formilt !tipcrhiv~lkoz1st eredményez.

M,ut~n beállított"k e;tekCl ~ tul:ojdons:lgok:u, k a Flelds párbeszédablak OK gombjl ..~


kauintouunk. képerny6nknek a 111.7. ~br:lhoz ha$Or\lóan ken kinéznie. Figyeljük meg.
hogy ~ GlidView bal ~wlén ~ m:lr egy Iluy fehr:ltú tlyperUnkField t:Il~lh3t6.
a BookiD, Y""rPubl i,.hed b; ...."tR.. adOn BoundFicld mezők pedig eltűntek

""""_"' _ _ _ 0- __ ..


•• •

---
'''' ,_ ...., ,.,.c_' _ ",,---,-
H_ o
~-
h_ o
k_
--".
o
" ,
,
", • o
18.16tn

.-..... ,-
""'"
..... ; • G!V' IIJ'fJN'l.(nkF/Nf
mez6 """"lll" Grldn.,."

=""""
Nézzük meg azASP.NET oldalt egy böngész6ben. A lek",pelClI GridV;ew minden SOf"d
tartalmaz egy Buy hiv:ukoz1sl . amel}Te kalUllIVll3Z Amazon.com kllnyvesboJlba julunk,
Ha péld:lu] a Crealf: Iburo..., Wcbsilf:cimű könyv Buy hiv::nkoZás:íra kaumrunk,
a http : 'I"""" .lIIIIuOIl, c_lexec/obldos/,t.SIN/067232S:<671 címre jutunk, Figyeljük
18. ln · Az . . . . c................ k' al 7. . . . 1441

meg, hogy ennek 3 kOn)··..I'It-..... az 7SS", 6to:..... e (0672328267) pom~" arr.> 3 hcl)~ kerU!
3 hiV3tkozás UJU....jt:bm. ~11O\':i a IO!lwrakter1Jr'oLUI helye;etlik a HyperLinkFldd
DataNav;l/ateUrl f"Ot'ftlllt St r Ing tllbjdons;ig:lb:an,

A Ityper\iIkFiekI URl-6rtéQ több oszlopból sz6rm1lÓ értéket is tal'talmeztllt; ~


lÚ8n csak..sjtj.l11IQ' Iliitséges osllopol nev't.DataNaviqueUrlriel.u
tUII;CIOndgban. ~ ~ Elldn. lottiON<lvioateUrlPo..,tString
lIAajdOO$6gbIn ~. ) tri"'I."...." II OSlIopIista eb6 ~W
t ' ttiséhu,. .) tritri1cot I misodik OAIOP Mékének bIiIIeSltáéhIl.
I [2' k. .7rilcotl .... IIid:~4fta.... ~ .. ígytovMtb.

Képek mogjolenltéso OZ ImogoFiold hOS2J1élatjyol


A kóny\" ulOls6!lirum Ieck~~ dkészítilnk "",jd egy,,~ fénykqx;albultlOl, amely
lehet&.. t lesti. hog)' II Litog:uók ft:llöIt5&,. ktpelket egy ....ebhd}"l'e. A ktpeket a feltől­
to uun más látogatók ~zhecok. és megjeg'iz6cket IildJe7nek hozzljuk. t::bbm
u ",llalm:lzisb:rn. annkor qr)' fcll\3SZJ\óilóldtöll egy k~-ptl 3 webhdYfe. a k<.'P a ,...dJkj-
szoIg:l1ó f~~en.-nek eg)' ",don kOoy\"tár,ib;l kerill, Lesz egy pletur.., neo.'Il adonbi-
n-cál,unk is, amely a rend..zcr minden ktp8lez e!O'-egy ~kordol; tárol, Ez a (.;illi;.
Iöllbek között olya" OIIzl<>p(lk~t fog cutalrrulzni, ~n"lelyclc 11rol~1k ~ fényk~ dnlét,
leiril&l. alU'l3k ~ f.,lhasUÚl6nak a ne\'ét, aki fellö/tÖlle a kfpet, Wel\'(' ~ fl."11yk(:p elérési
út"t Mivel a fellöllötl képek taroa:.sa II webkiszolsol16 f1~rrnd<iX, tbot tönblik,
:11; adatb'iziS ped!g C&lk a f:ltl e~ útjit urulm:lZZ3, lu BoundFidd meZŐlI~lunk
egy Grid\~_ "etérll5bu, a Pktllre. tibU t:ltblm.i/"lilk meg,e~I6ére, akkor
a [('Ilj'kép C:Iért5t útI'! csak .w~en. rog illeI!It'lennl

A könnyebb meg.;nb étdo"kl-brn képz.c!jtik el, hogy O."!IY (dhasznil6 ("lIöh "SY ~
a kutr;ij;ir61, é:< a n!'IXbl"''' a wd>k ....:wIg:lló f:ijlren<lszereben a Picture.'IIYOoo. J pg
e~, uton ~rolja ~n, Ennek II k!llnt:k a felv('l.ele egy (lj rekorddal b6vftl a2 ~d:ltlXlzis­
úbl:h. ~melyben 3 Ti tl. ~op o!-n!ke mondjuk OA kuty&m'. Description ! n! ke
°Ez e<;Y k,;p /10 kutyÚl~61. Olyan /IOnmyo.t'. Pb, ' ,Path tnéke pedig PIetII'
re~ MyPog. ipg Iesl. Ib egy GrXI\iew vezbl6t je!enitünk meg. ahol a PietUUI
~li1:)k m,ndeg)',két eJJ)'-q)' Boundfield kép\"l5el.J.. akkor a PhotOPlIOt!. mutbe..
3 Pictllr_tMyDoq. iPG ,W)\'egft fogjtlk l:itni, \·i!zont::unil Umi akarunk, n a Pi,
tureliMyDoq. jp<} elcrtsl UK,n urok kép A BouooField. amdp\ek egyetlen <:tIp
a iT1t."gfeldl'l adttblzi~ énékének sro.l'gk':'"11t,~ rroegjelroíttse. nem al kalmas
~mI. hogy ~ képel: ~leníL~"11 ......g egy szi.>\egc:> elérési út alapjin.

Az elkHzftend6 16nyképalbum P' ,tllr, tábléfl nem lIrtalmaz m8Jd PhotoPat.h


0SlI0P0t. KicSIt ma megk.Öl8Iitést logunk ~, cit II -'aPeIVek ~
44Z I lU. lÍIIl: • MIna IdItfWiaokh.

Az hn:lge Ficld olyan képek megjdeníLé5ére szolg:ll. :lmclyeknek az URL-je egy adalM·
zi5b61 s~rmaz6
érték. Az ImageFieid egy Image webe5 "e~érl6t ilk-szt be. amely
<img> HTML-clemkém képez6dik le. II HyperLinkField mez6höz hasonloon :LZ
ImageFieId mez6 ís rendelkezik egy olyan tulal<Jonsisplirr-~I, am<:lynck haszn;llaLíval
megadhat6 egy 3datb.lZ;~i1op ob "gy fonnb.6 kankterUnc. fu: a ket tulajdo~g
3 D4tGI ..... geUrlField ob a DaU,Im<llIeUI"lFleldStI"in\l. II kép URL-je mutathat
egy ~ webkiszo!g116n LlIJ1!hat6 hel~i képre \"~gy~. ~voll kiszolgjl6r61 stirmaz6
képre. Az Amazon.rom miniatűr képet t~rol ~ webbelyen meS'd~rolh3t6 &s7.e5
könyvről a http://Íllla9e6.ama~on.~0/Q/w9e8/P/ tSaN. Cll. THUMBZZZ. jPII címen,
ahol az 15BN3 körl)'\' ISBN kódja , Ezért haszrciltwunk egy olyan lmageFicld meZŐt,
amelynél a DatallU\leUrtFleld IUla;dons<\g értl:ke I51111, a DaUI"'\leUTlField·
StT!ng tul3ido~g beálJít1sa pedig httll: I l i .....\le8 . ...... ~on. """,/I_\lea/PI
(O), Ol. 'MIUMBZZZ. jpg.

Ahogy 32; ell'kő resilien a CheckBoxField·p(,lda ~~n tetTÜk. vegyilnk fel egy
ImageFieid mez61 a következ6lépé5ck \<égrehaitjs:\vaL

l, Ilozrunk [(-= egy új ASP.NEl" oldalt. ..... adjunk hozlJ egy SqlDat:lSource
vezérlŐ(, 3mcl}' \'i~dla a BOOklll:ibb Ö5:i~ rekordjil ts oszlopát.
2. Húzrunk aZ ep"l egy GridVoew vezéri&. aZ oldaln. és kapcsoljuk
azt az SqIDataSource vezérl6höz.
3. II Grid\7"", okos dmkqH,t"fl kattintsunk az Edit CoIullm, hi\'3tkoz.'isr.t ~ Fields
p:;Irbesl.édabbk megnyil.tsihoz..
4. nvolít:;uk el ~ BOokID, a Yl&arPublhhfN:1, ~ r.aatRoeadOn ~ az ISBN
BoundFicld mez6ket.
5. VegyGnk fel egy új ImageFieId mez6t a GridView "ezén6be, és mozgassuk
3 mez6liS\a tetejére.
6, Kattintsunk az Inl;lgeFtdd mezőre a tulajdom:lgai betöhbéhez. A DataImaaltUrl·
Field tulajdon.'<1gn:lk adjuk az ISBN, a o..ulaIageUrlFieldStril>\l tulajdons:\g-
Mk pedig a http'lli""'ges._zon.c_/1 ....ge"/P/(0).01.'n!UMBZZZ.jPII
&léket.

A 6. lépés Utáll Fieldl; p:;Irbesl.édablakrtak a 18.8. ábr.in 151hal6hoz h:tSOl'l16:m kell


kinélnie. Enll"k ellen6rz6e u~n kanintsullk az OK gombrn. majd tekintsük meg
az ASJ>NET oldalt egy bön8~z6ben. UlJlunk kell az Ö6SZes könyv borit6j~Ilak minial\lr
képél , ~h08Y ez ~ 18.9. ábrán 1~Lhat6,

Mivel a képet;; k~1Ie!U til Amazon.com w6bkí~ származnak. élő tntet-


netkapcsolat szükséges a képel. megtek.íntéséhez. AmeMYiben helyben fejlesztjük
az ASP.NET oldalt, és nincs tntemalkapcsolatunt, !Ikkor azt lugjuk J6tni, hogy
a k6pek nem érhetők el e Iaképal8tt GridVl8W bal oldaliIr!.

Amíkor avv szarbSlÚl!lt6 Grid'f18W vagy avv szerbSlÚl!lt6, tlet'le 8 besaifést


enoedéty8lÓ OatailsV"1eW vezérlót hOrUnI: látni, az lmagllFieId mazii SZ6rhsrt8skor,
IB. 6nI • Az

illMI ~ ugy meIbdl. n1Iflt • BolnFIIId mez6t.. Tehá!: a kép ~


togy TaxISoK WIbeS VtZWt6 jeIenit meg. DltallWlgeU.-1J>1eld ~ság
értékéYal. tt. &ll "JI.&, oovv
egy k~ lit Itgytn sztrbszthet6, VlIQV lit Itgyan
megadható besndskor, aktor áII~suk III Jm.geFieJd l!eadO.\l y llIIajdorlSigAt
True, lnae.-tVJ..1bl. tuJaadoRSágát pedig Falae ~ ,
Ahogy I 16. 6rÍIbIn . , . YCIt róla SZÓ, hl togy memt esik oIvashatM VI!IY
~ ~ lHliÖ, akkor mine• • ipp tWOitSUI;. Mil oszlopo(
II SqlOataSowc:tl 'o'el6!I6. dateC_nd" In. IrtC~ tIAjdoidgei1>61

_.-
,.
.-- .. - -
.- --- - "
,,

--
f:: .. .-
==
..!!LJ

.- '" ..._ _......... , .J


_,w
.........
--- ....... -
,E.":-'=-=-_..• 18.8 1i1n

- '" !~i
ÁI"/Juk hi> az ''''''R''FIC/./
1"Ii'.i<b~it .. Ftdds

,.-"
........ ---,.
l ,e. . .

.:.i:I.--f!
"' •• ~ .... • - ..

E •
- ...-
III
--- -- ,--
.
_
~
,~

O-~_Ooo ___
"-~

,
~-

... c -......
--
,,- .- - .~~

.- iii -~
~,-,.

- 18.9 jin

......
'\/mdc.. _1>'18
"""""
...inúmir lIIPe
Helyettesftő karakterek használata
a WHERE szarők~ej9Zésekben
Az el6z6 6rákmn l1nuk, hogyan haszn:!.lhat6 az SqlDataSouIU' '"r.izslója WIlERE szO"r6-
kifqezések feh-.!1elcre al. :u:btW~1S :1lwl vL«SZ:Iaoou I."redm61y szffi(!Il!se (:rdckO::;bcn.
A 17. leckében megtanultuk. hogy,m lusln.1Ul.<Iló egy DropDownLisl. kidlasztoll
értéke ~ ~;wrókifejezés ntékcként. a!l\llehet6,,~ testi a felhaszru.l6nak. hogy csak
a7. adoIt nn1fajba !anolÓ k6nyvekct jeleníL<e m.:g. Amikor szür6kifejezésl hozunk létre
az SqIDataSource \"cztrl6 varául6j1n kereszt,i], [",rom dolgo! kell megadnunk

• azl az adatlAzi50szlopol. amelyikre a szílr6kifejezb von:nkozik,


• a szür6kifL;ez6ben haszn~1t m(lvcletet Copt.T.itort), ami ,<>, <, <o, ~. stb. lehet.
o a szűr6l'néh>!, amely lehet előrt: rnegll<lúrozou l'nH. '-agy al~pulh.al egy olyan
külsG ért(oken, minI az oldalon sle""pl6 egyik webes ,-ezM6 értéke.

Az egyJk mol\'ek1. amit ~ nem néztünk m<"g, a .,lJ(E. A I..l:KE művek1 hel)'c«csi!;:;
karaktereket h:,,-zrcll a p"raméleren';k körül, és ~k Ic'JI"'Jk(erl:lnrokkal ,"Jgy ~tum/id6
tipw;íi OIjzlopokkal működik. A LIJl:E hasznJl.:u:h"~llélrehozh:ttunk t-gy oly:m fcliiletet,
amelynek ha$W1311",,1 II felhas7.niló II Sooka l1bl~tx.n k~>reshet, és visszakapj:l. az
összes oipn $Olt, ahol a Ti ~le O/idop é'fttke tart~lm:tz v-~Iamilren II felhaszn.116 ~1(aJ
meg:.dou kifeje"z6t.

Hozzunk J(ire egy oldal( ennek II szIlr6kifeje~6nek II benMaú~ra. Miel6u felvennénk


cgy SqlDataSoulU' \'ezM6t lIZ okbJrn, el&Lór írjuk be II S..... rch tor booka by title :
(Könyvek k~ cím alapján) szövcgel, ffi.ljd adjunk az oldal hoz egy Tex(Sox 6; egy
Honon , ... rer\6t. A T"JnSox vcn:-rl6 ID tulajdonságának adjuk ~ titleSearch ~rtéket,
II Buuon vezcrl6 ID Ullajdonsága legyen btnSearch. Text tul.ajdons:1ga pedig S..... rch.
Az iméfU kialalti(otl feltla.\o7.nálói felület lehe!6",é fogja tenni a webJapunk:1.t megl~togató
felhasználónak, hogy beírja II keresdi kif.. jez~ II szlM."gn~zóbc. A Sc;ln:h gombra való
kattinLis u(~n aZ oldal ,"~cs:1l013st h:lJt végre, 6; II GridVIew fllcgjdcnfti" keresel(
eimmel rendelka6 könyveket.

Most, hogy létrehoztuk " relhaszrciJó; rdiiletet, II kö",(,tkez61(-pb n SqIO:ataSource (is


II Grid\r""" vezérl6k ho<:z:íadisa u oIdalh02. Á1lilsuk be aZ SqID:uaSourcc vczérl6t
úgy. hogy ViSS1.;iadja II Booklllábla összes oszJop.1(, b ""gyiink fel egy WIIER.I! záradék-
szIlr6kifejezést II Ti tl e O/izlopr~ II LIKE mÚ'ek:! hann:illltá",,) II t i t leS .... rch ,"czért6
alapján (1100 ~ ]8.10. ~brátl.

A LIKE mUvelel ~sak karaktertáoc {"v"rehae, nehac, ohar VfIIlf varchar)


vagy dátwrv'ídll t1pusú oWopomalkalmaltlllló,
_.-- __.._-
... -.-,-- .. __. ..... _.. _----
_._ .....
-.- -.
_
-
~
-
...... '. , ...

,--
--- --
-_.
-
-
--.-
-~._"

-
~

18. 10. ~
1~'ÜMft~ ~'LJKEIónlriiltifrje:ésI /.I Tllkoukpm

.'>iWn frt.·euük e;n " szt1ró1ulejele$. e. ..·;"""I&1,;nk ~ \-..r~ ConfIgllTe the sd«t
St..t.emenl ~z.. a v:u:\z.516 jJu,11'l~ SlLECT uUSitÁSmk a kö\"C~tkez&(,..
~kdl kmézme: SELEt"T · ~ lBooksl WHEIl.E (ITitiel LIKE ., •• ~lt.l ••
• "I l'ig)-el/Ük meg, hog)' :o Wl!EIU; l'lr:,,:S8, a LI!!:! m(h..."icI: to!; helyeltesit6 k;I",klerek
(,) se8í~-eI:odJ>, vissZ;1 a~ m'<l'.e'j olyan rekordoc. ~mdynek TilOl e ~ntke
l:ut"hn:u.2.:l a iTi t le p;LrlUl~er bltkét. Ezt a ~Tlt le 1l:iI"Jm(1l'ftnékl1. a t i t eSN.rch
TexlBox \-eZérI6ben !b'6 &tékre fogjuk bdUll:lni

AZ. okblt eg&zítsük 10 egy Gnd\1CW \"C'Úfi6\-eI, éslufX30ljuk az SqIDaI:lSouI'l."C' \ezer-


l6höz. Amikor:lZ okbJt C\6QOr töl!j(Ik be:o~. qn.'el1en ..-kord sem k-u
Lllt\;!IÓ. nu.-eI a felhuzn.í.1O nem in be tntket a ~'egmeztibe II;I.liOOkilrepp, lu.
a feih3szn;110 egy oIy"n kere56k.re,ez&t ad meg. ~m, nem szerepel C'g)1k kOn)'"
cimében sem. az SqllhtaSou~ ncm ad \'issz:.L eg)"ctkn kOny"t"I scm. Ez a k~ I~
megzanrhalp a fdh~~. men octleg r.em &ti. IlOtI}' rnlbt nem l~l körtp-ekt"l.
Az esetleges laV':lr cnyhll~ érdekében ÍIlunk be "8Y <;('!lil(5 Ozcm.1.t.1. a GridView
~tyo..t.'l'ext tut:.~g:1I);i1 Ahogy koclbb:m cmIileuOk, az Daptyo..tllTe"t
tulJjdons.igrgk ez az trtéke akkor jelenik meg. lu. a Gnd\'.ew \'ezbi6höz k.3pö01t
;od.tfon-.1,s..vezM15 r.em;od \'1Ii&Z:O &1d<et. T~nk szerint eh-l'gczhct;ik,. Grid\r_
oWop:l.ln:1.k ~S;(\ IS. tn ug)'1lll'lzt:lZ O6ZIopel~ Iw:znilum. lIUI1!
a led«- kcrlbbi ~ a IInxr1inkF.eId tar'g)-':IJ.1$::r.kor.

Az E!optyo..tll'l"ext luJa,JonsJg bdllMSoI utan pr6b.11ruk ki az oldali a böngészlIben.


A Uti! ~br:ln 1~lhalÓ oldJIon ~ felhaszrdl6 a th« k,fqezest k,,=i. Ez kl'!. ert,d~nyt
~d: 'I't1~, ~ .. b Clltch_H ln the Rye. l-b a felhasználó oIpn keres<'Il<lfejc~C)llr be.
~ml nem szerepel egyIk eimben.'>Cm - ~lcUul Ro11lo -, akkor az SqlIht:oSource \-e:z&-
16 nem ad vissz:o :;rmnul. b,. Grid\~1CW EaptyIlaUo'l"e"t IUb~g1n:I.k &I~k~ fogj:a
meg,deni!eni (!hd" 18.12. :tJ:d1).
.....
l
-_:.- ...
.• _ •• _".~ • . , .'A

_. -....... - -e ... . :i
• •
..
-_ . --
......
...... C - a ..... l l > _
~"

~
,...........
...... ,.
......
'. ~ ...
-
la.1Ubll
A .u,,' tifojeds lIh 66<tJ'l' dmlbnr 1<IkJIJra1d-w

- - '"
... 110' . . . . _ - -

_ ... -
o-·v •

•... _~
• _ _ • Ol· •

n.... ..... _ ... _ _ _ _

18.12. MIn
Jk! "I,/CS flII'.s::lIrd6l1tm.l'.'C;m, Q Gndl'/no Emptj-J)uIQText I"",~'IQII. ~ jt'Ii'tlill. ""3

Adatkapcsolás
Az adallttl{'CWhisn II fol~~JJrulI. ~mikor qn<"''dtr$ "'CZ(0rJ6 ~ rubp:lon.oágll egy
a~d:d.z~ egy.k ~k ktaéhcz kÖljOk. El II folyllJrult nundig ~ulOffi:lulrus:in
lÖfI&uk ~ we\:.e5 ~d:ol\'cz&iőli; ~n_ Anukor BoundHeld, OlC'CkBod'iekI V'Jgy
IJrulgeField mez6ke'l haszrúlunk, teljes egészében II GodV"",' ''agy a Ikt:illsVoew
vez&16 kczcli helyo:ttunk n ~wtk~poiOláill A BoundField pél<üul egy Label vez&16t
haszn~1. és a l:iIbel ~" t !UI~jUon~git ~utOmal1ku~n a megfelel6 ad:ll~ti5ho~ kOli,
II Q)(!(;kBoxfield mező Che<::kBox vcz(:rl6t haSUl~J. ~ ~ Che<:ked tulajdon~8" b
a megfele16 aWl~zisoszJop között V'Jn ad,lIkapcooLb.

A 16. feJezeIben llnuk. hogy egy szerkemhe'l6 Gnd\""",' ' .. gy Oet,"ls\"iewltu-ehoU5;l·


kor .. BoundFodd mt'Z6k .. bpéTt~ $ZefI11l T~80x \'ezbl&.'é \":iln3k.:I TotBox
tut rub~8" pMig a rrrnskllÖZ tanozó ~ bték~ ~ rd.
\~nnak azonbgn hei}=tek. afTllkorqo-ea.5UTkt:SZt/5felülde'l akarunk létrcl"OOml
&,..~ cllen6rn'5 "ezér\6k fch·~eItt. II TCl<l1.lox ''e~6 rubJdons:18"mak rnqr.-:l.I-
toJ:tath.i.1. ' .. gy a TextBox n~ürl6 m15 "ezér\6krc , .. ló~.
18. n·Az . . .., • ... " . · " ' .... k.. • . . . . . . 1447

1'.nnclI.1llt'g\.':I.Ió5iW:ihoz Templ:lIcrocld meZÓl lSólbIonmcz61) kelJ h:w.Nlnunk. b kél


m6d.9Jer kOziiI ,;i!a.<iZlJutunk Fet..·chctllnk egy iii T<"lTlpL:IlCrlCld meUjt 3 GridVoew V~g)­
:I. Oet:.Iils\".ew ve~. ~hogy e:tl ebben n 6r.iban a lIypcrLinkfTleId ts ~Z InmgeFicld
me!6k eseta:.en tettük, vag)' :l.mJaklthlltunk (:g)' meglé\'('l üoundField meZÓl sablolllne-
ZŐ\~. tn:ut p,'aSlom, hogy lnkjhb egy meglévo:'l UOUndField mt'z6t abklt5lmk Tcmp-
lItcrlcld mez6o,-é qn' új T.-mplalcFocld rch~lr helyeit, mtvel n átabkíi:b több Jtpbe
önmcrJ«)d6en !On6Uk. Konkni:tlIn;mól v:on~, hogy n ItemTempl;iIIe b EditJtem-
T~ sablonok aUlOfT1;luku.o;,m ltuqönnelc a Tempbteroeld me:za1ÖZ. egy :od:I1·
lapauk W>eI '-czl'fi6vel n ItcmTcmpb!e, b egy :oo.btlapcKllt TexlHox ,~-CI
n 1;d'lltemTemplale sablonban. Ib Sljlt ke~ ''CSZÜnk fel eg)' s;lbk.nmeZÓl. akkor
oeIctInk keU el~i'gelnilnk II l:Ibd b TenBox wzbt6k hozz;\;Id;ísjt b:az acbtkapc!Oljs
bcilhusJL

Egyirillyú és kótiril1yú adatItapcsolés


AzA5P'iIT kM&: :od:ItkapcKIIlst úmogat: cgyu"ánym b k<!-udI1)'liL Az qn'rln)'Ú ~dll­
kapaolis qn-szmJm fogp a ~ acblhfm...-.g;1op tnatl:. b <:gy adon .~ztri15-
tubJdonsigboz lapaolja. " k<.'ur:1n)'Ú ad:ukapaol~, rM.'Jll cs::ok <:gy ada'bbi<OP'lop
b\(-kél rudp. ludni <:gy \\'ebes ''eztrl6 egyik rub}dons.i~l\;Ik, hanem 3 fonliloU~ra is
kq>e'" Cg)' wbjdonsjg énekéIls ,il tudja ~dni '-ilY adatfomis-vezhlő egy p:!.ram('I~k

Az egyilin)'Ú aditlapc:solb a nem ~IÓ ,,"Cbc.. ad:n\fezéTt6kkcl v:l1ó munka!lOdn


h:lwdb~ Amikor oI)OIn :od:Ir.-cttrl6t hasz.úJunk, amely timogatp a szerk~. a I.>e-
szlirisl: \OIgY a tOOé:It. <Ikkor káu;inyú adatbf"W'lOllst Iw;uú.lunk,

Anuko.- üouodFieId. Chedl:BoxF'Icld. IIypt"rtinkF'oekIl-'3g)' Inugerll."ld mez&kel dOI·


gozunk, Il<;'In kelJ foglalkoznunk:az cg}icln)'Ú Q kélinin)ii a<btkapaol4 kÓlÖlu
kú~ggel- u 1lIIS~ bonyolull m!I\l"letet autOOWlllkus:m elvégzik 3 különféle
mezők Amikor azonban adalkapool! n::zhlőkCl adunk egy TemplateF1eld mez6hOt.
tnI.'8 kell adnunk, hogy az acblk::lpcsolis egyicinyli vag)' k~irln)'Ú legyen_ Amennyiben
a \l"ZMl5t aditok bekll 66c:: is h:lszn:lJJUk:. b ezeket az &lékeket az adatWZI.Iba
mentiilk, akkor ktl:m1.n)"ti adatkapccol:Isr;a ~':I.n ~nk.

lia SI!'ÍI keZ1lleg \'eszilnk ft'! l'g)' sabloruneZÓl. \0Ig)' cfni :1lalakíwn TanplaleFicld mező
Label v:lg)' Texúlo" \'e~ nl'iSlk \'ezérl6re akarjuk cserélni, akkor meg kell adnunk
a Tl'Jllpl;l.leField meZŐhöz adott új veztrlők :Id:nkapCloLII:m (igy azt is, hogy ~z adatlt:lp-
~5 egyilinyíi 1'38)' többtr.in)'Ú), Az adatlapaolis eg)"$len1cn csak egy"~ vcztM
egy adon tubjdons:l~1 a lDClI5hÖZ WlOZÓ a<btWmoszIophoz t;j.r.lftja.
AZ ~d:ltk:ipc>Ol~S531 és az egyedi T~mplateField \'ezl'rl6kkel \fa16 munk~ gy:lkorl~nak
érdekétx.'TI hozzunk létre egy slerl<=helő GridVicw \'czérlő! egy egyedi s;:erkesZlőfc·
JülelteL Konkrét:ln egy olyan CridV.ew vezérl6t fogunk létrehozni, ~mcly ~Z aditWzis
BooklD. Title és Genr .. oszlopainak I~jit fogja megjeleníteni. Alapo"ne!mt.oz& szerint
~ BookID mező csak ol\"..mató lesz, a Title és" Genre mcz6k :;zerkesz:tőfelületekbu
pedig <'8)' TeXlBQ:o:: "ez;<r\6t használunk majd. Minda;w~hal II Gridview 5Of'~ll1:lk
Sl'.erkeszlé;ekor taLin eJooy&d>b. hól 3 Genn mew egy 37. ~es léte7.Ó műfaJt
felsoroló Icnyíl6listaként jelenik meg. Ennek mcgvJI6I;ítWiOOZ3 Cenre HQundField
mez6t TL-mplatcField mező";< kell alakítanunk. "Z Ed,tJt<.·mTempbtc Tc,;tBQ" vezér\6j('l
p'..dig SqIO:l.laSOurce és DropOmomÜSl \'ezérl6lue kell c:serélnlink. A OropDownUst
\'ezérl.:'l S.lectedV",l ue tula~g!inak a SzerkCSZ1CU kön}'\' Genre OS2Iopihoz ,-aló
kapc>Olását adatkapcwl~ aJk:>lmaz4'ival fogjuk mcgokbm.

oe ne szabd junk tiJlságos:m elóre, M,"]611 léuehozn:ink ~ Genn nleZ6 egyedi. ad:ll-
kapooh .5lerkesztőfelillel6, el6ször hozzunk létre egy szerk~'SZIhet6 Gri<Mew
vezbi6t. amely az alapo"nelmezeu S7.erkCSZ1ófelüIClet használja. EmlékezzQnk vissza
a 16. leck~ tanult"kra, hogy ehhez cl&zör egy a frissítés t1mogatás!ir~ belJ!itOU
SqIDataSQurce vezérl6t kell az oldalhoz adnunk. Mi"el azt akarjuk, hogy a rcltwsZlt~16
csak 3 Titlo! és a Genre me.l6ket 5r.erkeQmes.",. ftgye!jünk oda cl. hogy az SqIData-
Scml'C(' "aclzslóOan csak a Bookro. a Title és a Genre mcz6kel adjuk vissza. ahogy
ez a 18.I3.lbr:ín Ls !áth:u6. Ne felejlSÜnk el az Ad,."nced (Speciális) gombn kattintani.
é:; bekapcsolni a Genc,~te INSERT, 1I1'DATE, and f)ElETE Statemcnts (INSERT.
UPDATE é:; DELETE utasit1sok Iro-ehoz:iS::l) jelöl6ntgyutCl.

_.- .... _
---_ _--
- .....-.-
---
~E: !:
--
'-=- - lB.13. ~
II eo"fl8"'" lhe SCJOC' SU1Jcm",,1
1.éf>en.J6.. jMljrlll nH'8 a JJooIlID.
a 7l1lc ~" Gen'" n<rl<y>okal

Ez ulán adiunk egy GridVICW vezl:rl6t az oId:11hoz. kapcsoljuk a:t SqlDataSource "clérl6-
hö~ 6; bpcsoljuk be a:t Enable Ediling (Szerkesztés engcdélrcztse) ~utel
a GridVlCW 01100 dmkéjében. SZánjunk egy percei. ana, hogy mcgnt'zzQk az oldalt
a böngész6nkben. 6; m6d0sítsuk ,.,.bmclyik kön}'\' adaL'tit. figyeljük meg, hogy "mikor
az Edil gombr:t kattintunk ... szerkesztőfelGleten egy szövegmcz6 jelenik meg mind
a Title, miJld a Genre nlCT.6k esetében (Li5d a lR14. "brit).
18.14. "'"
Mmd II 7I/Ir. .,ind II em,......,.
az Il/aplnrlmnm .... , .....t6frf'I'-
llauiiáljtüt

MOI>I ...,~~(jk ""'g, hogy nukbu \'~~hetl'l el aGenre mezl'l teslreszaWsa ~nnak
trdek&en, hogy egy lenyíló l~ban ;eleni~ meg a t;1bliz:u aktWlis ml1fajér1l'keh
t'IIY $zŐ'.egmezl'l helreu EI6SZÓr is II F"1dds p;ttbe$zedabbkb:;ln llbki1SUk a Genr.
8QundFiekI mezót TempllleF,l.'Id mez&.'<!, El: lIUlom:I.I,k\lSln 11'1....t.cn. egy ltemTempl;;lIe
s;ablonl egy ll<bik;,pooIt l:obel vezM&,'el. és ~ EcbtllemTempl:ue sablon! egy ,.wl-
lapc,ol! TextBox ,~·eI. \";o.I6pban. Ira. ezen II ponton Úl'"" kipr6blil,uk;lZ okblt
II ~. nem tapasruJunk ~.re\'ehetI'I kU~ II IS, 14. ~bdn látható
szerkes;;o;thel;ó felillcdlez k~

A Gente n>ezl'l Edltl!cmTemplatc o;:ablonjának mel!\"~lIo1.tat1s;ihoz a GrKI\K!"'I\' ok05


cimkl!)l:l:>en latlinl5Unk az Edit Templales hiv:nkwJ.o;n, Ez a Gnd\'!rW s:.b'()",.l.~'rl",:.-w6
nC~t1t'be visz minket. llhol ll! okoos dmke feborol)illl O!ndclkczbre illó s;d'" onobt
\"jbsszuk az EdttltemTemplale s;lb!onL Egy Text80Jl .'eZM6t keU látnunk ;lZ EdA/\eTIl-
TempblC sablonban. Ez ll! ll<bOOipc!Oll TextHox ,·..ú-.16 jön ~ aUIOffi;luku~.
amikor a ~nre meZÓl BoundF"oeId tipusúr61 TemplJteF",ld IipusU~ lIbkilOllUk, MIH'1
II (,)\';i.bbo;lkb:;ln ,ulr nem "urunk TextBox \'ezbt6t h3~rúlru II S7.erkeszt6feluleten.
(OrOIjllk ezt a vel.ériilt..

AZ EdIIJtcmTempL:l\c sablonl» moot fel k..1I \ennOnk egy DropOownIist ve:zM6t, amely
fdsorolp a BooIuI ~bUlXln ~erepl6 mtlfajolcn. Ennek megval65,~~ eI6!:05r Il'tl'l"
kell hoznunk qo' SqlI>.ltaSource \'~ amel)' 1un)'e"111 rn\Ifll~istáL A \'ezM6t felvehel-
jOk k&-.:tJo,nülll Genre mezl'l EdRlternTempb.te sabIonjába. \.1iul:1n az SqlDabSouroe
v..ZIM6t ll! E<htltemTempblt' s;l1Jk,nhoz ad:uk. ;\lJibuk u::) tub,donság:lt :l1I...nr~
DiltaSourc:e Mékre. Ez uUn ~nk "égig a ,~, C$:LIt aGenre O.SZIOPOt lIdjuk
VISWI. k jelöljuk be a Rerum Only l'ruque Rows (Csak egyedi sorol< ,'~d.15a)
jdöl6négyzetet. ahogy elIllZ e16l1'1óriban 1l.'II0k. amlkOO" egy DropDownLisl qil~­
vel wlnOk az eredrrenyt a m!lfajok alapján.

A gen~eDi>~aSourC1! SqIDau.'>ouroe ~'ezérl6 be1J1it1s1 u~n adjunk egy DropDownUst


,'CZ&II'II a~ EdiÚtemTempble sablonhoz. A DropDownli9: okOlll ómkl!jo!bciI k:ltun1$>.Jnk
II choo6e [)ata Sooroe (Ad;lúorr~s kJ.\"lbwl.,.) hiVlltkoúsr::J, b kapcsolJUk ~lI a lIenre-
DII~aSclurce ~'eZI!rl6h6Z Ugy. hatn· a ~e OOSZIOP tqn.'eI\ nund a rneg,eIeni~ melI'I,
mind pedlg:LZ &t.,kme«'i, M,utln fdvettük:LZ SqH:btaSource '·cz&lől. és a DropDown-
usc veúrl6t is az EdilJwmTcmplale Sólblonba. és mindken6t be:1llilolluk, a k"pemy6nk-
nek a 18, IS. ~br1n I:0111:116hoz keU hasonlitania .

-
. . . . , . . . _ ... _ _ _

•. "" 4...
c_ _ _

.~~

,-
18.15.iItn
_. E&:I' SqiDa/aSoun;e él" "SY DropDo.mlJsl
,,,,,,l!rl6I t"f11If1 ..1l fcl .. ee.,re stJbkn",,,,r6
EJ/Uli"", r ..>mpIo,e Jabkmjáoo

MOS! pr6l;óljuk. ki :LZ ASP.i\"'ET oId>ll a böngélZÓf1kben. Amikor egy adon son nerl<es>:-
tünk. a Genre me.tó lenyOó list:Iként jelenik meg. és felkínálja a BOOka (jblában
~erep16 különféle murafokat ( Bus">es5. FkliQIl és Technology). ahogy ez a 18.17.1ibr:\n
Iithal6, rlg)'eJjOk meg azonban. hogy mindig a DropDownUSI els6eleme a kíjelöll,
a =r1<esztell kön)"" Genre értéke hel)'Clc TeMt h.. II I 'lsr/tll Sllldlo lIad:skÖl1)"" adatait
uerl<esZlJÜk. amelynek a m(lfaja Techl1Ology. II lenyíló li5úban a Busmess müfaj lesz
kíjclöh allapodXln. Tov-lbb;\, ha az VJXlau, lFrissilés) gombra katlÍntV:l mentjük
a módosítások.u, ~ kön}"\' mO"fajil a lenyil61isCiban kíjelöll eJemt:61 ffiggetlenOJ Null
~rlékkénl mentjük.

Mi folyik in? Meg el6t!llnk ~n az EdlUtemTernplale DropOownUst veúrl~hez tartozó


,(btkapcsoIh megv-.d6l.iUs;I. Jelenleg a DropDownÜSl nem ismeri a sor Genre
oszlop;\n:tk értCké!, és nem is adja ~t kijelölt élt(,ké! a GrxMew SqIDataSource "elhk'l-
jének az adat frissít"",kor. Ahhoz. hogy az eg)'lJltmUkOdés megfelelo:! legren. létre keU
howunk a Dropl)Qwnlist adatkapcwlá~t.

Térjunk \";,;..;,z.a a \isual Web De\"(~1oper ~blakjUan aGenre me«'i EditltemTemplate


sablonjihm. Nri~k meg a DroplNwnUSl okOl< dmkéjét. és katun~'\Unk az Edu
DataBtndmgs (Adatkapcoobtok ~zer1<=ése) hivatkozáSl':l. Ez megjeleníti a 'Jen~es
I>dtaBindmg, párbeszédabiakot. ahol összckO!hCljilk a DropDownList tulajdon5l1gait és
a Grid\'l=' SqlDat:iSoun:e wz&l6je ~ltal visa;laOOtI OI<zJc:>pMékekel:. Mivel azt akarjuk,
hogy ~ l,..nyfl6 li5t:\ban a kijelölés aGenre O&Zlop éneke alapjin tőnénj<"'n. a baJ oldali
11Stib6l v:ilasszuk a s",leetedValue tul3jdonsigot. a JObb okbli lenyilóllStib6l pedig
a Gena mez(,(, ahog)' ez 3 18.16. ~n 11that6. M,vel a Selec t edV.llue ért"k hal<i=
meg a szcri(eSZl(1t kön)"" Gen~e értéké!. mindenképp kapcsoljuk be a T'\>.'o-way D-dta-
binding (Kétir:'lnyú ~d:ttkapcsolh) jelöl6négyzele\.
II. 6nI • ~ ....." ..... " .........." k" •• t. . . j 451

_t __ _
".~"""'''''...
_ .. _ ........ _ , .. _ ....... _ . _ _.Y"" .......
'.
--~---. -:::.:--
-- :=~=:
--- -- 18.16. "
.....~ ti ~I<dl Wil<! lUlIJjdon ·

...., " ...... ,.. onlop <'r1cl1éhn


'p IIhmi"JTi "doJkapaoItJs h/.UVtd·
IIIf","Q/

It. "l..,t.ctvool ue lub,dons;ig.u.k a Gfonre ~IO~ \-;a16 \cI.pcsolis:I. utJn nyissuk


meg újr.!:oz okblt a ~kben. E2úU>lI II 1eny06IISU!Jgn kitdöh dcm mqfe\el
II könyv Gan r e értéktnek, él amIkor menejOk a m6d0sit.ú;ainbl. a ki\"1bm.ou
Drop[)09.lllist &t& kerül:u: ad;nb4Z1Sb3 It. 1817. :.Ibr:i.n az ASP.!\"ET okbllllluc6
mGkOd6i kö zben.

l"~
__
"''"',.. " .........., .... ....
,'""~,'".~" _-x
••

-'. , - '-e
• • - •

... ,
.
__ o •
. 18.11.. .
ti Qon,... ml'ZÓ "H)'M1. "'/"II."p<$Ol1
sz«llentófdliJetel bUtotI"

~. Gotnn IttmTempIate...., DropOownlift wzWI5je. Book. t~


IMf SZeUPI6 mIlI.,...t ,....b mIV. ~ lIImIt .1isüb6I. A "" NIJmtM
~ II ~ Bumess múlajU kiinyv. H. ~ __ • t&lyvntk
II adatlit. " • mIlI"",* • FIctton Iehet6s6glt v6llsltjuk. ekko\" • követbz6
a1kai0mmai, amlor egy JOl'! SZ8t"kIsztiiri, • mtifltokllllelsorol6 let!YII6 listMlllt.
m. csak k't eleme !e$l: Fk:tion és Techrlolo!lv.
Ahogv a kor6bbi «ék sor," m6r volt róla SZÓ, NlMIiS IIfItbIn • műfljokat ÖnMI6
Itdatbirist6bl6ba ~ I Book, tMlII pecio ~ kulcsot kapna • mIllIfOkIII
~~ f.aBI. rnegkÖaitáSSaI jól ~OlOtt lisdn:; . . . . r-w.
kezésre 616 műf..,xr6l." nem W$ZÍd.b"'''II ,,_,1Y6 müf.,ut ltIIISZn6I6i
műveletek kMtbZt6bIn..
452 1HL ráz • MIri.I adftbúisoth.

Abban a fénytépalbum·alkalmazásban, amelyet a 22. &ától kezdöd6en looook


felépfteni, ily8/), több adatbArist tartalrndl modeBt fogunk alkalmami, ami majd
megvllágflja B kOnyvek miifajáhol hasonló dolgok modeIIen\sének javasolt módslerlÍt.

" Visual W~b DeveIOfX'l" segítst<gbel nagyon egysn:rií~n megadhatunk ad:nkapcsoful


egy wel,..,. \"ezMőhöz. Jr.l1OjN a 18.16. ábrán I.1tlllltluk. a D:ltaBindings p:\rbesz.hlabl:ik
lehe!:ővl' teszi a mmunkra. hogy egysren1en kiv.:lb.""7.Uk a \"ezérll'l egyik tulajdonságát,
n>egadjunk egy adatlR~lopot. ~mel>1>ez kötni akarjuk. o!:s bejelöljiik, hogy egyirányú
'"agy kétnán}'ú adatk:lpcsol1st akaronk h.:l.5l.1Úlni. Ezeket a I~ket a tervez6 néletben
vtgeztOk d. de megval6l;íthat6k ~ f()t"f"$ néleiben is.

Mmdig érdemes ~z.ni. hogy a tcrvez6 nézet mllveletci nul}"en hatissal vannak
a f~SflI. ezén .'>Zinjunk egy pert:et a fomis nl!ZeI "izsg:í1atára " 18.1. pl'ldíban
l"thmjuk a GridView kódját

}, < .. ~p,Gridview lD.OGridVi.,..,l" runa<, '~erv .. rO


_ AutoGftner.. tecolumna.·Yal ... • Data~eyNa~"~'BookTU'
2: DataSourc"r[)o.' Sql DataSourcel' BackColora °!fhl te'
_ 8or~rColor,'f~YDE' SOrderStyl ... ·None· BorderWcdtho'lpx'
_ Ce II paddlT\9=' 4' Yor..color=' Black ° <lddLlneh 'v"n ,al' >
l : <Col WllfiS>
4: <asp:CC>IIDalIdFJ."ld ShowEditButton='True· h
5: <lI.&p,80undField DataFleld"SooklD' Ne .. d@rText.°BookID'
_ Jn."nVi8lbl,,~"Ya18eo ~e .. dOnlya·Tnle'
5, sortE><pr... don~·ll<>OkID· f>
7, q,sp,90undfleld DataFleld<'1'itle' Ne .. derText.·TithO
~ SortE><presslon.oTitle' I>
a, <lI.sp,~lateYleld ReaderText.°Oenre· sortExpra~.lon='GGnre">
g, <EditIt~""'Pl .. t,o>

,", <asp:SqlDat .. Source Io. · genreDat .. source·


_ runat."servar· Conn .. ctlonString. "d$
_ ConnectlonStringa:Conn&<:tionString .,'
ll: SelectC~nd"SELEC1' DISTINCT IGenrel F~OM
_ [Book a ]"> <lnp,SqlDataSour C<!>
<up,DropOownLltt lOa"\I.mres" runat='oerver'
_ DataSOurcelo."g@nr@DataSOurce· DataTextYield.·Genre·
_ Da. aValueYield.'Genre· SelectedV&lueo'<'1
_ B,ndl'Genr,,'1 h'>
ll: <f.ap,DToPDOwnLl.t~
1(: </Edltl~~l~te~
15, .. I t em"l"""'I' l .. t e>
15, .. aap,UhoIl lOr'UlhoI11" runat~ ' _rver'
... Text,'dl Bind("Genre') b'Hfasp,UlhoIl>
17: < f l t"""""""late>
la, <1 .. ap,Te.pl ... eY'eld>
}9, <IColumna,.
20, <FooterSty1e BackColor.·fC<,;C':~!J· I,.
21, <Rowstyle BiockCol<>r~·'f7F71lt· J,.
22 , <Selectedll"",Styl" BackColor~' *CESDSi\' Font -Bold" 'True'
_ ForeColore'Whit .. ' l,.
23, <PagerStyle 8ackColöh'IF1P7Dl!' Pörecölc>r~"lIhck'
_ IIorlzöntaIAllgn.'R!.lIht ' /">-
24, "1I ....""rStyle 8ackCölör·"6B696B' Font-Bold= "True'
_ Foreeolor~"White' l,.
25, <AlternatlnllRowStyle BackCölör.'Whlta· I~
26, </asp,GridVi~

A 8-18. !;OI'b;an II Genre sablonmez61:ith3t6. A:t. JtemTemplale sablon ,negh~tJíroz1s:l


II 1~17. sorban lörténik, 3"- EdJlllemTempl3te sabloné pedig ~ 9-1~. sorban. A:t. ".dil-
JtcrnTempl31e kél webes vezérl6llaotalma:t.: egy Q'enret\!ltaSource azonosil6jú Sql -
I>JtaSourre \"ezér161 ~ 10. sorb:ln, és egy DropDownl.isl vezérl613 12-13. ~n,
A 18.16. ~br:in dvél:!ZCl1 adatbpcsolis <=<iménye!l 12 sorb!ln Ulhal6: a DropDownList
Self>CtIlldValu.. IUbjdon5ág:if1:lk 3 GEmre oszlophoz v"dló k3paolba a Selectad-
Vlllue.' <U HindI "Genu') b ' nn!velCl haszrciJaLlv31lörtém.

Szerimem sokk31 gyo.sabb:m és kÖllnyebben meg:ldh~lÓ a Tempble"ield mez6k


vezérlői nek adalkapcsol§sa a lervező nézetben, de jó tudni, hogy ezek aZ adalkap-
csoliUok igény szerinI a fOl'l':ison keresztül is kifejez.het6k

A kitir6nyú adatkapcsolás a llind 1=IoptIév ) al~ történik, III egyirány(i


pediglIl EvIlI (oulopnév: 1000000b3ll.

Összefoglalás
Ebben az 6r:\lxm kűlönféle 3d:nokka! k3pcsolalos ltrllákkal foglolkOZ1unk, a webes
amtvezérl6kkel \.,.16 h:uw:il!llrn alkalmas mezők \'ir.sgil:ltáV'dl kezdve. II h3rom ",elŐ,
amelye! megn.'ztOnk, a CheckBoxField, a flyperllnkField é$ az ImageField \'011.
1\ CJwx:kBoxField haszrt1lal:J ~ulomatikusan tötttrtik, amikor egy 8it típusú 05dopot
egy GridView vagy Det::.~sView \'ezérl6höz kapcsolunk, II HyperUnkVleld hivatkozás-.
kénl, !IZ lmagd'ield pedig képkénl jelenik 11)(i!:. Mind:. HyperUnkl'ield, mind az Image-
fkld rendelkezik kél oIydn tula~ggaJ, 3mely lehCl6\'C, leg; 3 ~munkr:l egy adu·
txizismez6 értékének 3 mez6 megfelelő Hyperlink '<lgy Image vezcr\6jéhez Y:116 kap-
csoll~1. KonkR'un megnhtiik, hogy mIkénl :ldhalUnk egy Sur hil':ltkozist nUnden
könyvhöz úgy, hogy a hi\'"JtkozásrJ kanint\':I. 3. relhaszn:l16 az AmaZO<l.com webhelyre
kerüljön. va13mint azt is l:ittuk, hogy::," ;eknilhel6 meg a könyv borit6j1inak képe
3 GridVICW egy~ ~iban
Mqplo!oztiJk, hogy:an hawdlhatók helye«esi~6 karakterek a IfHEIU;: z;lr:t<kk 5l11t6kifeje-
l.bébCil. Ez igen haSUlQS, ha lehet6>"~ akarjuk lenni II felha5ZJ1ál6knak egy adoIt
kaT:lkterUnc·resz ke~ egy ad3tl:d:tl"~mc7.6n lx:h1! Ez az ó'" az ~d:tlk~pcsolás
vizsg;ilat~\'~1 Zárul!, A ",ebe!; ad:ll;\"ez~rlők ugy-~n 1IZ ~ek lc"lbbségNlI.'n n~tív
módon
kezclik az arJ:ukapaol.15t helyettunk, dc ha TemplateFldd mezőt has:r.rulunk, VlIgy
nem TeXlHOJF: vezMt'lt ~kalUnk II szerkesztő- b beszúr6 felületen ~Inl. akkor ~
keU tudnunk oldani II megfe1e16 O5ZIopérttkeknck a megfelcl6 \'e7.trMcula~gok­
hoz .....1ó kapaol.bJ~ Ezt II TempbteFK'Id sablllnoon 1é\"6 '"eztrl6 ok~ dmktjének
Edn DataBm.Jmgs I",'~tkotis;i", kaltIJll''a \'1~gezhel.jUk el.

Eud az 6r.IVlIl bd<jo::ctuk al. ad:llbizlSOk ad:l1l1ihm ASP"NET ",eboIrJabkon keresztül


lört~n6 oowftrts k ,n6<Jo,;;1:Í!i :it1ekim~. Az adatok webold:llakon ken.~{\] ""ló
kezelése igen g)'2kori feladat, e~ fontO$, hogy jóllsmefjílk a meg" ......~11 elii~50kat
Miel6n l<)\'jbhl~p~nk, ~ eiegend6 id6I $Z:InnlllZ ada!ve~lt ASI'NI:." oldalak
Ii'!.n!hozúlnak begy;lkorl1sAr:a, k ~~elni a 1}o18. 00 gy:.korbtait a tanulmlnyok
folyutis:l eI6n_

Kérdezz-felelek
K: ,'II'JlCrhlmlkm:ások megJck",jt~ u "J'fM-"U"kFic/d h=""'/al"'l~tI C(",i1
réu:b<m m('8'mm/wk, hogy a lIypcrLI"kFMlI URJ.-hlékc (J$u(o(J1/11lwI6 16bb
adi1Ibdz/strlCllbc'fl, 00 D Data,\'D'Vl-a/ct'rll'fdds wlIljdo,tsdgoI osVOf",,·,.w
tl'SUÓtd c/ui/aszlollli.Sl4jdm d/iltJ..1t ez
D utJcqp-tékrc (f)muTextUrlFleld)
is 1.'fm(llliKnilt?
v: Sem, 3 ~trperUnkF!cld 1llC7I5nek csak az l'Rl réwe úmog:l1p a tl>llb ~·et"
A lMta'l'l:"Wr l I"i e 1<:1 rulajdons;lg CSlk "SY oszIopne\'et tud fog;orJru l'gy:migy
az ImageFlCkl f1lCZII:'l DataAl t.,z:-nat.-r."t p lel <:I k Dltarull~ örll'! .1<:1 rub,..
<bld.gai l~ csak ~gyetlen oszlop ~'éI bphatjik é-ndcl1l
K: A Hlof.l'CfICS(ld /tiornkl<?l"l'k has:n"Ual(l " 1'(1 'ERE ",irl5ldj<'jczésdW.m cilmi rész·
bet, Id/wk, 1f<lR)"(m jclcrlÍlhe/o "'e.!I' UZ Ó$U'C$ oIJw, "'n)'t', Dmt4)'"cIl D címe
lanalmllIrl' Djel/uu:m1í/6 Ú/fai "'I'[/,adoll keres6ltif<'jezésl. t.cIlCf"e lJ/talth'OSDbb
Itwcs6mo1ort 4éJ;z(lcr'i, aM)' tal u "")1'" (U1jD ,Unu, amel)~JeI! u dme,
D s:er::6}c ,"Qt)' II műfDjtl.Jelft mes Dfdhas=áló állaJ bei,., ~ftjuh",eIt?
v: Igm, ''an ri m6d_ TObb WfmtE únodékfd,t'lek kellene fd."enn(lnk, mmdt'Sytkre
Ug)~ 3 rtW'IÚ, ~h-'a" Amikor nonwn az SqlDauSourcc ''a~
ConftgUre ,h/, SeI«t Sutemer'll k~)~ kereo.ztül megadunk egy SI'U!:CT
lek~zkt" II WIU:RB ú",dék megadon !oZIlt6lufqezéseit AND mllvelel kapaoolj:l
össze. Td~1 ha a1 M!:>an koribban lein ll:pt:oscket kÖVetjük, 6. hirom szílrőkife­
je:C6st ,-eszünk fd II TItl .. , n AUtl\or k a GenTe ouJopokt:il, a LIIIB mllvelt'lel
haslnál,'a "SY II t !.tleSearch 5ZÓ\"'SfIl"ZÓ bt8:bI alapuló ""t:ilrnHffn'I, akkor
:ll: eredmffiye~"n -];l.ECT lekérdezé Ig)- nelnt: k,
SELEC"I' •
FROM [Booh[
WIlERE I[Titlel LIKE 't' , • "') AND
~'l'itle
I IAu~horl LIK!! ". • , "') Alm
IIAu~hor
I IGenrel LIKE .,. • 9Gt!nre • "')

Figyeljilk meg. hogya WHERE l!ora~k ldn)m feltt1elM AND mavelet kapcsolja
egynúshoz. Ez 31); ~Li, hogy c5:1.k :uol<;it ~ sorok~t fogjuk v~k3pni,
amelyeknek ~ Title 057.lot*l1ékc és ~z Author oszlopéTtéke ésa Oenre O6Zlop-
értéke is urtalmazza a keres6kifejezésl. Mi azonban mirKkn olyan könyve! vissz:l
szcreln6lk kapni. amdytknl'l ezeknek az OIIZiopokmk />1rmd);.Ioltanalma7.7l1
a felh"szn:!Jö ilul megadott keres6kifqezésl. Ennek n"'!I'"~ IÓ<$itis!ihoz magunk.
n;lk kelJ ős&7,dIli(;[nunk a SELECT utasitlst az SqIOataSoon:e '"arnzs16 Define
Custom SlalCmenlS or Slored Procedures abl:llclban. (Err6I a képemy6r61 el6ször
a l-l, 6rliban volt SZÓ,)
K: MI vall akkor, Iul m<'8 <lktJrok jeleníteni 'ID' llIéPet ('\'Ig)' hlperllimlkozdsl), de"
kr:p val{)' hifJI-Tfu'mlkozds I~ rom" lóbb betll/í/ásl khd6Wgct uerelt/ék.
",/,,1 DmeJ"')11 az lmngeFicld '1'If{)' allyperl.hlkFicld /clu.'lfftVi lesz? Ha péld(jll/
ktJt llIéPet nktJrok U''ftPC!U.'IOI/ t I "~/, '1'If{)' aZI aktJrom. IIOSJ' t>wlnmflj'f!>/
IIcm 1tI"lIIlzozásk6/1 .",1k(JdQ u6vegjelcnjrm "'C8 a hiPcrhiwlkozás ulii.1!
v: Az egyszen.1 képek és hiv,ukoz:i5Ok e:9CIében a HyperUnkr.ckl és az Jmagel'lcld
CS<Jdjlatosan mIlködik. de ro rogyobb rugalma.ssigra van szilkségilnk ezeknek
~ mez6knek:l megjelenilí:se term, akkor a TemplateFickl mez6t kell hawclJnunk.
EgysZenJen dvége1.hetjiJk a HyperUnkf"leld vagy ImageFicld mez6 TemplateField
mezővé vaI61ulaltitis1t, Il);ljd az ItcmTcmplate ig&ly szerinti te5treSZab<'ís:iL
Ha új weUcs vez6'll'5ket veszilnk rel, ftgreljilnk oda cl, hogy a szükséges
a<latkap,=btokat is beoillil$Uk.

Ismét16 kérdések
1. A HlverLinkField melyik tul:l;dol'lS<lg:it ~Jlíl:ln1l1k és milyen énékre, ha
egy auy cf..,~~övegú hipemivatkol!o& akarnlnk megjeleníteni, amely
a http://W.<IW.buybook ... com/RuY.II!JPx? J SBN= ISBN lJRL·re visz, ahol
a Ci", a könyv ome. ~z ISBN pedig 3z ISBJ\'?
2. Ha a DatllNavil/llteUrlF'ields tulajdons;igot több oszlopnévre :\lIítjuk be
(pó'ldául BookIO é; ISBN). akkor min' ~lIiunlnk" DatllNavigllteUrlf'oOllllt-
StX'inl/ tulafdons;ig«" következő (O!'IlÚl\.lmú URL létrchozásához:
http://W.<IW.book ... ca./Detail ... aspx?BookID_Bookln.lSBN_IS~
3 . .A W1tERE :clrdd{,kb,.m szerepl6 I..lKE mÚ"el", bármilyen ,,<!auípusú oszloppal
hllzn111);1!ö." Igaz \'1lgy h~m(Q
4. Melyik hét mez6(,pus vehet6 fel egy Grid\~"",' , .... g). egy OetailsVlew ve~<ibe?
5. MIben kOlÖflbö2.ik egym:ist61 az eg}'lrnnyú é; a kt1irányú adatkapcsol1s1
Válaszok
1. A hiperlliY.ltko~b URL re,:Gének bcl!lit:.i~hoz ~ DataNavlg/lteUrlFields
tulajdort5:\.got rSeN. a D<tt"navig..telJrl FOnMtString tulajdonslgot pedig
a hnl': l/www.buybooks.cO<I>ISuy .aspx?lSBtI-.\OI éntim kell ~llit:munk.
A $zövegrész be:illíiá$ilhoz a Dat..,1"extFleld IUlajdonslglUk a Ti tle, ~ Data
T.. xtFormatStrlnq tulajdo~nak pedig 3 Buy (0) énéket ken adnunk.
2. AI. adaMziS06Zlop els6 05rloptnékénck (aookID) beszúr1sil a (O). a második
énékél (ISBN) pedig az (11 haszn::\Ja(~val v(:,gezheljiJk cl. Ezért a lulajd~8
értéke http : //,,,,,,,, . bookll. t'OII/Detaile .... "px?BookIIh I O)USBN~ ll) lenne.
3. Ilam;", A LIKE művelet c.o;ak kar:lkterl~nc vagy djturnlidó típlL5Ú OQlopokkal
haszruilhat6.
4. A hét mez6: JIOundField. ChecklloxField,lfyperLinkFiIIld, l_geFieId,
ButtonField. COIIIIIandField ts Ten;>lateFh,ld.
S. Az egyir.1nyú adaoo.pa;oI:is ('8)'szenlen cs:..k \"o:s<:i a JIK'g:ldou adatb:\ziso:szIop
<"nékél. ~ Ö5SZekapcsoljol egy webes vc~6 megadou (Ubjd<:>rW~\'al. A kl1.irin)'Ú
adatkapcsol.1s nem csak <:gy vezérl~ulajclolU<ll!nak (ud iwdn; egy onlopénékCl.
h.aoem ennek fordil()(l~r:I ls képes: k~ 3 (ulajdons:íg énék6"e bdllí(3ni
egy adatf<>rrM-,..,:lér!6 param&eréI:.

Gyakorlatok
1. Ebben 3Z 6cl.ban ~l1ünk egy olyan pé1t:U(, amely egy IlyperUnkField mező
haszru\larjvaJ egy Buy hiva(ko:clst. és egy mjsika(. amely egy könyv boril6képét
jelenítette meg. Hozzunk létre egy oly,..., Gj oldalt. amely megjeleníti 3 Books
tábl100n taláJha(ó összes könp-CI egy GrkMew vezérJ6ben, és rendelkeZik mind
egy Buy IlyperLinkFtdd mcz6vel. mind pt.'(\ig egy 3 könyv borfl6jj( megjelenítő
ImageFieid !Tl("z6ve!. EU'11 kívül \'ál102t3S>-uk a IlyperLinkFi...ld szöv<>g« SUy c áre,
ahol a eim a könyv dme. és hdye7.Zük középre a könyv boritójinak ktpét_
('lipp: 3 könyv borit6képének kö zépre helyezéséhez haszniliUk az ImageFieId
mező I1:emStyl .. tulajdonság~JL)
2. Ebben a Jcck&cn egy ReeCllflll<!nded mezővel b6vílettOk a Book. tJibláL Mi\-'eI
a felha:l1.nilók ~ csak a ",vasalt könY'..,ket ak:orjik megtekinteni, hozzunk létre
egy oldal(, amelyen egy Drop[)(m'nWt "ez(irl6IálhaI6, és II Iis(a Reconunendcd
e\eméhez az I, Not. Recorrunended e\erno!,hez pedig II O 6\t,k t:lnmik. Ez után
adiUnk az old:dhoz egy SqID:uaSource vezt-rl6t. amelynek ROCOiII!Iende<l me#re
egy WHERE :clradé-k szar6kifejezésé1: ~Uitiuk a DropDownList énéke abpjin. VégOl
vegyünk fel egy GridView "ezérl6t aZ oldall""d, kössük az SqID:naSource vererl6höz.
és pr6b:lljuk ki az oldalt egy bön~n.
3. A:L. 6r:1ban It l'l!ZiJrl6ll ad(j(ilt/fJCSOlatáll<lN beállítása dmú részben létrehoz(unk
cgy olyan Q<-'fkeszth<-'1('i GridView ve~6t. amely egy DropOownlist \"ezM6t
használt a Genre mező szcrKesztl'lfelö.lcteké-ru, Hozzuk Il:'trc újm ezt a:t oldalt,
de ezUual használjunk RadioBuuonLisI. vezérl6t a Drop[)(m'IlUst helyet!.
IV. RÉSZ

Navigáció, felhasználók kezelése és


az oldalak elrendezése
19. ófll A wablletyet. szerkezete ws naviQácic\s le/lijt6ségai
20. óra FeJhBSlIIáIók kezelé$EI
21. óra Mesteroldalak hasmálata az eokz webhelyre érvényes oIdaIsabloook
létrllhozisára
19. ÓRA

A webhelyek szerkezete és
navigációs lehetőségei
" kclrc /aT1atmdból.

• Az ASP 'lIT alap"eb"i n:w~a6s Iehet&si-ge.


• \Ti"ffihd}i1nk f~ nqll2l.:irozás::o
• II felhaQrulló he~ bemuulásil ;I webhelren a .mor:zs:;I.úlVOl'l3j" \'ezérlŐ\-d
• ""'l.'bhely Slmezelének IIX"8Jl'lm;!6e;l TreeV_ vezérl6o<l."l
• A ~nu I'('MrI6luSZIdI:lI:J

nvolrol nézxe egy webhcl~' ~ t(Ibb ...-eboIdaIak "'3"'~niI. de tu kiesil kO«kbbtól


15 VIZS~ keWünk. nyomb:an fd(<<Ie1;1;iik, hogy az okbbk korou Iogil".. bpaob-
lok ,~k. b .... bmil)-en IZCllIponI szennt klou:góltikba sorolhatók. s.!uok meg
p&liuJ al. Amazon.rom ...'dlhd~. II terrno;;kek k:l.Il.'g6rúk :w:nnt _ könyvek. :ten&.
!)VD-k w. - kOlönOlnek d. es a fck»~ al: <'gye'l kalt.~kOll bellllls finomodik
a lll(Ifa~ be!iOrOIM szerint. II ",ebhcJyen raUlh:u6 oIdal~k Iogilui CSOfXJ"O'SÍl:lIsa adja
''''geredmo!11yben a u'dJhel)' SZJeriIez1.'t<'t
Mlután:l "'ebhel)' szerke~e!e elk6mlt,:I legtöbb f•.'jleszl6 II IIm'i,gácló kidolgoz.ás:.rutk
keld neki, ''ag)is összeállít ja azt al CSzköztál"~l, amely a latogatót 'iegil' 3 böngtsz.wx,n.
A leggyakoribb rut\!,g:ldós elemek kÖZÖtt megt31állutjuk 3 mcnOke!, :I fanézetekt.'l,
\'alamint a .morL$lut\!Orullakat" Elekkel alapvet6en kM",le efJ! bhe!ünk el: egyré511
t::ij<'konathatjuk a felha~16kat arról, hogy pontosan boi is t:1rt67.kodnak a "'ebhelyOn-
kőn beiOl, .rnsr&zt pedig segitherunk nekik, hogy ~ lelIel61t.'gegys1:enJbben jussanak el
oda, ahov:1 c:s:..k S2eR'In(-nek.

Az ASP.NET navigációs lehetőségeinek áttekintése


A~ ASPSET 2.0 rnegjelcn&c el6ft a webhely szerkew(>".::k (os flllVlgációjirt:lk fel(>pitéic
igencsak id6rabló feladti voll a fejle:;zt6k 5tirn:\.ra, \'olc,k, ak,k egy~1.CTO"en rollzíldlék
a ,,'ebhely szerkezt.'1ét a ""vigádós elernekbc:n, mili nl.~sok adatb::izisl:ibl1koon vagy
f:ijlokoon t~roltiik ezeket az adatokat. Axt pedig, hogy miként biztosíwk az egyséJl"$
navigáöót, a kömyeZe! tel~ Tljuk hagytl Persze sz:Imos kűl!Ő gyárt6 biztositO« erre
.. eflra rt:Ivig.1ci6:s elemeke! - mentlke!, fanl'weket, nlOl7.:;aúIVQOabkat <;tb. _. al.
ASP.NI:.T IlCépite!t webe>. vezi'rl6i köZÖtl aWfloon hiáoo is kerestOnk volna ilyeneket.

S7.erencsére minde1. mlr a múlt(> Napi:ünkban az ASP./I,'ET:lZ oklah&képck :;egít..'<éJ!be1


lehetÓ'o'é teszi, hogy egységes szerkczelet al3kítwnk k'3 "'ebhel~ilnk wnúra. Az oIdal-
1(-.k('P voltaképpen egy XML f:ijl. amelyben logikai részekre O:SZIhatjuk ~ webhelyiInke!,
és ezek nundegyikl'hez egy~g}' URL-{ is rendelhetünk. H3 ezzel c!kl'sz(Jllünk. lJaSZr\i-
latb:! ~-ebeljúk 3 környezet \\-el;ies vczerl6il, amelyekkel gooc\o5kodh:llunk 3 felh:.sznilói
felUIe! rt:I~ig:lció:5ldlel6ségeir61

Az XML (eXtensibJe MarbJp LanIPJagII - bóvitlletó )elölőnyelY)1ehetóvé teszi. hogy


egyes elemekat tulajdon&ágaikkal evvetemben szOveges fOmIábOO táro/junk - vala-
Iloov úgy, &holIV I statikus HTML-kód és ft webes wzérl6k megjelennek ill ASP.NET
oldalak HTML léSlében. Az XML dokumentumok iIlOOban rugatmasabbak IfTML
formátumú tlksaiWI. l19YiIIlis itt a dokumentum készit6je hatáfozl\atja meg
il jelöléseket &: ad módot ami is, hogy az ASP.NET oIdiJltértépe saját elemek.l:al Irja le
8 szerWetét egy XML fájlban.

Az ASI' '<ET 2.0 h1rom webes vezM6I ~I rendelkezésünkre ~ navig:lci6 ~Iiall"

• SilcllapI'alh_ Ennek:l vezl:rl6nek az ~lkalma:ós:!.\':l.1 egy mOT%SmJ/mwllaJ


jelenílhctonk ""'ll, vagyis e~' olyan egyoorus dme\. amely pOlllosan "ZOIlOS'lja
3 feU\aS2cl16 helyét a wcbhely szerkeZCIében. így ~1d.'\uJ, ha egy intemele:l
,
könyvesbohoon fe1haszru\lónk eljutO([ a l"isllal Sh/djo flm;kscímli könY"böz,
a k3poll morzsaut\"Ofl2! v:.bhogy így festhet Homc->Computcrs->Progr.mmting
->V"••ool Studio Ibeks. A:\Ol" egye:l reszeire - Home. Computers Slb. - k:mint\":l
vi5szajuthatunk a webhely mcgfelel6 ~"nl;tre. A nlOf"ZSaul\'onal :;egil~'ell<!h:it
111." • A "abi"',. t ...... ...... . " ............ 1411

3 feLll:lSZJli16 egy 5/.t:·mpilI.mw alan Jtláthatp.. hol tlrt6zkodik. b k"\nn~'Cdén


"is6ulepkedhct a \ogIk2i htcrllrduiban. CA 19.7. ~bcln a SileM:Ipl'ath vezM6t
l:Ir.hatjOk egy börlgt'sz&enJ
• 7h"l'1 '/ew- u 3 "elbio'i ~U!;;\tp 3 .... d>heIy surkeza&.ek teljc:s hlCrJ!Chioíj:h.
Egy intemttes kÖl1Y'~""SboIt est:ttbcn ~ legfel56 .szmtcn ~ f6 kateg6ri1k:n-
Computers, fiction. History stb. - !;;\[;ilhaljuk. amd)'ck alan tov:lbbi katcg6ri~k
bontlutók ki. (A 198 ~briln a TreeVieW ,·etériólláUu.ljuk egy böng&z6ben.J
• I/('tlll - A menilbtn Ugy;lruwk at ad>tok jelennek meg, mlfl[ a fa~U"lben.
m,rdOUle ábrilzoUsuk módja eltér/!. Mig a fanfzl'Iben egy fáI borunk.
amclynek ~gai kiUonlhatók. illetve O:s6=>kh.:1I6k, a n"leTlilben menüpontokhoz
és aln>enilkhöz jutunk. (A Menu "c~l'rl6t múkOdb kOzben 3 19.11, ~bcln
lekintlleljilk meg.)

Mivel a n:w~ 'eúr'oI'ik nuJkilclo:.'5e ~ mcglitog.Uotl okblt. ,,,!amulI az okblt&k<"p


ad:lI:1.>1 \'eQi alapul, az utóbi" fnsoJté5e azonrul hlttissal ~ a " ..ebllely ŐS-<ZCS navigkiob
\'ezéf"lőjjln: Mmdez:ll1 jelenti, hogy lu webhd)'Ünket~"8Y üj résszel bóvlItok, elcg..'nd6
dkésZiK"flÜnk a megfeld6 A.<;I'.SET okbi.:lkat, ts elhelyezni awkat az oklallfrltq,en.
A m6d0tsiúsok ~ kÓ'o"et6en ,,'ebI!d}"Ilnk- minden \"ezerl6je- kgren nő IIkM>SiUI·
von:alaktóI. fanhL'tekr61 V2fJY menükn'll_ aulOn'l3ti1cus;m rudom:;\5l SZJeft'Z az Ul okbi.:lk
Jelcnld~ .\hel6n::t.zonl»n h:uzn;:í!atiXI n:nnenk a """-,pdOos ,.... kri6ket. el kdl kt:sti-
tenünk az okbit&képct. ,";llanuI1' az elIllIroló fájlt

Webhelyünk szerkezetének meghatározása az oldaltér1<.éppel


A [OQ;ny, p4r okbJb6I ~1I6 w"bhelyekrltl soknor nehEz .;,zcrKezeu6l· ~Jm. do:
II kcll60:0n!Ugy méret\lék 1:St.1tben löbbnyl~ jól azollO:>,I!1.;I\O logIkai vlUt rede~nk
fd. A webhely lartalrn:.l-Iegyen szó irucikkt::kl'l5l. förumok 1~1'I5I. ~'~gy
Cikkek.rÓI- v:d.. milyen mOdOn 05.ZI.ál)"Okl);I5OIOIlutó. El: az elrendeM peth!! többnY\le
jOl k:irp .. "-.:bheIY ~ez:l'tét

M",e! mfg llém késZilettilnk több okblból áll6 webhe!yl'l. ill az idefC. hogy ITK:gtcgyOkl
l'ie '':!;rjUnk uonbatl el56 prób;:ilkoz!sullkt61 túl sok:.It! e1.ek a wcbold1bk nem igalin
tesznek 5Cnllnl /u.sznos:I.t, CSlk egy webhely $ZerkeU"ltnck u~nz;i$ir:;a hozzuk ~
őket. E rclt~lc:k melleu aronblln n)"\IgoW!n QahodJlr:;a engedllftjlik a farúzi:lnbL
KI'p~ll,ik I~t el, hogy egy ,nI(!ffietCS kl)nY'....sholtot kéQilOnk

Hozzunk Ijjt l~re egy uj ASI'.NET w"hhelYP"*ktet a Visual \leb De\eloperben!


Projektílnk már kezdetben lartalmaz CIn 0\.'i1' N"ET okta!t, amel>-nek a 1"K.'ve
Dehult. upx, (Ha olyan pI'OICkltipu$t \'oila.szlonwtk, amet)"b.-n nem szc.epel ez:l fijl,
heI)",zzük t'1 benne.) A következő ~)t'fl kbzitsO.nk ~ új ASP.XET oldalt, ntv
uennt a követke~et: OnSOl" .... spx. Lev.o.l.aep". Pr! va<-'Y. up" !!I About. upx.
Készítsünk az dadni kiv:\nt könyvek milbja, 5Úmár.> égy-egy mappit, 61t'grcn
a nevük Business. Fiction é Tc:chnoIOfl} .\tmdhárom tN~1»1l helyellilnk d
.,gy-egy Default.asp" n.,,,ű ASr,'<ET o ldalt Végeze!ill, ~ Tedmology ma~b:ln
hdyeuOk CI a Computers 6; a ~ ElecrroniC$ aJm:lpplkat , 6; a~ el6z6ekhe~ hasonlóan iti
~ hozzunk Iéire eg)"-egy Def<lu l t ,a"p" fájlt

Új mappa elltuly8llÍséhez kattintsunk ill 89" jobb IIDIT1bjával a projekt nevére a Solution
ElIpIoferbefl, é$ Yála~ a New FokIer (Uj mappa! men(ipontot. Ib pedi'l új weblapot
Sl8f8ménk ~ evf mappábal, kattintsunk Bne a mappára a Solution úplorl!fban,
é$ válasSl\lk I kapott menü Add ltem (Elem holláaclisal pont~l

A f~'fui mappák 6; weboldaJak elhelyezése után II Solution Explorer ablaka a 19,], ~brán
lithat6ak szerim alakul

19.1. éln
tIl:"'i} projc.Wt,ll1ldJen clhdft"Z/,lnll
pti, mapprl, és u>eboidal,

Az okblakon helyeZ2ilnk el nánl nJ:l8Y"~rnz6 növegel, ulal~-J" t;rn:<lOIllnl. A gyök~.


köny"tár Default. asp" f:ijljioo.n jónJ:lgam a 'we l"""", to 11tY On l i ne book atore l •
(Üdvözlöm inlemel.e:s könyvesbollomoo.n!) s.Wvegel röglítellem, az OnSa le. aap>!
oldalon a "'I'hh lists t he book" CUrrent ly on "ale.· Ott litruuók a jelenleg
n>egv:isárolható könyvek.), a Business mappa Default .a/lpx fij]~~oo.n pedig" "'!'bill
lista the booka in the Buainess genre, • Ott tal1lhatók az üzleli ttmifii könyvek.)
fel;l"~l szerepe!. irjunk hasonl6 fÖ'Vid ismertet61: webhel)'Ünk minden oldal.1hcJl,

kl. old.~é,1<ép .~észftés.

A weboldal:l kkal elkészüllllnk. következhet hál az oIdaJtMép 1.)s.szcl1lMsa. l.étreho~·


hoz ugyanazokat a I~kel kell \"~greh:r.pnun k, lIUm egy új ASP,NIT oldal beille>ZIt-
s('f"It1. Kattintsunk teh:it a7. ~'gér jobb gombj;h1l1 II projekt nev~ a Solution Explorerben,
és válasszuk n Add lt~'m rm:nüponlot. A megjelen6 plrbesz!dabJakban v:ílasszuk " Site
J\-fap lehetőséget (IMe! a 19.2. ftrlN, és kauint5Unk az Acid gornbr::l. Ezzel p~nk
egy Web, "i t _p nevű oldaltérképpel ,,1lik gazdagabbá
ll. ln • A ou-.w._'-"- " MIl·r ille ~ 1463

OIdaItéttép ~ ragmtodjo ..... W<lb.lit_p néVIm." IIjjIt


• ~~ ~ el. lill UVY" l1'IiSIIIM tesszi:t • Iijft, V~
mM lIlIvet adunk lilki, • • ~i6s vezé06k llIfTI t~ r' .

. , ..... ',- . "

-----
.~ .,~. ,~

.---
.---
1 - ......
~:.
--
.j---
lU. an
IkI)'tttII,JJI ri EgI' lij oIdi,I"-~ Q u-«>lwlJ't'ln"'n

Az oId.1l!érkép Iélrehozw után nyissuk;~ meg II Web.lit..,...p fiih, duplin k;lumt ....~
a ",",'be;l Solution Explorerum Az eredményt II 191 pékUboon I1thatfUk

1, <?~ verdon~·1.n " ...cod11l'l.""U·S " h


2, <It telllq> ~. " http,Jlact "1.llicrollCft .coaIl>.aJ>N.. t/SI teHllp- ri t. I • O" >
), <liteKllpNod<o un,, ·" tit 1 •• •• <1Iecdpl.lon""">
~I <.lteHa~ urh" tltl .. ~·' (\oNcrlpllon.·· ,>
SI <litelUp/OOd~ urh" title'" <Seacrlptlcn. "· />
61 </llteHapNod.~
11 <1.lteMap~

lu okblt&kép egy XML fJ~ (~gy, mini ól web.conf 19), amely webhelyfinj( 1OgOOI,
szcrkcUltt IiroIja. Amcnnyd.K-n cn ;I szcrkc.l:elet meg ~ hataromi. nincs nW
mCgOkUS, $;lj:2.t kczfllcg kdl.swi<CS>;lenünk cll a f~~t. "... fdcdjolk, hogy u. XML f~jIok
s1..igorú f~z1sj SL'Ib1tyoklal rendclkeznck - az egyIk ilyen, hogy érz&cnyck a ki$- &;
rutg)1)Cf(1k kü~ Ez azt Ielcnti. ~. ha ~ <dt......,pNode~ IldycIt hibisan
;I <SlTl!:H4pNode> elemel ~lfUk, n:I\WÓÓI> 1",7.d16ink k,,,l1elt ,,~Jurl.;lk kJ,

Egy misik tgen font~ ,;zab1ly, hogy mtnden elemntk rendelkeznie kelJ n)'116 ~ úro
elemmel figyeliük 1IlCg. ól <lltwc"poo elem n)'il6 rlcn'tc;l 2., mig úr6 eleme a 7. soroan
I:IJ1UI:ol16, A <Ii teMapHocs.,. t.4em n)"(Ó CICmCt ugpn;lkkor a 3. 5JOIban I:II1Jll:I.lf\lk meg,
mig ~demc a 7, ~ ~U A.j és 5. sOfhan tal.:tUutO uiteKilpNode> dc:mrk ncm
rendelkeznek .5Z'Ib1.I)"OII" ur6 dcmmd _ in ól I> tÖlid ",!:okOl használtuk.
Amennyiben XMl·elemilnk tartalma iires, I *6 elemet kétféleképpen is
meglIdMijuk: a hosszú VIiItolat 8 ~DmaoyO$ <elem p.,raméeerl~·"rr"kl·
.. _>< I elo8llt>, míg a riivid változat az < "l..., paraméter1, • énék 1· ... I>
alakban áll.

A Visual web Developef r~et. ha hibás XMl-kGdot adunk meg az oldaltérkép


k9szitésénél. Amennyiben olyan elemet alkalmazunk, amely nIIm IekII meg
az oIdaltén:ép wbvMyilnak -legyen azó aUr alfr6sról, akár 8 kis- és nagybetúk
cseréj&r61 -, a Visual Web DeveIoper kék aláhúzással jelzi a gyanUs elemet.. Ha pedig
.1f.Ied<;~nk egy elem Iezárúír6l, • piros aliW1ÚZl!s figyelmeztet 8 hibára.

Az old:l lté:rkép ~ <8itI!MaP> elemmel kezd&lik (a 2. SO!banJ, amely több <siteMap-


Node> elemet tartalmazhat Az url, titl .. és description tubjdons:lgok 3 webhely
adott rl"SZének jellemz6it írják le, míg :IZ egyes <9iteMapNOde> elemek egymlishoz
visZonyhOtI helyzete a webhely részeinek kapcsolatait írja le. lia a Idnak pillanatnyilag
nem egészen vilápak. ne agg6djunk. péld~nk kapc:;án mindent tiszt~zunk_

Oldaltéri<ép kéS2fté... wobhely szerkezeto alapján


Miut~n össze;\lIftoouk bemutató webhelyOnkec, ieleje, hogy ~=ll'letess(, tegyük
a szerkezetft - ezt kiséreljük meg a 19.3. ~brin. A hier:m:hia minden csomópomján
I~thatunk egy címsort. VlIlamim egy URL-t,

---
- -- --- --- ---
. '- ~-
. I•
,
-, , .... , ,
li

.... "-
/'
" /'

- --
19.3. an
--
, , • . , ut,
, , . ,
)od, '

r±'_
ii kl

1r~>bhrl),1". ~ébrm (l IJ<jfj).d! 1';'""k6roI. szeri", kerül",.. «y cwporrbtl

Ahhoz., hogy eZl ~ szerketele! egy oId:llt...... kqx,en IS rög2.íl.5!lk, nyissuk ITI(.>g az alapér-
telmezen okb.lLérképOnket, és töröljOk bel61c a <siteMapNode> elemeket (VlIgyi~
a 19.1. P&Ia 3-6. .\lOI<Iit), F..-; után haladjunk végig a hier~rchián, fcntr61 indulva, lTÚndert
csomópontban clhelyeZ"c egy <siteMa.pNOde> elemet. Ha egy K-sz egy m;\.sik alan
11. lIA • A "obi............. _n..... Mt ..,WutI I465
,elenik meg a luer:u\:tu;jban, be a hou;,i tanoz6 <llteMapt;ode,. demCI
~g)'azzuk
a felette 1ev6be. Áubve a grakortati megv::.l&icisr.l. a Home réSU>e~ tanoW
<II UK;lpNode> elem Igy feM llIajtL

<.ltel\jOp~ Ucl . ·~!IUlt .• 8p"· tltl",'H""",' "".crlption_ '· I>

f"".gydjük meg, hogy az ,,~ltula~ éntkekm az ~br:in ~IÓ wcbcírnc1, mig


~ tit I. &t&ek6u az ~bdn LItható dmsort haszn1Jtuk. A cieacciption &t8c~ jelenleg
Orem h:lg)o1\lk. de n)"\lg<XDn beleilh:onmk 1:Wnu1rnl m..-!mes leWSl.. \esyük &zre
ut is, hogy a Home rtsz <liteIW.pt!ode> demtnéI a f"Ö'IIld (I» ~ dm>eI aJk:l.lm3zlUk.
E1s6 19;1zi eIemilnk hmzbdisa ulin az okbMrkép kódja Í8Y fat;

<1"",' v .. nion~'I.O· "ncodlnQI.·utf·B· 1>


<d telto.p xmlnBT' ht tp I Illch_s. e.icroloft . C<>ll/"'8t>N~t 1SI UKat>" ri I e - l • O' >
<.lttOMllpNode url.'o.hult.18t>"· title.'IIoaIe· de.crh'tlon~" I>
.. /ütaMap>

MI\'cl a hier~rchia k...•..etken'l ~ a Ilome ali t:onOZlk. a megfeJcI6 "lit"l\jOpNode,.


elemel be keU ~gp.munk a Ilomc·hoz tartoú! <liteM.lph><;l,,> elembe, o..lt)~ részt
taUJunk. \-agyis ~ öt UI ocliteMapNod..,. elemre lesz uukségilnk

<llteMa!)Node url,·,t,bout.I.PX· title.·About' d.sc('ptlon.·' I>


<liteKa~ url.·OnSaI •.•• px · title-'Qn Sal.' delcrlption.·· l.
<.lteMapNöda url,·auslne •• /Deflult.lspx' tltle.·aulin.~&· description." I>
uitaMapNod<!- url_' rleti"nl o.f.ul t .UP'" t it ll' 'Piet Ion' deBcr Iptlon. ,. 1 >
<llteKa!lNode url.'~hnoloqy/08fault.a.px' tltle.'~hnoloqy ·
_ de ,ription=" ',.

Iv. XMl. formiz:úi mbiIYIi nem leSD. 1IhIt6W, hogy -.meri; ~


vagy ~ leImsmíIit* a <, I >, Ill ', vagy III ' karakterekat.
Amemyt1en em molda.lulppen Slii;ségirIk v... Il 5. lt f, 'SIt f • .Ioamp:, I1IIw
Ill .loquot, k6dol:lt IlIImIzhatjuk helyeltlik. I!IV. hl oIdahértépl.""ri: egyik
esom6pontl'oal cini tu/ltdon&ágában I 'Budneu' Inveltln;' r8~nllot
szeretnénk ellelvtmi•• kÓl:llan I 'BUBlneu 5-Mlp, Invn ti fllil' ért'"'
UI ...._

ot új <liteMapNOd." e\emOnk("[ tg}-azzuk be a Ilome ",.it~pN'->de> ekmbe. Igy


okbltM~nk kódp. az ~Llbb<ak $2ernU "lakul
<? .... l VI~don.·l.O· encodingo'utf-eo ,>
.. lltaM.op wn._ 'hnp, I l l c h _ • . ..icrosoft. c:o./ ..... pN~lIS1u.~p-rll.·1. o' >
<llteHaIltl<><H urh·o.t.ull .• _PX' titll"~' description.">
<I i teltopllil(1ol url 'lJ>out .• IPX· t i t ll' • About· ducr lption.·· ,>
<lite~pNOd .. utle'OnSlole.a.pM· utl .. ·OI\ Sal,,' description." I>
<.!t~pNodA url. 'Bu.ln. II/Oefau t .•• ~x· tltlOo·BU.1n ••• •
_ de.crlptlon,'· I>
<alteHapHoda url ·'in.lotl/Oef.ull ."",,' tln •• 'Plctlon·
_ "".crlpUon, ,. '>
I
46& ri. nk/: • Nwigkió, fIh· .. o6I6k k' "t" II OICIIIIk ...... hl

oitellapNod" url~·T<lChnology/Def .. ult. up,,' t itle~ ''I'<lCMology'


• d" .. cription.·· I~
</dteMapNcde~
</stteM..p>
Figyeljük meg, hogy II Home <.iteMapNod,,~ elem liró eleme most mir 3 hosszú
alakban «/ ..
iteM4pNode::» szerepel. Ennek oka az, hogy olyan elemek""l, amelyek
l:Inalma nem ares, nem megcnged<.'1.t a röVid ala k ha.szruj lata - II Home pedig most már
l:Inalmaz g)·ermekelemeket.

Ha folytat ju k ezt az eljárási. 3 19.3. ábcln !~lh316 össza rt.s5zel , okblttrl<fpünk vC,giI1
II 19.2. pél~oon láthat6 abkot veszi fel.

19.2. példa ti L.!u <.>kk</1<Irliép um alma


l, <1_1 venionr'l.0' encodi'lll~'utf-8' 1:>
2, <.iteMap xmlna.'http,'I.~~s.micro5Cft . caa/~pNet /SiteMap"Fil.'l.O' ~
J, <liteMapHode url.'Default,".p'" titler'~ ' dftacription~"::>
4, <8iteMapNOde url.'About.a .. px' titl~,'About· de8crlption.'·~
5, <.itellapNode urlm·Legal .... p"·
title_ 'Legal' de.cription~·· I>
6, <BiteMtoptlo<le url, 'Privacy .....",,' title.'Privacy'
_ dft.cription~'· I>
1, <I.ite!4llpNode::>
e, <dteMapNodo! url.'onsale ..... px· ti th•• 'On !!al,,· M8crlptionr " I~
g, <.iteMa~ url~'Bu8inea./Def ..ult . 48pX· title. ' Bu8ineo8'

• d""criptlono" I"
10, <.it~pNod" url.'Piction/Default ... "p,,' title~'Piction'
• description ... I>
ll, <.iteHap!-lode url.'Technology/Default.lspx' titlQ~'~hnoloqy'
• deBcrlption~">
12, <Bit~p»ode urlm'TechnoloqyfCOmputer./Defaul t .aspx '
_ titl,,~°Cc:llllputen' dftacription.·' /~
11 , <.i t~pNode url.·TechnoloQy/KlectronicB/oaf .. ult.a.px·
_ title.oEl.ctronicB' description." I::>
14 , </siteMapNod,,~
lS, </Bit_pNoda>
16, <".1teKap::>

Webhelyünt fájljainak. eIr~él nal/'( segltséget jelenthetnek a m~,


ráadásul m&gV1Wl1ll a szabadúgunk, hogy oIdahérképünkkelna kÖVlIssiit Bm
hierarchiéját. fl/'( például. 19.3. ébr6n 16thalÓ oIdaItéfk'pen a PriviICy és 8 lagel
r4iSlBk az About alá tart02l1ak,;6I&het III About. upx, 8 Privacy .aspx,
valamint a Leqal. aBp" uqy.ubban I mawában bÜ1i\a16k.
MindazonMtall/'(akran ellSlordul, holl'( kézzellogllat6 kapc$Olat él fam az oIdatártép
és a mappák eHnóazése között. Ezt iÓI muta~ák p81dánkban a könyvek témakörei:
a Techrlololl'( r4iszhez tanOlik a Computers és az Electronics témakiir, és annak
1I'III\If&lel6en létezik webIle/viink6n egy Technology mappa a C","",ut:en és
az Elec t ronic$ almappákkal.
Il.ln • A th ......
F ..uz... .. iM, tO .......
..1467
',_

Morzsaútvonal megjelenftése a SiteMapPath vezérl6vel


Az ASPNET lJ:1rom \'<!z(iriŐ!- SilcMappath, T~View b Menu - ~I ~ fCndelkclé-
5Ünkre, amelyekkel az oIwltMcq, alapján na'-;g:lciós lehd~geket biZlU'>ilh:ltunk
:ól fcl1u$ZfÚ1óknak. A kO\'''''kcú'ikben:ól Sile.\bpl'ath vcz&J.&,-eI foglalkozunk, amely
egy fnOI'"$IÍltvOn:I..l.:!.\ ad:ól fdhaszn;Üó akrullis he~':-nek IDe8/"lenilés.:'fe, MIII(!..
hirom \'Cztrl6t:ól TooIoox p;llelb :-Oavigalion ..esrtberl u-LiJjuk (Ihd a 191 ~brltl_

.- 1!I.4. . .
JI _WOCIóf,~ ti Toolbox fJl'ktta
Naltl&<lIlo .. """,.rton, I..IIiIj.. k

HI. SiteMapPath-t - VIif1'( mk ~ Yel'6rI6t - szwetl'lW; 1Iasm6b, ....


\'lIlli !ontm'4gú. h09Y """ ~ gyök~ egy Web •.-' _t _ p
lI8YIl "" lmIIY llIIYa XML lOtmátI.mb.I tIrtIImaaI wal:Jha'yiri. ~
HI követtüt.1l1l6l6lklMn 1ei116p1\sebt, ~ imi_ f6iIII. .,~j_
tartama" 19.2. ~ ""'-t6.
A morz:saCilVOO8lak különösen olyan WebIle~ -'kalmazhatók siQfrel. ~
hierarchi~il sok IlInlfllog M. Ahow • fellaslNló m6lyebb ú mé/YtbI) SMlem
jut al. ag'(IlI val6az1oúbb, hogv Mwes.zti a fonalit.. A mOrZSaÚtVOnaI y8ári6 pontGSll'l
~1jI neki, hol is VIII ~"~,, ~ 1llhet6Áget bIlt~
~ is, Mgy vi'ség . . . . ViSSmÍII]en egy ""Ua .bb SlIfItre.

A Slte~bpP;olh ,~6 elhel)'c~ eg)~ húuuk;l\ CIn' ptldiny;11 II Toollxtt


p;llcnatól az ASP.SET oIcblr:l Teg}i1k ezt meg gyökM6nY'1:1ronk, to..-jb/»:ól '> ~h·
nology ft; II COq/Utu. nWlppik Def.ult .1.pX oIWI.:oiVllJ is. Mos!. tekml..'iOk meg
lel'\'cz6 nézetben :l SiteMapl)~th vezérl6ket -1~tI);Itl(l k , hogy tlIn:l.lmllk megfelel
u oJdalt&k~pben rI'lgzit<'lteknek. A 19.5. ~brán ezt 1~t1);1,)lIk a Technoloqyl
COfIIIPUten/Pefault, npK péltUjin.

I köwtbdi hiblht.t4s6gebt .daI,.


HIt SiteMlpPlttl wz*IW: nem 119.5. 6brin 1ithIt~ meg! , l··, . . . .
aámbe 119111'1i"ft, HI! tg\' sziirb 1bIIk0l
Iibd !igyWnertfl6 w.n.tt_,' Web. ait_p hib6s XML tOdot tart.Imal..
Nyissuk h6t meg I l6jIt, il }Ivftsuk kJ • hibM - e.zlllllldent hetyre/lol/Mld.
Ha • Root Node > COOiWIl NOdIi > Root NotIIIOrt I6ljuk • tllfVezd nizetbGft
az azt jelenti, hovv nem is k'szltett~k oIdaIt6ttipet (vI{/'( legalébbts Mm
• Web. Bit_p ntY1It adtW neki, is nem I gvöl;'~önyvt6rba helyeztük).
KÖSmriiIjii; kJ • cl(llbjt, il Iw II oIdaltM6p • lltIV'n Vli't, válassmk • V--
(Nélet j menii ReImh (fmshá) pontj6l
468 1w. rtsz • NavigKi6, feIIUZn6I6k til III' " IZ OkIIIek thrvh+e

'-''''''--
.
-
"..1'".:= .... .. , "'" .....--, • .,
., "

19.5. 6bra
-
A SsreM"PPmh az ,.k1uá/1s oItkl/hoz .is:ro")"",, mon;sulllWtUJim jCiet,;, '''Ql

I>Uris elhel)'enOnk hfil'Qfll SiteMapPath "ezérl6c ASP. NéT webhelyOnkÖf1! Noo, ez. nem
voll '':11ami nehéz feladat. Prowljllk hll kl oldalatnk~t egy böngész6ben -I<'ilhalluk,
hogy a Si'-"~l3pl'alh vewrl6k pontosan úgy festenek, mint a tervező nézetbcn, a mor·
zsaut,-onal hivatko:';\s:lirn kauimva pedig a megfelel6 oldalakrn julunk. ( A 19, 7. ~br:in
a T."hnology/CotnpUten/Deh.ul t .... p" oldd SiteMapl'ath vcWrl6jét l~th.oljuk.)

A SiteMapPath vezéri6 megjelenéStSnek testreszabása


II könyvunkben bemul':II01t többi vezérl6hö1. ha5Qfllóan SileMapPalh is sz:jmos olyan
:I.

tula;OOn.s;igg.d rendelkezik. amelyekkel befolyásolhaljuk a rnegjelenésél. lIclllitá.'iUkra


a Properties ablak Ap~r:lnce és Slyles részei adnak lehet6ségcc,

Ahhoz per<le, hog)' megeltsl1k. mikét is lehetnek scgítstgi"'nkre e7-ek a tula;don&ígok.


el6bb meg keU ismerkoonunk a Sile~l:lpl>alh fe1építésb·cl. II "eléM csom6pontokból és
úlvonal-elv:i1asztókb6l ~JJ - cl(lhbil'k a hiemrchia ~il jelmÍttk mcg, míg ut6bbi:lk egy·
szerűen cldla.~pk a7.0bl egym.hl61. Igy a 'l'e"hnology/Coap.tt"U/Default. up"
old11 $ile.\lapPalh vezérl6je három csom6ponlOl-l lool<;\ TOOmoIogy és Computers-
Lartalmaz, amelyeh1 alapt'nelmczés szerint a ,. jelek választanak el egymáscól,
A csom6pomoknak három IÍpusa lélezik

• Root N<XIe (gyökércsom6pon() - II SiteMapl'at/1 ""zérl6 egyetlen gyökéro;omó.


pomOl \':lItalm:Il;: ~z. felel nleg ~ hier.m:hia CSIks:lnak. II 19,2, pt'lda okIaltérképén
~lapul6 oldaJakoon ~ gyök(:rcsom6ponl ne\-'e I lame.
• Currem N<XIe (aktu<'ilis csomópont) - II SileMapJ'ath vcoz"'rl6k ebb6I ~ c:som6-
ponuípusb61 is csak egyet unalm:lznak: ez felel meg aZ aktuális oldalnak.
A 'l'<!!chnology/ccmpu~e~.IDefault .a .. px oldal Sild.lapPalh ve7.&l6jében
az :lklu~lis csom6pom a Computers.
1f1. 6ra • A n ll:ilWyt* ...... " .. i'" ... 11111111151fQlli 14&9

• Grnenl Node Ultal;ll'lO!> CSOm6POnI) -Ide al. ek5zó ktt úpo.ub:l ~ sorolható
aom6pontok tanollUk. amelyek s:clnu "áJtow lehet. anól fagg6en. hogy
az akluá lis csomópont milyen nlély"n helyezkethk cl ~ hierarchi~b:ln
A TechnologytCOIIIP\Iteuto..fault. aBP" oldal Si\('!>1apJ'alh \,czl,.I6j8:>en
egyerlm ~h~l~nos csom6ponl .':ln: ~ Te<:hoology

A 191 tJ.bI:í~tb;m '" ~Ie.\tlrl'alh megje~ sza"'ly0z6 tub;dons1gok;1\ l:idl'lljuk,


rOnd lcirbukbl qn'll:lernJxon "'~ny kötillilk,. ..e~ ;lJtaUnos megjclerodbll:' h;!1.
mig m.UOk qn'e5 ÖS5ZctIl:\'Okrc. mlfll ,"z aktuális CSOm6POnI,,,gy
éppen 32 e/viluzt6k

Sotc'keolor

lIDr'derStyle

tanaImaua.
pathDlrection A7. t'itvonal ir.\n~~1 ~d", meg. Két én& kö.till ,'Jlaml",·
tunk:,. RoolToCun~lI bclUi[jg ese\bl,. CIOITIÓpOnlok
~~nd" ROOI; > :>Cunent. mig" CurTll:ruToRoot

c,om6p0nl hiv:nkoziskl:l'u jelenjen.e meg. tn~kc

0101',
. Font
I
470 N. r6&l: • NIYig6ció, feIlIaZn6I6k h, 'ill" az OkIIIIIk .... • .. ,1

f:rdemes p:!r p"'rcel ehöllenünk ~ fenti fUlajdonsigok vilS~laúval. Az ert,(lml'nyt


a tc,.vez6 nézetben figyelhetjllk meg.

lia nem bironk ffiŰv6;zi képességemkben, ezeket a be:llliWokat - a GridVI~w 6;


a DetailsVlCW vezl::rl6kné1 a IS. fejt'zedx'll ~tOttaklloz h<Lsor!loon -automatikus'ln is
elvégezhetjllk az Auto Fornl:ulehet&'iéggcl. Ha szeretnénk igénybe venni ezt:l 5Itogi"tsI'get,
megta~lh.1tjuk a veztrl6 okos dmk(::jébt:n. II 19.6. ábcln a SiteMapPath AUlo Format
p:!rbeszédabMclt l:ithatjuk. míg a 19.7. álx:! a Te<:hllOlogy/Coq:Nten/Oefllult.asPK
oldal S;te.\1apJ'~lh vezér\6jél mutat)3., miután 3Z Auto FormaI Colorfui lehct6ségét
""-!.:osztOttuk.

-=-"- .::..:..- -
19.6.6bra
.U Au/6 Form", ptlri>ettr<ddblalt
nagy S<'8j~ tI)"jl"'" Sltdl<lPPa/h
,01%érl6l"." //1U'I!SZabdsában

~- -0

............... _,-- 19.7. 6In


" 7ech~mpuWrSll)efi'ull.aS"{lX
aJ""l SIIc..l1apl'a/h '=iirl6je

A web hely teljes szerkezetének megjelenftése


AmInt a 19.7. ábdn is 11thatjuk, a Si,eMapP;1.tl! ve..... rl6 csak ~l akntális oldalt. illetve
az oda vezet6 utat jeleníti meg. Ez Mg)'lo"Zen1"n mut:uja a felhasznál6 helyét, ~ ~n
I~!iOk:It segít, hogy felfelé lépkedjen a webhcly hlefllrchlljjoon. de azt nem te:<r.;
IehetM. hogy a webhely bMmcly részére eljusson.

Tegyilk fel, hogy egy Jjlogat6 é-rke2.ik imemetes könyvkcreskedtsünkhc KC'Pzc1jük el,
hogy aholll106l eg}'~ szöveg áll. ou kmönböz6 oldalak - üus;nesslklok$ (üzleti
könyvek), Fktion Books (regények), Technology Books (műs:z.aki könyvek) - hivatko-
7..isai SQr.Ikomak. Képzeletbeli Utogatónk mO<\l a Technology Books lehel(i<;égre kattint,
19)' a TechnologyIPef ali l t . aspK okblrJ kClilI. Már itt is tallllul maS"Laki könyveket,
de tcw:jbb 5ZI'lkitheti a tém:lkön., ha a Computer Books, illetve ~z ElectrOClic:s Books
kateg6ri.1t választja. Tegyilk lllOI't fd. hogy az előbbi mellett döntött. igy a bpon old:il
SlteMaphth "e~ allame> Technology > Computer$ úl\'OruIlat mutatja, ts
megjelennek a kerc:skedb S1J.rnit;1stechnik:ii kOO)'\'ei Fell\2SZIÚlÓn.k awnban ruf1elcn
ITIe!!JJOIldolja mag:\t, éli r:lthred, hogy ink~IJb az elektronik~róI olvasna. 5<'l egyszer CS3k
(jgy (,ro. I:lege ...."n II tcdllllHb6I, éli lnlclbb egy regtn}1 venne, ViMzal(:pdelhet
a mon.<;:IuI\'Qf\aJon. ~agy n)'QtIlkodha,p II böo~ Back gornl>j1i" majd a megfelek):
wn,r6I Újra e!indulll:lt az egyre :IoZIlkebb k:llegóri;ik f!:lt. A k'nycg, hogy ~ SZólmiWtedl-
mia; kÓfly... ek oIdab1.r6I egyctlm ugr:lssal képlden t'lbni az eleklJOltikal könyvC'ket
"'8)' a resmrekl"l.

lia ezt a Iehct~ ls sze~ntnk b.ztosít;anl:a sdndra, egy oIy.ln f\lI''ig1ci611 VC'ltn6t
ken haszn.1lnunk. amely megreleníti a teljes "'ebllely ~eretét. Az ASI' t>.'l:." klwctke-
l.6kben ~ut;a,on ,'ezl'1i6i - l l TreeView k a Menu _ tppen en teszik

A Mcnu k a TreeViev.' hasonlí, a IS. fejezetben mcg~lllef1 GridV_ élllA."llIiJsView


,...zérl6khöz. kjpUbbis annYIban, hogy nundegyikük műklld6thez SlÜks.:g v:on
qy acbtforri.va, a~lp~k unaJmiit megjelmitik. ~ ASP,KET erre a dlra egy
S.t('~l:I.pD:n2Sour= nn(J acbtfOrJis.,~OI bo:I.05it. amody autocf\llukUSlln kIOlvassa
az oIcbhMc~ ad:I.UII, éli haszn:l.1h.:1I6 alakban adfll ~t az eredmén)' a Menu & II Tree-
\._ "ez&l6knek A GndVlc:w & Details\oew ,~z&l61m8 megi5men SqID:II:15our=
adatfon:iH~z&l6ve! surnben azonban iu nincs stilkség \'lIr:b3ló h:ls7.rdl3tlra ,-:Igy
más bdllít1sokJll.

Webhelyü" S28!kezetének mogjeIen~ése a TraaVMIW V1I2IIrtclveI


A Tree\iew ,'('z616 webhelyllnk részeit az oIdaJtérktp aLapj:1n egy fa aI:rok .... ban )elemu
meg, A litog:nó II r;\, 5<i:o:mlélve pill:rn:uok alan meguWhatj:l a .sapI hely&, & - ro,,"'"
II fa C5Ofl16ponIj:li hj''lItkOl:i.wk - egyeden kaluntl_l wWI>dyílnk ~ pom"'n
leremhe!.

Helyev:ünk ~ e! <:gy ~\r.ew ,=.érlOl ~ Home oldalon (Vllgyis a gyök(,rkÖl1)'\ur


o.f~"lt .""px f:ijljiban), Ahhoz ~.wnlnn, hogy ~ f~néze'l mOködjön.. el6bb eg)' S,t ...
I>l:I.pD:.ll:1Sour= ,.o:zb\6( kell az OkbJr.I, tennünk. amd).'1"I II TooIoox paletu D:.lu.
~ uWh:otunk meg, I I~ ~ rikisclkilnk, I~UiIk e! az okhlon II f~nézo:ret,
maid az ok06 cimkl,tlwtil ;dö!luk nq adatI'orr.bk&11 az ~ dhet)~ Sne\tap-
OalaSourre vezhtOl. Amim bdUitouuk az acbtforn!.sc, a rendsz<:r az okblttritépnek
mc-g{ck>k5en fris$iti 3 T1't'e\''"' IlIn:.Jrro! a !cr\'m ~ed.lom.

Sz:1njullk r.i pir perttl, &' ntzzük meg új old:ilunkat a bÖllgts.l:6nkben (l1sd a 19.8.
ilbr.ít). Pr6bIoJjuk ki a TI'<'eVI<:\\ 1o:he1<'55égcIl- a f~I)Q1l nerepl6 hiv.!.tkoz.1sokr~
k:m;nMl VlIl6ban e!;Ulh:uunk wC'bhe!)1.lnk Wrmdy pontjira. Azon ~,ok bal
oldalin. amelyek rmdelkeznek grer~kekkel. qy., ilIet"e - jelet ub1.lunk. amellye!
mC'fIIclenithl"!Jlik, ~Jet\o't' cllIlnll"lhetjiJk a gyrnnek....!oOlnóporuo1aL VegyIlk &re an i5,
hogy a Sne.\l:I.pO:ilta.Sou.n.'t' pe~ffio:k .semouJyo:n közvetlen IitJulÓ ie\& nem u~-
talh:ujllk II böng6z6ben. Ez persze rend~n \1;116, hiszen ez a vezérl6- hasonloon
az SqlDalaSour<:e-hoz - CSlIk ~(L~tobt olvas ki a megado!l forrlsból (ese\unkben
n oldall&képb6D, és nem ielenik meg 3 JiTML"k6dban.

; \ "... ,~ .

!" CI"' .... _ _


" ...

0-· .) ..'!l.t'.,
~.,_"" .. " ••, F.... " .
lOti "'"

- -eo
_ -

.
'll(

.-.-...
.... _ ..................1

--- ~~

_.
"- e ..

19.8. 6bre
A 1h>eHew sn>rllezer" talmlzl .." oldtIIICrlIép laOTaJmm

ATreeV_ vezérl6 megjelenésének testroszabása


A Tr<.-eView wzérl6k - hasonlóan a Sile.\bpl'alh vez&l6höz - s:clmos oly-Jn lulajdon.-
~ggal rendelkeznek, amely a megielenésilklJÖZ köthető. Emellen rendelkezésűnkre:ill
az Auw Form.1! lehet~g is. anJell)'el aUlorn;\h:cllha1lllk a tC5tre;zabást. A fanézet <;so-
móponlokból ~l fel, amel)'ek a web/)('ly egye$. az oIdallérltépen szerepl6 részeihez
kapcsolódnak. A csom6ponloknak O vagy l szill6csom6pomj:l., és O vagy löbb
gyermt'ke lehet. Igy pélcUul a 19.8. :tbr:'in bcmlltllOlI Tr<.-eView vezérl6ben 3 Home
csom6pon(nak nincs still6je. viszont Öl8)'t:nnekkd - AboUL on Sale. Business. Fiction
és Teclmology - rendelkezik. Az AOOuI csom6ponlnak egy szOl6je (llome).és ká
gyermeke van (Legal b Privacy), a Business csom6pootnak egy szOl6je van, gyermeke
pedig e~ltll;ln nincs.

A fanézetekben négyféle csom6ponu:!) t31~lkow:ltunk;

• Root Nooe (gyökbNom6ponl) - Ezeknek II csom6pon!okn.~k nincs szl1lójilk.


• Parent Node (szüI6csom6pom) _ Azok ~ csom6pomok - 3 gyöken:som6pom
kiváelhel-. amelyek nek gyermekeik V"Jnnak (ilyen az About és" Technology).
19, ón • A '..1IIhIIy.k ~. nlNi{J6ci6I l1h1t6Mg1i 1473
• Lear Node (lev~ksomópom) - Azok a csom6ponlok, amelyek egr SLülóvel
rendelkeznek, bo nines gyermekllk (ilp'n a Legal, :I l'ri\'acy, a Business,
a ~ictioo, a Computers & a Tedmology).
• Sc.>lected N<XIe (kljdölt csom6ponú - Ez a csomópont jelzi nt az oldalt. ahol
éppen um6zkodunk. Ha telút a Home weboldalon jlrunk, a Home csom6pom
len ki;elölt. ha pedig a Busmess oldalon, akkor a Busino..'SS l:.'óOm6pom ver<1.i ~t
ezt a szerepet.

A femi csomóponuípusok megjelenési Slilusa külön-kOlÖI1 tula~gokkal befolrj·


solhatÖ. amelyek olyom n,s>:tulaidondgokkal rendelkeznek, mint a B<lckColor,
a BOrderColor, a BOrder'ilidth, a BOrderStyle, 3 Font bo hasonlók Igr Ic. például
a U,a.fNodeStyle rulajdons;iig BackColor ré:sztulajdons;iiginak :I Red I'néket adjuk.
a levl'lcsom6pontok h:1l1éfSZíne puus lesz.

II RootNodeStyl", PanmtNodeSlyle. Lea.fNOdeStyle és SelectedNOdeStyle mellett


to'... ~bbi kél ide kape:solh.:1l6tlllajdons:lg létezik: a NodeStyle bo II HoverNode5tyle.
El6bbi az aZ alapénelmezen stílus, amelyet a rendszer 3Iltom.:lIikusan alkalmaz:I fanl'zet
minden a;om6pomjil'll, II HovertoodeStyle pedig nt a SlíluS! Jelöli. 3"",ly akkor lép
életbe, ha a felh:l5zn:116 egy esom6pont felen tartja az eg6'mU13tÖ(,

A HoverNodeStyle navvszeni képi VlsSllIjelzésl adhat a Iátagat6nak srróI, hogy


IÍppen melyik csomópont felen id6zik. Jómagam SUlfetem a HoverNodeStyle
B<lckColor és Fon.Color Wlafdons6gait I:ompl&menter szinekre éUftani,
amelyek ráadásul eltérnek & esom6pontok tf8deti megjellllllÍSénel( szinét61.

A Properties ablak Styles rész~n t:ll:1lhatunk még egy !.evelStyl", f\e\'O tulajdonsá·
goto amely lehet6vé teszi, hogy a megje!ené$ SlCilu~t a f:I nint;eit6l fiigg6en illí!5uk be.
Az els6 szint a gyökén:som6pomoké, a m:í.sodik ezeknek a csom6pomoknak a gyer-
mekeib61, a harmadik ez utóbbiak gyermekeib61 ~II, és igy tOY:ibb. Ha szeretnénk
különböz6 stiluSl adni a szimeknek, kanintsunk a Propenies ablakban a t.evelStyl".
tulajdonság mellett;, Mrom pontot. t:l.nalmawgombr:l. így 3 TreeNodeStyle Colketion
Editorhoz jutunk. aool meghatározhatjuk 3 szmtek stJ1usail.

Az Acid gombr-J kanintVlI új szintei helyezhetünk (1 3 baJrn taUlll:1.l6 li,;tában, a jobb oldali
1~b6l pedig a rnegje\en6;hez kapcsolódó tulajdonságokat v::IJamh:ltunk. A baloldali
lista Icgfels6 szinti" a fa cls6 szint;álek (3 gyökércs0m6pontoknak) felel meg, felOlről
3 niliodilr. a fa misodik szintjének (3 gyökércsom6pontok gyermekeinek), bo így tovább.
/!. 19.9. 1bcln a TreeN'odeStyle Collection Editor p:l.l'I.locsz&bblakOlI.1thatjuk egy olyan
Tret:Vj.,w '·"n.'rl6ve!. a,,~lynél aZ eb6 kél szint stJ1usait ~Jljtot.tuk be.

A Properties ablak StYIeS rt5zének tulatdonsigai mdk1t jó ntlúny említtsre (:rdemes ru·
lajdonsiigot tal:ilhatunk az IIppearJnce részben is. Tennés:zetesen felfedezhetjük a szoká·
SOlS elemeket - ~ckColor, CssCluB, Font Slb. -, de ~-.l!l iu pár oly::m IUlajdonság is,
amely kifejezetten a TreeV-teW vezérlókhöz kÖl:hetö, Ezeket I:1thatjuk a 19.2. tlbljOlóltOOn.
474 I rv. nh:z • NIvig6ci6, fIIIaZMI6k kr.! If n az OkIeIek ... ....,. ' 11

" .--
D

19.9. MIra
~. T",,,,t 'Iftt. ,ezb{ó Slílusa;.
co II , .... ".",*",8 CJtll< ftZ eiSIJ IM tt;'"
b<JáIli.tfs<./t ad",1l "'''8

Tulljdondg"'v
CollAp~elmageTooltip
"',.
E.l:rel a ruLajdons;tggal egy It'beg(i leíclst ailllatunk meg,
EXpnndlmageTOoltip amcl)'eI 3 felhaszrúJ6 akkor l~t, amikor a~ egérmutatÓI
egy <:oom6pOIII melleui kinyil6, illetve l:oez:'ir6 ikon feleli
unja. A lula~g tnékében szereplő (Ol karJklerl:\na:>-
kal a rendszer a kérdbes csom6pom f>E'\'évcl helyeuesJti.
Igy ha aZ ExpAndllM.g<>TOO] tip lulajdoosjgnak
az ExNnd l O) tnéket adjuk, a böngl:sz6ben az • ExNnd
Hane" buborék jelenik meg, ha a felhasmál6 a Home
csomópont kinyil6 ikon", feleu Unja az egérrnutalÓ(.
(A buborék apr6, sjrga h:\ut.'fiI mez6, amely rö\id leírásl
ad II wcboIdal 3zon leriiletér61, amely felen 3 feUllIszOO16
az ~t6t t:utj;l.)
CollapselmageUrl Ez II tulajdoo'>ig adp meg a gyermckekkclll.'1ldelkez6
e:<pan<HMgeUl"l OlOOlÓpontok kinyitás;thoz o!'s /)ez:'il'á.'>ihoz rendeli ikon,
NOExpan<1ImllgElUrl V2laminl a 1evt:I~m6p:)fuok kq,f:ójlj!inak 1JRL1é1:.
A kinyith és bez:'ifás ikonjolt 31.: IlII4geSet lula~Wl i:i
meghaúlQZhaljuk.
Ez a lulajdonsig Iehelő...é teszi , hogy magunk határozzuk
meg, illetve ~laSS2Uk ki a TreeYtew \'e~ haSUl1l!
képekel. A Custom énék beáIlMs:iV21 (ami egyébké-nt
az abpénclmezés) magunk adhat juk meg a képeket, illetve
vilaSZIhalunk az el6re meghaúroZOll képös.szclllí~
közül.
NOdeIndent A Trt.oc\"IC\'" ...ezérlő szimjeinek behú~llllltároZZ<l meg.
Alapénelmezeu énéke 20 k41pont
111..
. .w.. ,*..w.c." !W. Ii I " 'st gC . .
• A·u~ ',"'1",

húuon~ ~voubk:;u at qn~ ($I)I,l6polllloll. e JZIIlIek


kOzón. Ez II 1U1;i~ 11 TIlI.'eV"..:w""'~ okO! ctmk*'-
bO:'lI is ki-, ~leIve bekapcsolh:ató.

Az I .... g ..Set: t\lJ:l.jdoll~gg:a1 dóre meghaLiruWII k~llI!bok kőzOl v;I)a5"nhalunk


- U~~k J*kl!iul ,. wl n(low"Help, a Bulletedl.l at, u Eve nta & a Con tjll ~U , Ilzek
mlndcgyíke egyedi ktpOsstt:1l1i\á$t alk:Um:.oz a ~kd<kel rendclk..-z6 aom6ponlok
ktn}il~r.is ikonpi~l. illetve a b'tlc!iom6ponlok netében. (A 19,10. lbrln
:a ' "ontllc ta k4'O" n dll,wll:l5i'.l'l1bút muutjuk be,) HJ s;,\!'41 ktpemkct ~
!;;itn; ugy:min, dbsSZlJk II Cuat . . btéket, ~ adjuk ll'qI a k~ ,,1:bcimé1 II )l lap~
= ""elJr i. ExpandI M g. Jrl b NOE><pandt . .g. !rl tula~gokkal

Amennyiben:ln nere\n6lk, hogy:a ml'8Jelnb ITIlIga a VISUal Web floeveloper


~IJkit.... ki. haSV1~lIulfuk at "'U'O Fomu. leht.'t~g<'I. amely a TreeVlcw okos
clmk~ érhct<"l CI. A 1910. ábdn a TreeVlew AutO Formai p:1~zéd:I\)Iak1t
llth:ltjuk II Conta ct. Lehet~8 ":jl~t kÖvet6en .

.... ,..- , '"


_._---, -
-,----
_ _o
__o
.-.-
0-
i= O--
0-

- O-
0-
19.10. ln
Az JI,,,O Formm pdrbesúdahW/tIraJ
lIórrnyodcn mddosiJhQ1jr4
7m\,...., ""....161,.
~

Wabhelyünk smROl8tének megjelenftése • Menu VeZéI16VeI


A Menu vezérl6 a Tree\"oev.hez h:l§Ol'l!óan megjelen!!1 ~ teljes oIdaltMtpd - ezt non-
ban nem [iv;11, IJ;jnem nlCnllvcl való!;itj:!. meg. Abp1Ii;;apod)Q.n az oIdaltMép !nll)(len
~ menOclemkí.'nt kerul a k~. a hler~rchia uerkemét poedig az ~lmenilk
n:od.uen' :K!j:I.. A1lho.z azonban, hOSY \':IIIóI:Qn I~t vegyük :II Malu khct05qrcinek.
el6szor d kdl hdynnOnk q)' Sile.\bpO:;aaSou~ vcZérl6t:ll menO! tanalrn3zó okblon.
476 1rv. réN: • ~, ....".w.I:. k· Un.ll OkIIIIIr. • •-le· ' Il

Ilouunk létre rnoo;t egy Menu ,'e;:érl61: a Fi,,~ion mappa Default .a"px oldal:'!n.
;>iyissuk meg az oldalt ~ Visual Web Developerben. helyezzünk el mp.a egy Site~bp­
!):llaSűurce vezérlŐI. II13.jd ('gy menüt, Ez ut6bbin11 adatfomisként jelöljük meg a Site-
MapD:IIaSource-1. EZI a lépésünk~1: követ6cn a m<-nü tan~lma a tervez6 nézetbcn az
oldallérképnek megfelel6en alakul. A1apffielmezk szerint II menüben a webhely
hierarchi~pnak legfels6 nIntil ek'fIleill:ithat)uk - esetünkben egyetlen menüponIOl
kapunk, el a Home.

Az acblfomis beiUílása u[;.1n lekintsOk meg weboldalunkal a böngbz6ben. A menü


aZ el6z6eknek megfelelően egyetlen ponlO! lart.llouz a Home felirattaL Ha azonban
az egérmUl:ll& e mo:nüpont fölé visszük, egy alm.:nUl kapunk az Aboul. On Sak.
Business, F1C'lÍO!l 6; Technology ponlokklll. l ia egérmul:l\6nkkal az About vagy
a Technology menOponl fölé megyOnk, újabb almenüket kapunk (]:í5d a 19.11. :ibmt).
A mt'nOponlokra kllninlva a webhely megfelel6 oldalaira jutunk.

... . . ..... . . . - I"" ...

u .... .!'J~.~- '-e


• •

B_._ , • •

-~~

T..-.,..'i.c:-.
'I'l00 . . ' ' ' - . . ' ' ' _ _ _ _
19.11 . ~
Az Imldmto.y" 1/0_.

A menQ statikus és dinamikus részeinek beállftása


A Menu vezérlő egy."'''nt rendelk"zjk statikus es dinamikus részekkel. A stalikus rész
mindig l:ith.alÓ II \vebokblon, míg II dinamikus ré:;z 003 k akkor v:lillk 1~\hal6v:i. ha
a felhaszrulló tl:lszn~IJ:t a menO!. Alap~lIapotban csak az oldaltérk(:p Jegfel56 runt)e
kerill a SCltikuS reszbe, II ,...,ndszer minden nds adatOl dinamikuskén( kezel EZI Ulhal-
juk ~ 19.11_ áMn is - eredetileg csak :I. Home menüpont jelenik meg aZ oldalon.
az almenOk csak a kkor IiJnnek el6, amikor:l. felh:uzn,i16 kll pcsol:l.tb:ll~p a menOvel.

lehet~g!lnk ,,"dn alT'J is, hogy meghactrozzuk. hogy n oIdahéTk~ tdny szimi<"'-
tekint5e ~tikusnak a rendszer- erre szolglíl 3 menil StaticDispl!l;'Levels
tula~ga, a melynek alapbtelmezen érreke l Ha 2-re v~llOZlll.ljllk. a böngész6ben
$l;atikus cJemként jelennek meg az 1 6; a 2. &zin! elemei, vagyis 3 HOIJle ml"llet\
1:!t1L11Ó\-:1 v:\1ik az About. az on Sale, a BU5lness, a tlCtiOfl ts a Technology menüpom is.
A 19. 12. ~br:in ezt a helyzetet !~\hatjuk a Visual \l,~,-ob Dc\'elOpo.!T t"rv" 2/1 nl'z('lí-ben.
18. n · It. .. .til..,. ..... "III'tiger.WWf 'gli Im

""~ ..... --~-" '.-' .~.,.

18.12. ...
._._-_. •
JI ....",11 <oz oIditllCrirp
hifmm::hidjd"all .>to6 lIéI
sz/mjl1 m,ulUjtI .,,,,;11"1""

A Home mellett teh..1t felulruIt al About. lU; on Salt::. a BuSlnCS5. a FICtIOn n


:I TcdtnoIogy merulpo!lt,:I h;lrmordik szint azonban (a ~I, Pri.\':Icy. Computers b
El«tronics dc,uekkel) IO\-~bbr:t ls dinamikus m:Jr~, VlIgyi$ ahhoz, llOg)' pékUul
a PnVllC')- , .. gy a Legal pontok meg;elenjenek a böngbz6 ablak:iban. a fcth.asWlOnak
az Abotll menüpont rotl: kell vinnIe "-z egtrmuUtOt.

Miután. lelhaSlll6l6 az egérmutat6val elhlwJl I tIinImikusan megjeim~." llmenüt,


az még ~ r6Y!d ideig 1ithBt6 marad - alt IN kl6tartarnot határozza mt9 I Menu
~ 011 ,,"ppurACter ~. Alllp6rtelmezen értéke 500 lZI'tdJMSOO.
perc, 'iIg'fIS II eoWnutll6 t6YOZiSa utin II ~ fjj ~I(I marad
IlipMttJÓl'l. HI katMiJt ÚII'f~, en ll. idótlJtlmOt esölkenthetjUk V"I'f
IlÍlWhIjliL

AmenO magjeIanéI6nek telbe'zebMa


A !>I"nu vezér16 wmocJS lul~jdonsi8821 teoddkCZlk. amelyek bd"oIy:\501tl<ltf'lk a meg-
~~ - níJsigusan .okbl ahhoz, hogy miodeg)'tkOkról SZÓI ejtWnk. Ahelyen Mt.
hog)' fdsoroln1nk 6kel. inkJbb klO~mel)'Jk a funtos:obbabt, ls ~Illnk az alap-
elH:kn:' /losszponto:litani a súraz technikai acbtok hel)'rlt.

Ahogy mbkor, I Meoo veárt/i kapes6n IS ~ I figyelmet am.ilogy _det, ••


~ls7N!o1Jli e tuIIJdon"ookkal- tatUSiQOS logIaIatosságl M6d0srtsut llIAajdon-
sjgok irtéke,l, majd n'zziik m&g, milyen hat6$$al i'n IIItv'keoys~. MMyedjiink
III a ~ "'1",* az MSON übl"1fV MQitHgével. jEnnek haszn6lat.61
.3. órában SZ6ItIri b6wbben.)
478 !rv. rM:Z • ~,,,,*,,,M; km " 61 III oldalak .".",, ' ,

Nem meglepő, hogy a Menu "ez&!6 is rendelkezik a megjelenést sz:lbilyoz6 megsu..


kau lulajdons;'igoklr...l, mini a SockColor, a f'oreColor. a Font és mis hasonlók.
Ami s<ómunk!':l érdekesebb, hogy "'Jnnak oly.an lulajdonsigai is, amelyek a dmamikus
és statiku$ ~S2ek ffi<'gjelenfshe V'~nn3k JL1Ussal A nevQk mindig a Dyn","ic "agy
a Static' szóval kezd6dik, a(mlren pél<Jjul a StaticItf!<!\FOl1lllltString vagy
a DynaaoicItemFol1lllltStrin<;j, Az e!6tag megmutatja, hogy a lulajdon$ág a Menu
veztrl6 dinamikus '':Igy statikus reszriR> V()flatkozik.

A 19,3. t1illl~zatl:r~n a Mcnu ''ezfrl6 megje1enéshel köthet6 tulajdons;'ig3it mutaquk be,


mig 3 ]9. 13 ~bra ezek haS"miIat1T:l ad példát.

• ,.. 4il
_ _-
zeL
19.13.6bnt
........ ... AZ ItllAlitalcl. I.of=(mes
;mtl)t>a" luUód<j ......."1f"(>
amomaflltol$ formiJZ1J51
aiIMlmtlrl''''''

StatiCEnableDefault:~:"",:~,~,~~::,:.-;--~~~~:~"::,,,,~.~,:'~~:gjelenjen-e
az almcnOk mellett v:!l amilyen kép (alar>-
értelmezett értéke True). A 19.11, ~br1n
a lIome mellett; nyíl ikon jelenlae ~nnak
kÖSZÖllhet6, hogya StlltiCEnllble-
Oefaul tPopOutlmage értéke True, míg
az About és a Technology melletti nyilak
a DynamicEnllbleOefllultPopOuUmage
True értfke mi.:m jelennek meg.
DynamicltemFormatSt rinq Ezek a tulajdons:1gok hlturozzik meg
Stat;cItemFo~tStrinq a menüpontok növegét. A (O) $egftségé-
"eiu in alkalnlltzolt feliratban elhelyez-
hetjak az oldaltérk~p megfelcl6 r{~k
szövegét. Ez "ZI ;elen ti, hogy II ViRit (O)
megadá.sa t:$CIén" 'Vidt Budn"."
feJir:llOl kapjuk (a "BusineBB" helyett)
a llusinCM mcnüpontrdl.
19, 6rI • A .... abhIIywk R8!Ul8te " lIIYig6d6I ~ 1479

TulajOond 9név ,....


DynamicPOpOutumageTextFormatString It! hal1irolhaljuk meg az almeni:\k képei
SUt icPopOutlDlllge'l'extFormatSt ring felelI megjelen6 buborékok s~\'eg&.
A (O) beill""lIé~el hi\':Ilkoltlarunk
:l.l oldattérkép megfelelő e1emére.
Dynam.l.cPopOutIma'JeU~l Amennyiben nem az atapértt-tmezt-U
StaticPopOutt~geurl nyilal szeretnénk hasWlni az almenük

,
mellett;

lala ,I
Sblikus S1lnl is jelen wn, ezek egyntbhoz
képest. ellolva jelennek meg a képernyoo.
Ez:l. lulajdonsjg hal<'irozza meg a sutikus
menöpon(ok és ,. stalikus almenöik köZl;
elInUs mérték&.. Alapénelmezeu énéke
16 képpont
Orientation Megadja. hogy a menü \'[j:sz;mes
(Horl .0ntaL) ''agy függ6"'ges
(Vertical) irá nyban híiWdjon.
DynamiCHori .ont"lOff .... t A menöponl jobb .~léle ts a hol.Ú tanOID
DyruunicVert !c"lOf f set ahnenö bal szegélye közti tivolsig<J(
adja meg ( de m.b h-jny eselén lehet sz6
a menöponl al56 és az almenü fe~
hallrán.ak (,'i\"OI~g;j.r6I is) Mmdkél:
lubjdonsiig abpénelmezett &téke O.
Logikai érték, amely megtla[jrozza. hog}"
a menöponlok sorai törhelnek-e.
Ala péne1mczffi énéke Fala...

A korábbllfl megisroon SileMapPaIh és TreeV"l8w vezirlókhöz has0rj6an a Menu is


rendelkezik Aulo FOffI\lIIIeheI6séggel, amelyet a vBZér16 okos clrT'rkéjében érhetünk el.
MifKlemeftett a V~ mmos további tul8j~ houlijutllatunk a Properties
ablak Styles részében, amelyekbl testreszabhatjuk a statikus és dinamikus almeniik
és meníipOl!tok megjelenését

••
Osszefoglalás
Ebben az 6ci.ban megtanultuk. mik("'l építhetiük fel webhelyilnk szerkeze!.d (,$
hogyan biztosíthatjuk a n3v'g::ld6s lehet&égeket n oIdallérk(,ppel és az AS1'.NET (jj
r"I:l,·ig.1ciós vezérlői""!.,u oldahérk(,p egy XML fomútumu fajI, amely leírja 3 webhely
SZérkeze'!(,{. Késri(~l ('TdenleS elóbb rcJ~zoInunk a webt.ely (e",ere« 57.e-rkezeld
(en lC1tük a 19.3. ~lrln is). és csak eZ u!:ln nekiesni az XML-k6dolMn~k
Amim elkbllteuük az oldallérk~, has;:n:ilalba \ehe\jük a rulvig.1ci6l!; \'ererlőke\.
A SileMapl'alh egy mO'7.:S,U'tVOfl:lI3\ ~d, amely megmutatja, melyik oldalon tart6zkodik
II relhaSl:n:i16, lov:ibbi v;irol;" a helyét II webhely hier.m:hiájioon. A TreeV"tew és
a Menu egyamm a leljes oldaltérképet jelenítik meg, mmdössze ennek módj:iban
lérnek el, Ahhoz, hog}' ezek II vezl'rl6k \'lIJóban jól működjenek, el kelJ hdyemilnk
egy SileMap()ataSo\!rce adalrorr.i5-velérl61 Í.'i az oldalon.

A fem megi>.men vezérl6k jelenL6s mért&.ben l~'SI=UlbhaI6k. így könnyen. bi1106Wl:Il-


Juk, hogy na"igiici6l!; v"zérl6ink ne ~k ein oldalak 1~Iv:in~16l. EmelJett a navig:i-
ció:s \'ezérl& és n oIda llérkép milködésUkben jól elviinak egymástól, igy a webhc!ly
szcrkezet'::nek rn6dosíl~il pilhnatok alom érvénye:síthetjűk a navigiiOóban is Ha üjabb
ri:szekkeJ szeretnénk kiegés2Jleni II "'t-blK'Jyilnket, vagy régieket szen.'1nénk elhagyni ,
mi~e az oldallérk~ kell fril:.sitenUnk _ a rulvig:ldós \'ererl<ik autom:lliku$an
tszJdik a v:ihoZi~at,

Kérdezz-felelek
K: Miérf k6t'f!ll!li ""'8 I'Z ASP.NIT. hogy az oItll'll&I«fpcr ('g y biumyos, megfoIcl&t1
fom/aZOfI XMLfáJflxm hdyr:zzrlk el! Mjlleg).l"illikJiJor, ha ezek az mUlloA!.
eXJ' adat~tx", longl' qo.' ~Jál XMLfdjl/xm laltjlhalók. t"'R)' exJ'SZ<'1'Űelr
"'Chlle/pl,,iI mappáit 1iZf>1'Ct"hrill'lapul ~l(!Iml, 6s "em aJmnmil az oIdalrérilép
fdjljál/ak /éfl1'lwzil.5Óml bajl6tll/i? E..."l:k szerilll Nyel/kor lIem haszná/I/aljuk
az ASP.NET "al~gáclá5 t'Czérl6il.'
v: NO/i, az ASP,'1ET lehaő\'é t=i a fe)les.zl6knek, hogy sa~1 fonn~tumú olda hér-
k.-,:.eka h3sználjana.k. Ahhoz 3W1loon, hogy ezl megteg)'ék, el kell kb,zíteniúk
egy oldalti'rki'p--s7-'!lgáltatÓl, vagyi!; cgy ol)'lln osztályt, amely elmondja az
ASPJ\' I:,-nek, mIként juthat how n okbhl;rkép ~du~iltoz. A7. abpénebnezell
oldaltérll:ép-szolg:\ltal6 a kor:\bban bemulalOll XML f:ljll ~ fonn.1lUmot hasz-
!Úlja, de semmi ncm akad:ilyoz mcg abban, hogy saját szolgáltatÓi kén;t~iink
Az egyéni oldallérkép-srolg:lltat6k k~zí\ésénck b, hasmál~~n:lk m6dszercir61
nem sz6lhatunk ill bővebben. Ha azonban érdekel Cl a L':makór, n:lg)'szenl
oh'llSnt\'lIlót tal11hJtunk a ht t p, ! l lUdn,micros o ft. com!l i brary / en-u a!
d""spp/html/ex tnds i tenv , asp b a h ttp 'l/m ad n .lItielCoeott , eOfflJ
l i bra I)' I en- usl dm. spp / htm l l <:Ull t s i t _ p , a .. p dmeken.
K: A fejezelbe>t I1'ngelt'g t'ezérliJl helyez//ll/k el a u'Chhel)11/1k oldalain Ha az/
szerelnb/k, hogy mf"derl tt'l.'bolt/"Ioll szerepe/ftm <':!ll' .\fe" " tlU&;' SildlliPPI'IJr
t'<!Zbió, mJ6Jxm egJl'nkbrl át kell ínum. az okfall'Nat, t~l' létezik m/amilycn
t'gJuen1bb módszer?
V: lb egy webhely &.:<zclllílhin fáradozunk,1!tal1oon azt szeretnénk, hogy olda-
laink cg)'séges képet mUl:lSSan:lk - például mindegyiktIk tetején Olllcgyen
~ f6meníl, Persze nekLilllutunk ~ felacbtrulk favág(') módj:íra Í.'i, egyenként SOJr.l
véve al oldalakat, és ki3IJkítva a kívám &.szképet. Ez a hou:'i:íllis uonoon
19. ón • A uuebhelvek-uz..ta" ~ Ieht~ 1481

kornoly fejfájá~ okoz majd a webhcly minden r:lndd\':ucis~nil, hisZ....,


ilyenkor újrA &. (jjm végIg kdl haladnunk minden egyes oldalon, ~rv~nye\[,ve
a rn6dos['ásobl.
Sokkal cél57.erűbb megoldi~ ol mesreroldalak hasm!ilata. Ilyenkor egyeden
weboldalt hozunk Itlre a kíván! kinézeud. és eZ! haszn~ljuk viswnyí,ásl
ponlkénL!gy pél&iul a mesleroldal ,et~ megjelenhet a f6mt-nü, alul pedig
II gyak .... bban használ! hiva,kozá..'\Ok Új olda.!ainkat czután crre 3 nlC$(eroIWl ....
épithetjilk. igy .lZ alapelemek mindig oorl,angban lesznek. R.~ad.1sul a Il"ICSter-
olda.! mód<:.o/;ítisai aronna! megrclcnnck a r:I "rOló oldalakOOn. így a webhcly
tnegjel~ck m6d0si,~hoz cle~ a mestcroldalt s.zcrke:meni.
A meslewldal~kr61 bóI-'ebben is szólunk" 2!. fejezetben.

Ismét16 kérdések
1. Mdyen nevel kell adnunk a>; oldaltérképet tartalmazó fájlfl;lk?
2. .AJ. oldahC,rkt'p f~jlj.'i' webes projcktiink ~rrnely mapp~j.'ioon e!helyezhcljük."
Iga>; Y:lgy hamis?
3. Milyen tulajdonsigokat érhetilnk el a <e1 t eHapNod',> elemben?
4. MJlyen vezéTlőt: kell dhelyeznünk weboldalunkon. hogy a Traoview, ~Ielve
a Mcnu "ezt'r\6 wlóban II ...-ehhely szerkezet"', ábrázolja?
5. .\1; a kűlönl>l;ég a Menu vezt'rl6 statikus és dinamikus része köZÖl!?

Válaszok
1. Web . a i t _p.
2. Hamis. Az olda.!,t'rkép f~jlj.'i' a gyökl'rkönyvúrban kell elhdreznünk
3. A <siteMspNode> lulajdons:1gai az url . a title. ,,,lafllJn! a de ueripüon.
4. A SileMapDotta$ource vezérlISt.
5. A Menu vezérlő statikus része mindig UtQ.ik a weboldalon. míg 3 dmamikus réu
esIk rdh:u;w.i16i be:lV:ukoÚ5'" jelenik meg

Gyakorlatok
1. Módosrtsuk a lecke soron elktszített oldaltérk:<!pet egy új Books (kön~'\"ek) rész
t;oe'·ezetésé-vel. Amikor e1helycu:Qk 3Z (jj jövevc'n}1 az oldaltérkfp f:íjljioon. Ile
adjuk meg az ..,rl IUbjdonsjg Ml>kt'r..
Helyezzuk j, a Business. 3 ficuOfl és a Technology részeket: (alárendelt eleme-
ikkel együn) 3 Boolu 315. majd tegyük meg ugyanezt az On Sale résszel is.
Webhelyilnk ~~crkew:t'r. m05l ~ 19.14 áb .... mu"ula .
w IIV. ,.. • Nwig6ci6, '" eM kw ti I" II OIdI6Ik ...... '

on

1••14. ....
II Uft:IItftY U<',.2ifIi d ~ .m /lnn-LOdd"" .. UI"
2. Ebben a leckében C$ak ~h.iny:u ,smenflnk rm-g II Menu \'~zér\l'l megjelcnb&
5UWI)'Oz6IUl:!.~l!Ok kÖZilI. oIyann}ir.r., hogy a PToprnic:s ~bbk Stylc:s résl~
teJp.en kimaradt
HdyezzOnk el "KY Menu (~ per~ze egy SiteMapDataSource) ve;d;rh~it
11 Lellal ..."pX oklalon, é$ módosltsuk a stílustuI3jdo~80kal, nyomon
kö... et ... e mOveleteink hatJ~1 11 tervez6 ntzelben. illetve egy böngéulil:lt'n
megjelenílVe az oldalt. VtgezelOI próblIljuk ki 11 szinlek kezell-sét biztositó
tul:!.~gokat is (t.ev.lM"nultemStyle., Lev"lSde<OtedS~yIe~ ~
LevelSubl!:.muStylu) -1~tll;!IIUk majd. mennyire ~n1juflllk 11 TreeVlew
\'ezé1i6ntl megL'mxrt l:lts:oikr.r..
20. ÓRA

Felhasználók kezelése
A lecke tarralmáb61.

• Felha~lnál6ifiókok I1imogatása ~ webhelyen


• Hol és hogyan (iroljuk II felhaSZfcll6i adatokat?
• Felhaszn.1lói fiókok és szerepek I~rehozha és kezelése az ASI' Web:sile
AdminiMration Tool segWeszkörevel
• Mappák eltrésének bdllítása II felhasznil6 neve, tipu"" és szerepe a13pjin
• llejelallkezés II webhclpl~ 3 Login vezér16vel
• Elf..\ejleu jelSZ3~<:l.k vissUlillítha 3 P~WO«lReoovery vererl6vel

A 22. (..'jezetben nekikezdiink egy oIy~n webhely fdq"tb{;nek, amclIy..1 fe1haWlliló-


ink feltölthetik és mesosztlt.~ti:ík egyllWsal dIgItális képeiket. Az U~n alkalm:lzások
műk~hezfrll=náI6Ifió.lo:>kra van szükség. amelyek képesek tárolni II felhaSZfcl-
lók adatait. Ha valamelyikük képet szeretne feltölten; a fOloolbumiba. ehhez eI&zör
be ildi jele11lkez"lc, és meg kelJ adnia II nevét és II jelSZ3VliI. Ez II bejelentkezés (eszi
lehet6vé, hogy :lwnooitliuk. pontosan k....51 15 v~n szó, és ennek megfelel6en binosit-
sunk s;clm~ra elérési a megfelc16 (,,,t:llomhoz.
Ha valall2 ig&lybe "CItük llllI bankok vagy keroskt!d6k IdI61.:lti swlg.1ha!Íl5ait, bizonyli-
ra ismerős ~r a fiókok Itlrehoz.'ís:I k a bejelentkezés fol)':!ffi:ll'" - leg:tLibl,;, a fdhasz-
n..116 oIdaLiffiL De hogyan fest:fl. helyzCl;l. fcjlesn6 5ze~1 Mit kelJ lennűnk
a fdhasw!il6i fiókok támog:ná$<l érdekax:n1 IlogyJn hozzunk Itt:re új fclhasw!ilói
fJ6kokat? ts 11... megvan;l. fiók, új felhaszn..1l6nk hogy jelen(kezhe\ be a webhelyre , k
mikénl hagyll:lIja cl azt?

A fclhav.n!j}6i fiókok wmogathira egyre nagyobb igény muUtkozik - az ASP.NET


programoz61 pedIg fdvenl.'k a kestryut. k szimoslehet6s<!gCl épl!<!tlek be:l. környe_
zetbe, amelrek je1cnl6sen mcgkönnyihk a fl6kok kezel~. Utlultjuk maid. hogy elég
p~r "l!(iocnuntás, b; máris megnyílik az ÚJ a felhasználói ftókok h.otSUlál~1lI fel(i
II~ webheJyilnkön eh'égeniik a megfelel6 bd.lJí{:i.sokat. a bejelcntkezl'si vezl'rl6k
aUJomatikusan bilt05ítj~k;l. ~:rilksl'ges felületet a be- k kijelentke"t.shez, az új feJh~,~­
n~16i fIÓkok l~reho1..;i~hoz. az elfelejtett jelsz:I"ak vis$7~1"llítá~hoz k más hasonl6
lehetőSégek Igénybe ,-(-teléhez.

Felhasználói fiókok az ASP.NET környezetben


Amikor eI&zör vá,grolunk egy imernetes kereskedbben, Itlre kell hoznunk egy fi:l-
ha.sznA/ó/fiókot. Ennek során oI)'an jellemz6ket kell megadnunk magunkról, amelyek
egyl'nelmOen :l.z0n05i!anak minket - rbdlsul olyan adatokr:l is stilkség lesz, amelyeket
rJjtunk kívül ~ki ~ i:;;mer lQek a feJhas;r.ná161 adatok JdIcrnz6en:l. f... Ul:lszn~16ne\'CI
és a jelSZÓ! w.karják, bir vanftlk ol}':!n webhelyek, ahol egy elektronikus levéldmet és
egy jelszÓ! k&nek, megir!! m.bok pedig a jelszó mdk-u eg}' PIN k6doi is ,-:"imak.

Az azrmosflÓ adatok mellCIt persze máJ; egyebek megadIsir... is sor kerülhet, így
a ke=kedkeknfl fel kell tOn{ctnünk a sz:1l1ítási k sz:1ml~~i dmCI, míg a lxmkokrdl
szükség lehet a szimlaillm, a TAJ szim és máJ; hasonl6k beíris.i..~. Ha felh.otszn~l6í
fIÓkunk elk&ó:rilll, ~ webhelyre azonosító adalllink m"gadlsival jelentkezhClÜnk be.
Ha webhelyiink Ilimoga!ja a fdhaszntll6i Bókokat. valahol tárolnía is keD a felhaszn..116k
ada(ail- el. a tároló pedig legtöbbsz.ör egy adatbM.is. Ilyen esetekben a webhd)-ek
jellemz6en egy Ufoer.j (v-~g)' hasonló) llC\-"tl ~blát használnak n ada(bizislxm. amely
rögzít! a létez6 feih.otsLn..1lói flókok:ll. A tábla O5ZIopai :lltalál",n ilyen neveket viselnek
Usemame (felhaszruilónév), I'a,,,.-word Ueisro), Email Stb. Ha al. ada(b1zistább elké5Wl~
a felhasznil6i fIÓkok létrehozisa ~r ~'erelcJiték, hiszen mindö:5.5ze egy ASP.NET oldal!
kell késziteni. amel}" elkéri a fel.ha=lá16 adnait- a feIJI:Isznil6nevét, a jel$Za\'i! és máJ;
eg)-ebeket -. majd tögzíti azokat az adatbizisban. (Az adatbi1.isrekordok bes;r:úr.isir61
a 16. fejezetben tanultunk.'

S1.erencsére az ASP,I'-U 2.(l-ban nem m.lgunknak kelll(:trehoznunk a felhasználói


fi6kok adatb~lÍSÚbI1it, hiszen a taSS'í8/11I/1 nevezt"l! lehCl6s<!ggel a ren<bzer ezt
automatikusan megteszi helyettünk. Mindehhez nonoon webhelyilnkön meg kell
valósítanunk a llIgs:ig támog.1tá~t
zo." ' M .... . II l_

Tagság támogatása az ASP,NET webhelyekon


Ahhoz. hogy a webhd)'eI fc!kéWliílk:l. tagság lehel~gének kitusm~ljsjrd. e!(!o;zOr
el kdllndít~nl1nk az ASP,KET Wdl'i;le Admml5l.rJtkm TooIsegédeszkOzl1, Kauint5unk
:I. SolUlion Explorff tete,t'fl t:lL:Uható ASP "<ET COnflgur~tion ikonr.l, VlIgy vJLassmk

a Wd>s'te (\t'ebhely) ma'liJ ASP_J\"ET CoIIrtgur.luOrt bcil1iUsát. AIclrmdyik rn6dOI:ren is


aJbJll'IóIuuk. egy ~bLakba fUtUnk az ASJ'NET We/.lSIte AdminislrJUon Tool
\\~d:JUVllI. amely \eheto1\·t t~ a \\'ebhelyUnk bdll,uo;ll. A 2O,1, lbr.in ezt a \\.eb-
okblt liUutf'-'k.

-
-- --- _... -
20.1. jin
II"'cbird,"Ol .... bcdU,IásáI,,:r ASPA1:.T
lI"'o!/>:rill' Mm/nisi,.";",, ThOI
......hIWwi ,~}IUI fl

AmemViIen ~ VIII ~. ~G.! rnCikÖd6SéVeI ~.tol.tbIn.


klltOOtslri: • WIbIa!l ,obb leISd Hltábfnlithlt6 How do I USII this 10011' ~

A feUUS7.n:11ói fIÓkok timog:IIJ.Qhoz kattintsunk a Security luvatkoz1srJ, igy a 20.2. ~br.in


IlUI<I(ó Se<:urity (BiztonSág) k~ jutunk. lu nlqpdh;ujuk a rendszerilnk~ ;elm
Jeo.'lI felll3SZllil6i f!6kok:it, a felh:as2rol6i 5Zt',epeket, \':I.ia11UJll az qJyes fdhas:znjlókr.l
"unatkozó hozzMérbI szal:4lyo1t:1l

Abpó:f1e1meZés umm az ASp.~ET webbelyrk If1m/ou$_hildesíli:>t aJblll1ólwak.


fJneles,tés alan azt a folyamatot MjiJk, amelynek sooin II rendszer meggyllúldik
a felhaszn:dó kiJé1~. A felhasz,úlói fiÓkoklll timogaló webhel)'ek e;et{o\)en
ez többnyire aZ :l.WflOI;it6 ad:Jtok beolvasi5:iból ,tU egI' bejelentkező oldalon
Ezt a m6dszen ,lrlap a/t'Pli hlll.'lcslI~lIe. n.. \'enk, hi$ztm az adatokat egy tlrbpon
adhatjuk meg. A WIndow~·hltelesués ug)':l.rllIkkor bel$Ó Ml6z:uok eset:t!ben lehet
h;oSZ/>Cl6. lU ~rT6I ''''n szó. hogy ~ felh2:>zn:llók ~ bel$Ó lúlónt elér&ekor m:lr
~lentkeztek: a &1,,"1 gqxikre, tgy az lU talith<1tO \\'ebkiuol~1ó ezeket az :KbtOOl
autom:/oUkus:m IS le t..up kc..'rdeVli.
------
-_. __ . . . ".. _.... ---
---< _-'"
-
-"-"'---"-_._"-
--
.----_
_
. . --_._~.-

..
_--~-_

_.od_rt
.. _._-
..
,

_-_
.... --_.-
.. -
_._-.
........ --- --
----
- --
2(1.2. in
A u ...bhe/y bizto'LS4&1
l1c.I/Jo1áwll (l 5«,,"'/)'
"'-pcn'y61' adhntft·. ""'8

Könyvünkben csak az úrlap alapU hillllHftéssel IogIalkozunl:. Ha &lOnban belső


IláI6zati IIblmalÁoht fejlesniink. érdemes rMsun utá:1anémOnk ft Windows-
llitelesités Iehet6ségeinek.

A hitelesítés,; módszer megv1!tozm:\s:'ihoz kaltmt.sunk a Users (Felhasználók) mező alján


",1~lható Sele<;t authentication type (A hitelesíté:'; módjáJ'\3k ki~lasztásl.) hi,.,.tkol1sr.l.
fgy II 20.3. ábrin (jthat6 k~'1lly6re jutunk, ahol kj~lamhatjuk. nuként crhetik el
a feUI3SZIill6k a "vebheiyilnket:

• Az Inten1etr6l (From the Interne!) - E lehet~ v:lla~s:'ival aZ ű"rlap abpú


hitelesítés melletI döntűnk. és a rendszer I&rehozza II IlIgs:lg támogat;\Sához
szükséges adatb:\ZJ.SlábI~kal.
• Helyi h~lózatról (From ~ IOC-JI network) - E lchet6:so/,g dlas2:t1s:'i,.,.1 a Windows-
hitelesítés' haWl~lata mellen döntünk.

V~lasszuk a From Ihe Internet lehetŐ5égel.


majd kattimsunk a Done gomb ... Ezzel
egyrészt al űrl:.lp alapú hitelesítés meU~ t~zük le a voksunkat, misl'6:n pedig
3 rendszer automatikusan I&rehoz egy ASPNl:;mB nevű SQL Se,ver 2005 Dcpress
Edition adatbá.tiost a felhaswl6i fIÓkok nyi!~nlll~hoz szükséges úbl1kkaJ

Ha "is.sz.:lt6ilnk a Securily képemp5re. a Users mező feJhaWllJóink sziim~t mut.1!Jól


(jelenleg el a sziim ü), é:'; megjelenik a Creale user (.Felhaszn1l6Iétrehozása), \"Jlamim
~ Manage users (fclhasm:i16k kezel.:se) hlVatkoz:1s.
2O..ln • NI

I "~
.
~ ..... _-.,......,
0-,..)
••• ,, '"'r

~.~
•• _

-0
• • . . ,.

_.. _---
._--
..__.... __
--_._ __ .... _
.. _-_
... _.... - ...
.....
---_ -,,--_ -.

- .-
--_._---_
-_._
__--
---_._----
_ ...
.... _..
.... _. _-- ,,-
...
............. 20.3. ""
Az dlml.. 141""'" bM//lltb
anim frIhasnu11é1 ".II
<u' l~forlteI~
hozzd Q 1Ie/ollo~il~

Vi~g:iljuk fTlO$I meg ~ klpoll A$P1\"ElDB ad'IIWns Illn"lmir.. láTjuk be IZ ASI' 1\"I;T
Web$'le AdmmistT:ltlOn Tool abb ldl, & té1;Unk \"iMZa ~ \ isual Web De',elopcrhez
KJtllnLSunk az egér jObb gombji''al il Solution !;xplorer .>.pp_Data mapp;!j.i,..~. és
~1J<S1.uk il Refresh Foldcr (M~ppa frissít6;e) I1'IenOponlOl. lia mindem Jól v"ge~Hlnk,
a mappJ.ban megjelenik ~Z ASf>NE'T'Im.MDF ncvil f~11. Viug,iljuk most mcg az úi ~dat·
l»ZIS I!iWil il [);lIabase Exploraben. ~ II Wbat taUlunk. amelyek Iehet60égei
jOcI.Idn tÍllmut:.lln:1k ;tZ egYRC'I'Il feJhaszrúJói rlÓkok kezek.~.

jelenleg azonban ~k figyelmOnket az upnftt_l-... ra & az •• p, ... ~J(_.


wrat, ip ~bl;\kr.l- ezek t'lIulmawk ulI}'an~ a felhasznil6i fiókok "daL;;"I, ''''gyl$
webllelyOnk minden felJus~n.1I6i flÓkphoz tanoZlk egyo(!lI}' bqegyzb (rekord)
ezekben a tlbl~kban, Az aspnet_U""'~8 t~bla a felhaszn.116 aZOl'l<)6I~s:lhoz szOk.éges
O$zlopok,u tartalnuzza, v:lgyiol gy:akorl:ttilag ~ feJhaSVláIÓfl(.-veket. Az aspn9tJl""'-
benhip tanalma mir al'\fÚJ .rnIeke.ebb - in Illl~lttal\lnk meg minden ~tb!ot. ~melyre
~ntkség ''an a felhaszrdlói fl6kok hi!eIe$í!~11('Z: II felt~16 elektrooikus Ie-\·él·
ctmét. ",Ina,.,s,t, legutóbbi btfeIemkezbálck id6porn~l, 3 fIÓk Iétrehozldl13k
<btum1t. egy emll:kelleUl kéftll:st és a megfeld6 dJaw (ha 3 fclh:uzn;iIÓ c!fele-Jl~
a jetsu~!) és mb Iu50nIó :lW>lok:n_

Iv. aapnet_U ... u 6s az ... pnetJl,'_nhlp jó péid6t adnak I k.IPtSOI6d6


adatbiUlstjbJállset"l. am&/Yf6I IMr UÓltunk. ~Iibbi fajamtekben. A U.erJO
melÓ (amelynek ouIoPI eis6tlages Wc, az !ld&tbMsok nyelwletében) egvtnel-
müen lIlOrlOS/tJI mlfltttt [jbJa bBJ8II'(Zfsart. tMbb' egy Idegen klb meg!ltriá
1I"..,loskodik lfT6I, hogy II ... pn~tJl uh I" !áIlIa mllICIan u.erlo-rebJrd.
i6hol ~ mtgIllIl! . '.erIt' az U", .r 1'bJ'bao1. Ez batosftp. kjt
t6bIa kÖlti klpaolatot.
lu idegen kUIC$ ~szorlt's egyfajta szabályt rögzít az adatbázisban. amely szerint
az egyik tábla valamely o~ának értékei egy másik tábla &gy oszlopában szerepl0
értáketnek lalKlI:l1: meg. Ezek a szabályok biztosItják az adatok &gységességét is
a táblák hpesolatál.

Felhasználói fiókok létrehozása és ker'ése


A fcl!usm1J6i fi6kok adatb:Jzisa meUeu az ASPNET II bejclenlkez(:s( scgít6 '·ez&l6l<('(
is biztoSLt. :uneJyek egyike lehetŐ\"é teszi a fclh~~"ZIláI6k snmir:a úl felhaszn:llói fiókok
lé-trehoz1s:i1. Mindawnálul rendszergazda ként ezt magunk L~ megtehecjük n ASP.N"-'
Web$lte Adminisltatíon Tool seg&ieszk.özével. amellyel a núr meglev6 fi6kok bcllJ[~·
satt is eI .. égezhecjOk

Új felhaszn~16i fi6k létrehoz1s:\hoz nyi5Suk meg az ASP.NEr Webslte Adminis.lr:ation


Tool Security képemy6jél . és kaumISunk a Create user hivatkoz.:ísf:I. II Users mez6ben
Igy II 20.4 ábr.l.n látruttó k(:pemy6re jutunk. amelynek lart:<lma hasonló ahhoz. amit
II fdhas.znUók I~tnak sapt fi6k;Uk létrehol.á5;ín~1.

_... -.._.
- ---
----
_

....-_
--_.,..--
-...
...... y .... _..."....

-._-
--
l __ l

20.4. jin
{J fdhasnui/ói fi6lll ~l

Adjuk meg a fenla.~znMónevct. II jelszÓ!. az elektronikus levéldlll<..'I. \':;Ibmim az emil--


keztet6 kl-rdést . és IClI1inlSunk a Greate User gombra. Az emlékeztet6 kt.-rd(:S( akkor
1es.2.Í fel II rendszer. rut '" felhasználó elfelejtette II je]s.;r.:...."t. é'l úgy jutrutt hozti ahhoz.
ha meg<ldu az it! rögzített v:lJaszt.

AlllJkor új felh.aS7.n.:i16i rJ6kO( hozunk létre - aHr a fentjek 5Zennt, az ASPJ"'ET Wcbsite
Adrninistration Tool segílSégél-el. ak1r a webhelyen keresT.tOI. a Cre"Jtel1serWiZ:lrd
wz(,r!6vel (ÜS<.! kk6bb." Felll(l$VJálóifiókvk /érrdU)Z<'jso a w<-'lJhcly felllletbJ timú
rkzben)~. " rcndw:r elvégez n('hány "d.:lteUen6a6 ,~z.~íP],.tot. MuldellCkelőtt
20. 6nI • rA . 6U II 1489

alapvető fonl~gú. hog)' kuoltRík a fdliUZNlónb. II tdsw, a ~ megt'I15s,I~,


az em)(I,ke<:!rló kérdes. v:llanum az erTe ,':Írt \~l:wo. me:OOJL A fdhaszn!i~ egYWi
kell legyen, II ;elszó kcll6en .CIÓII" (:llapénclmclts 5lrrim legal2bb ~ k.:I.I·~kt.."f 11066ZÚ;
d>l:.61 aZ egyik kar~klcr nem IcIICI bCnJ vagy 5zjm), az dektrorukus levélctmnel<: pedig
helyei alakban kell ~ereprlnie. lia ér...fn~lelen ~d:ilol(;1l irunk be, a n.'I'Kbzc.'f c!;}'
hibailzenettd én~l erről. ts addig nem hona létrt" az új fdlw;zrn!6i rlÓkot. ~ntig
:I hibikat ki nem ja\itottuk

I b mir 11'tez(i fdhannJ.lók bdllitis:oit szeretnénk m6d05iu.ni. lalltultSUnk a Security


k~yó Man:lge U5IerlI hiv:ukoz.4ira. így:l 20.5. ~br.tn Uth.:1I6 kq,emy6rt" jutunk.
:Imely fcl§OlUlja a renctszcrllCn ;elen levő Ossz,,", felha5ztúlói ftókot. B4irmelpkukrl
)7,<."fke>;~thetj(ik, tőrölhetrilk, m ..'t\'e aktiv "'~gy in~ktiv :1l1apotba tehctjOk.

_._-_._ ,-_
... _.. .. _-----
_._----_ -
.. _----_._ ..
.--- .. _--- ... .....
.._~---_

..... _-~-_
_-

. --
- - -- - . ~ ••• I ••
... ...
--
~-
A .11/1""""" u.n
~,I~ ne,,,,,,,",·
Mlpllr " Itlt(JIMlj,,1r
.. Nhda,wl/44 ~I

Felhasznál6k osztályozása szerepek szerint


BlZOnym ésun"rllilk:l Secum)' k~)-6n. V2l:uni11l :I feUl3SZJÚlói fIÓkok ~ra
b; kezelbo..'re 5ZOIg;il6 okbbkon :I ROIe:I (Szrrepek) 1elM:t&égo:t. Ev.el- mily rrqIeP6 -
II feUlól.SZlÚ16kat a rt"tltbzcrben betölloo ~k al:lppn 05Ztályozh;ltjuk Igy p&I1uJ
buon~ ~d<ben érdenk."Ilcllrl:l wffiht'ly felllaW\.llón rendszergu.d:1kra (Adnu-
nlSU":ltor) ts egyéb felllól!ol.n1lókra \~Adnllni.strator) OSlI:mi Az e-k'5bbI,.zerepet j::Iru:6
fe!hasznlJ6k szii,ror~ dé-rhetó\,~ tehetjOk a webheJy oIy~n ter\lletClt. amclyeh1 jobb
uerelnénk a többiek ('161 elrejteni

lb szOk:sfgünk >':In:l f.-lh:l5Znil<'>k szt:iepek ~erinu oszt:IJ)'ozá~r;I. vUintSUnk


a <;ecunty k~yó RoIes nll"~ E=I* rok-5 (S~erepek engeddyt'z&o.o) Im':ltko-
Us;lr:> Ezzel bekapaulruk a szerepek: ~LotJ.1. :amelyek bdllít4ira;& (;mole or
I
490 IV. rÍIIZ • NIvig6ci6, ,....n~ kl! '1n" R oldalit. ........

Managc roIcs (Szerepek létrchoúsa v:lgy kezelése) hiv:llkozás ~d módoI. A 20.6. ~bdn
a Create or M3nage Rolcs kl:pernyŐllithatjuk, az AdminiSlr.uor és a Non-Administnuor
szerepekkel.

_... _-_ __.. .. __ ....... -.. _


- ---.'-' .. _._--_ .. -
-_ .. _--___
.. _--
... ..
-
---
_~". ."u.. ~ .....

2O.S. 1ibra
Kél ttert'pCf hozt''''. ktm Q ren,lI.u-roen, .,..ci .. z Admfllls!mlOr és Q /I""-Adm,,,I5/rmor

A szerepekhez létrehozhuk ut:1.n felh3SUl~I6kat rcndelllCfilnk. A szerep mellett; M:lnage


hlvatkoz:isra kattintva megkapjuk az Ide tanoző felhaszn!il6k llstájil. Ez b6vílhl'l.6,
csak keressük meg a kidnt fdha.sWIÓl, k kapcsoljuk be ",,,neue ~ User ls in RoIe
{A felh~16 ezt a szerepet töhi bel )e1öl6ntgyzell'l. (lásd a 2O.7.1Imit).

- -~

-_ ........-
• • , • • , • • , ' . ' • • ~I~I.I • • • • • ' ..

-
2O.7. 1ibra
ti SeOl' ...,.:rI f'-"luJsvláfdl az MmlflfssmlOr szcrcplu:z "",lkInl.
II Manage users k~y6n;lZ eI6Z6ekndC q-,pm a fordirnupl I~jilk meg: 3 felllaSl-
n;llókhm rmdeIhetilnk nerepeket (Usd 3 20.5. ;Í!rll), Ehhez C5;lk a kljdöll felhaszlÚló
melletti Edil rOIeS (.~zCft1X'k S7.ffi<emé5e) luV".lIkoUsro keU kattimanunk Igy /lQuJju-
mnk a sze~pek lisúphooz. ~mdyek alkalm:l7.:.is:lr61 ~ JlOwluk urtoro iclöl6ntgywek
beka~V31 döflltJelÜnk.

A SlIIwpekldltart II ASPNETDB adatb4nt aapn~' Jol .... ~ tartaknalllI, ~

--
.1ehasm6l6t", lMepak ~ ~ clll.lIl ..pnetc_UIIlOUlnJ{ol ....

H01láférési mbélyok létrehozása ós kezelés.


lb fIÚr vannak fdhullÚl6k, 1II<:1.... :UerepCk a rend5zerben, meghatirozh:uunk
szimukr:l oomftrbi u.ab:ilyobl is, amc:lyek ~k. hogy adott rdhasmilók.
IlIet"e nerepek nuJyen ;ogokklll rendl"lkeznek ...'.:bhdyllnk egyes m:l.ppUIOZ. AmIm
3 kor:ábbi:okban em!ilellilk. adódhalrulk oI).n helyzetek. amikor bizooyoe m:lpp1k
webokblan <:silk az IIdmm~r.llor ~leZ tal10ZÓ felhaszn:ilók szJflÚra ~ntnk
eltrht,t6\"t lenni. MI!g 8).koribb eset azonban az. am,kor a webl~y egyes r&z~
c5;l k bejeI ..mkezell f<'lh:lnfÚlókal engediInk be

---
,-
..
..- -
._-
0-

20.8. "
",*,>, ar "bIlIIlix'" hmdrozlllllj,,1t ""'II a wi'blw/)' "''''flPJ!",,1t hondfon'sl u"b6J)<l!/
II hozzM~ szaU11yok megha~l'OÚS:ihm n)'I56Uk meg a Securuy ktperny(lt, =Jd
Ianu"IlSIJnk a bal alsó $;Itokban ~IÓ AOC'eSIi Rules ( llou:ifert:si szaU1J)'*) meU!
Cn:a... ;a<;'C'C:S5 rules (HOWI~ ~ Iétrehoz:\sa) M'3tk~, Igy I 20.8 ;ilir.in
I~IÓ abbkba jutunk, amel)ilen 1o\;iJaszth:;(IJllk azt a nupp1l, amd)~ az Ilj houJ-
féJéSi :=~I}, alkalmazni~, fTV!8"dh:llfUk. hogy II szabály egy 5Zt.'repf"t. egy fd-
hasmMóIa.. nundo..'I1 fell\;lWÚlóra, '"28)' C$l.k II r*vtden felhasw116kr.1 von:Itkotik,
";damint dönthetOnk ~rróI. hogy II szabály en8~I)'Cue '~~gy tiltsa a houáféré5l_

Névtllen 1fI~ amUl ~ IIkl ~ nem )8Iantktztek be


• w~, ~1IgVIS abI m6g nem hrtelnhetti:ri;,

Ml"d a ...-d>hdyen az aJaptnelmeun AppJ)llot ,-n khill nino; m;ós mappa, oem~.cln
:KlIllIrunlc meg 5m1JTl'1yen é1telmes hozzáféresl5Z:lbil)', h:tcsak nem a tel,es ... ebheIy
elér6ét abrjuk korUtozni. l2ht tdt helycUilk d pro;ektünkben U AttInin &. a Users
nupp:il. 1':e tön'SdjOnk rnO:SI a megfelel6 webo!dobk clk~'~e1,.,-rre i~ ~ kenll
hamal"OlSan. M06t csak képzeljük cl, hogy 3z Amin Ulllppa webo!<;blai\ a7. Admjni!;lr~tor
"_r.
..ren:p 5tiinúr.l. sttret.nblk elbh<..'1ő\·é l<:nni. mig II mappa t2ruJmlnak dér6ét
nunden bqdenIkczeu fellJllSZlÚl6rok engedel~-ezzük_ A kM\nt JOSOk bIl:tOSitlslhoz
" kÖ\·etkezóket kell tenniInk:

• Tegyük lehelO\lé az Admir, n\llpp:.! déri.~ az AWmm5tJator!OttrC'p 5Z;imjra_


• nlSUk meg" hou1feres.. az Adai n mlIpp:iho7. 017. összes felh~lOn:.Ik.
• TdlSUk meg" howf~ a Uft"ra m:lpp;:Ihoz a névtelen fellt:i.SWl6knak.

\-egyOk észre,llOS)' al "''-in Il"UppII e1~ el&zör lehet6vé \etlük al ,\dminÍlilJaIOf


szerep gjmjr:a, majd megtiltottuk at ÖSSI!es fclhaszn:iJ6ru.k. Ez kiSI.é ZlL"Jru;n~k tl1nik
Nem elég <'gyRenlen meg.;tdni lL ho22.1f6tst az AdministratOf ~k? Nos, a1;Oknak
lL felhasznáJókJuk a gjltÚ.r:a . .ooknck oem tdt juk nq kifejezcUen eg)' erdOfTis eIéibét,
az déJl0et6 marad. AwLIIdW, hogy megengcckilk az Admirúsu:ItOl' ~ az MILlin
mappa eléd.séI. nWoIot is ~nk. h~ semmi ~ tihp meg aa*:nak ~ fo.-
1~l6knak a hozzáfér&!.. akikhez a Noo-AdmIOL5tJator szetepct rendc:lluk. oe akkor
rmén. nem e1~ megtilt:lnunk a Non-Admini.5ltator 5Zerq>lleZ t:lnoának a hozzáftrest?
Az igazsIig az, hogy vannak olyan fellLaSzn~16k, iUllclyck nem t:lno7.luk 5CITl
az Admini.slr:llOf, sem II Non-Adminl5tn.IOf lIl'.ercphez -lehetnek oly..noIt, akIkhez
cgy:1It:lUn scmnuJyen szerepet nem ~Jtilnk I~ kellett ldl rTlU1denk1 uusnak
megtilt2ni a rTIlIpjlI dl.U1_

A Iogibo ~ tIiIi*1 Mva taWlwtnrok egy apr6esb ZaYÓ I~I • lenti bd&-
tisok közön. Az Admn511atOf szerep IIIIIesznM6i ugyanis btler.tolnlt III .Osszes
~. haIrrIadbB. Hi! teMt III egyik lIlIbMYt.ri; tT';lId"'III.1hesmM6nak
~ '" hozzM6Ibt. mi4n teMCI kivételt IZ AdnWotSlralor llafeppel1
A m&gyiWWI tQVllIIlÚ: III ASP.NET '" szabályobt telülróllefelé hllladY" dolgom lel.
EI6UOr ell, kén"st liM fel: .A flltaszn616 III Administrator lzetep/lez '*"Iozik7
H", JIIIII, "'"'-ti • mappát: VIIQYlS hl • fe11aszM16 SZ8I'epct ~lIII$lfator, lIlOfnaI
1mdI6I. mappa lMIIImáhOL HI nem. III ASP.NET 1o-i6bbh1l1d," f"'eszi
,kMtkel6 klfdist..A ltIJ;mniiÓ beme VInil 0$$lB$1eIIeszMI6~?
HI JIIIII, nem értIetO II , mapp6t.'
20. ft • fil M6t k " IUl
Ha kJ\'~la51tOlt ffi3pp;1nkr~ vonatkoWan ,00000i szeretnénk a kodbbi WI~lpink.:u,
vagy módoIillani a sorrendjüket, kaUinbUnk a SeaJnty képemy6 ;\bnagt' access rules
(HozUf(~ $Zab1l)vk kc~) hiv:l.lkou.$.Ira. A meg,den6 ablak a kl\':lbsZlOll
Il'I2ppa howf~i subAl)":!" soroIp fd - ke<hilnkre törölhetjük a h5ta elemeli, illetve
:itrendezheljtik nobI.

MIg I fellaslnM6i fiÓkOII; 6$ • .-.ptIi; az ASPNET1JB ~ kerÜhIt..


• hoaMáési jogotI11 _b., ll.1j bMIitbIjjI tirOIja. Ez. f6jl1l . . . . olyan
mlPP6ban mIQJIIInit. Ihol meoadU*' hcn".6si jogobt. is bMINsIri.lI
az <... uthortut ion> alemben t6roljl.

lu e16z6ckben megtanultuk. m,ként :illitsuk be: úgy ASP,NET ...-ebhclyilnket. hogy


a~ legyen fdhaszNl6I fIÓkok Umogat~llI. Eud '"8)'Únal aut()ll'Uukusan
~hozzuk n ehhn SZQ~ ASP:-:ETDH a<btb1zi$l a megfelelő t:ib/.;iklal
( ... ~t_U.en, ... spnet..M~rship. upnet_Rol . . b «spnet_Ueer"lnRolu),
Megteremtt.11i1k a haneret az ASPSET bCJclenlkez6i1 vf'~6i 5dmMa, amelyekkel
maguk a fdhaszn;ílók ls 1~ll.'hozhatjik ~ ll6kjaikal b bejelcnlkczhetnck a ....cbhdyre,
Ilzl!'ltkd a \'czc!rl6kkcl foglalkozunk az óra Idl1ll!e\'ő r6il8.x-n.

A _ l y SMTP-beállltásai
AIllIflI a kl:56bbiekbcn litni fogjuk. az ASP ~ET cg)"Q ~ \'cztrl6i ~
adnak ddotroru\rus Ie\'dek kol<.lbére. Igy ptkbul a Cre:i11!'l:!;erlrIzaru \"ezérl6l bdllidul-
juk úgy, hogy ammt a fdl~ló léueho~.egy új fIÓkot. aulOlTl:ltikuSln lapjon
egy le""kt. amely talUlmaZZll a fdh.a!:zn!It'!né!'\'d, a ;C15z:l\';H é5 rruis adatait Ahhoz
3Zonoon. hogya levél \alóOOn rellXl ("*". eI&zör a webhelrei kcll úgy bdUitani, hogy
kq,e" 1c8)'CTI je,.·elek ku~, szerencsére a a rnm.-elc:t is el\~6:1Z ASP.l\TI
Web5lle Admmo.suation Tool ~Ölé\'d.

• Security tBi7.tomJ.g)
• AppJia.tion Configu~lion (AlkalmazhbcillkMolc)
• l'ro\'idef"Confogu~tion (SroIgiltalóbdlliWok)

kl. előzőekben Qak a Secunly Iehei&tggcl fOllblkoztunk, a levelek kaldésl':hl'z azonoon


tov:ibb kelll~nank, fs a:t ApplbUon tonfogurJUon porIlOI v::Ib.sztani. A llll'gjeIl'n6
ablakban k:lttinLsunk a Conngull.' 5.\ITP e-mail ~ (S~fT1>-1c:vtIbd11it1scC}
Im·;ukcmbr.l fs a 20,9, ;1br:\n bth:ató okblra JUfUnk.ltt megadlaljuk a Il'\~
1lC\"tl. kapu~1 fs szilbéfI ~ a hnele$it~ adatobt. lO\';ibbi azt a dn1l'l, amel)T61
a leveleket kuldmi ~7.l'Il!tnénk.
__ o

-.- --
__._--
.---"--'--
....
-
- _,---- ,
----~-
......--
._-_
--- ....
---'----" _... 2'0.'. MIllI
Effn az OIdNOn odhalM .....,
"tlWhdy tkltlronJJrus ku,I.'Zhf
bMJludwll

Iv. tllelttronlus I8v.ut SMTP ki~ keresztül jutt~ el. ebnzetthel.


Ennek mtQIlkII6en • Confq..e SMTP '-mM18ttngs tépemy6n meo kIIIldtmk
nwo:loo.8dBtot,.mi Rihéges 1HIol.1Jogy.1I!ldslef 1IIvegya. kapesole;.ot
IOV .... k"zoIgWwll. Arrwlnyibtn WfI~úUt agy szoIgr6ItIt{n bInUk. t6Ie
kíorhetjil II al SMTP tl$ZOlgM6 nMt, upupt lb lNIaSíthi tdItIrl HI mI9ri.
u.netttljii: • webhelyel, ...aIrr\ItIIIl\Ik ~ III SMTP·bdlftasoklt, mili.
amefveIo:tt allSllali ~amonk 1ImniI.
Ha megadtuk ~ le..... kk lo'.. ábbftásánl kl,döll SMTP kiszOlgáló ~dat:lit . k:mllllsunk a Sa.....
gombr.i. Bdlliusaink ~keril\n{'k a webhcly _b. conf iq fá~j;1nak <Mil S.U I noe>
ekmébe, b a kes&biekben boI.mukor m6d0sítlt:lljuk őket köz\'CUenm a f~~biIn .... gy
az ASP.!\"l!T Il'cl;oosne MmiIllSlrllOOll TooI5C8'~"\1:I,

Felhasználói fiókok létrehozása a webhely felületé"


A felha~l6i f1ókokJI 1(1rchozh~IIUk a~ ASP:-Jt'T Webs,le AdminíSlr:uloo Tool segéd·
eszközt..... t de IegtölJb5ZÖ1" ug)"nelI leh\.16n~ ~7.eretnénk lenni a felhuwl6k sclmiJll
is. Az ASI'.Nt" CrealeUser\l'lzard veztrl6je éppen erre acilIlI swlpJ- a Wel16lle
AdrniniWation Tool CfC"~le User ktpemy6i(:ha hasonló fdOletet rnztOliil a relha.sl'.N,
Jóknak a fl6l<ok IéUl:hod..s.I.n. (I1sd a 21H ibroh)
Mk If 14i!i
flozzunk Ittre ....ebhelyOnkOn egy új ASP.''"ET oldali. b adluk neki:a :reat"·
Ac,·o"nt. ""P>< nevet. Ild)'euük el az okLIl tt'lejo!"n" Creat .. an A< ·>unt (fIÓk
U:m:hou.sa) 5ZŐ\·egl-'t. é:. húnuk ~! :lZ oIdalr:l a Toolbo:< palelliir61 a C"'~teUsc.-r­
Wiza ru v"zl:rl6 egy p(!ld"ny~1 ( Eu mh bcIClentkerul "ez(:rlókkel egyetemben
~ Toolbo:< 1"'1<."1.1.3 Login rt.-sz<'l)<.'n találha tjuk mefl' l A 20. 10. ~Imln;l \"isu~1 Web
j>eveloper ktpemy6iét Uth~!Juk a vezerlő dhclyez':r.e uu.n

~-_

- ....
-
...

I"
-- _-
.......,..
--
----
-

-._ ...... - .....


"_-:,=i'::~Ji' 20.10. ....
A ~.n:I
foiJ"'u"4Jóm.
.oucrtion
""'8". ts
ICm:hozn../",,,jI4IttWo/

A CreateUserWiurd egy IwnlzskXnérl6; vagyis az eft'dmbly eltrésl:hez a fclha~;m.1I6-


nak [ObIl ~m.1st kÖ\'t't6 lépéo;t kell megtennie Ez e!ICIben " folyamai o..sze..en k':'1
1tJ*sIXIl:ill: az el!6 a Sign t:p for Your Ne.... Acrount (ÚI fl6k bqeg)"ZÓeI. a m,l.su"hk
pedIg" CompIete (Kbz) flt'\'e\ ",,,eh. Al ell!bbiben adlulruk meg:lZ adatobt ""g)u
a fdhasznilóoC\,et." jeLuót. az elektronikus 1evtlcimct. az emltkeztető k~ &.
,"iI:l.."Zt _ tppUgy. mml arl\ikor az ASP''"ET Websile Admimstralion Tool eszkOttt
haszn;lltuk. A fIOk Sikeres Ittrehoui5:I udn a felt\:lSllt1ló a COmpIete lépbhez keru!.
a mely mindössze a Your acrount has been created (A fl6ki;l elkészült) lIa"fl('1e1 Irja kJ.
A két lépés kÖZÖlt a Cte:lleUlerWiz.ud vezMő okOll cimktil"'eI vilthMunk

SzJnjunk l"i eg)' kIS kIo5t. b PfÓbIIljuk ki új H'lhiOOket qn' bOngéSZ6ben_ ArlUkor el6-
.SZlIr az OIdalr.I trkt'zünk, a Stgn l'p for Yuur~· Acrounl lépé5t 13th:;u,..k_ Az. adotok
beir.lsa és a Creatf: user gomb megnyomha uUn a Comr'ete Itpbhez junlnk. amely
UjclI;OZUI a fIÓk dkbzOlttrOl A ~ amdJen. hogy Ittrehozu az új fl6kot. azon
n}'Otnban be IS Iqxeti a felhasuúlót_

/I Cornplete I~ üzenetc nléUell laJ.ilunk egy Continue ( FolytaLls) gombot is. Il, ll'I06I
mcgnyomjuk. semml...em tőrtl!nik lb aZ! szeretn('r1k. hogy ennek a gombnak a r'I'It'g-
n)'Ollkls;ival a fell~1ó az :l.ltalunk megh:l.I:1toZ01t 0101311'3 jusson. csak ~djuk meg
a kív:lnt URIA a _'t'zér16 c-,,"tJ,,,..OUÜ""t i".,PAO" IUbjdons:i~ban. fgyllttnl kl!!
"d>tJ,elyOnkOn.legmlclbb a Default .a"PX okblra 5leretrIénk ,·~témi. «61 adjuk
mes e1.l: ~ fent emliteu IUb,donsig e-nt'kd...:.'f1l.
A Creat,Us,rWllJIfd vezérl6 testreszebása
1\ Cre-JleUserW,z:lI'd ,,,zérl6 megjelenésl:ru>k tesucsOGaWs,1rn tulajdon.s:igok egész
"",codli>:ill rendelkeU5űnkre Hogy némiképp rendel v!gjunk közll1k. MTQITl
a;oponba 05ztjuk őke!,

• II vezérll'S wneil, betűtípusait 6; szeg{'lytlt meghal.'irozó lulajdoru<ágok.


• II felület demeinek ~zöveg~ me8hal~roz6 tulajdonságok. Ide IanQ1.nak
II szövcgmez& cl6ct ~I16 címkék. II szö,...,srnez6k abpénelmeZeIl tartalma.
a gombok felirJl2i és m:1s hasonlók.
• Tulajdonságok, amelyek meghat!iro:uJ:k, milyen ~dalolcu gy(Ijtsünk be
II Creat" User Acrount WiurddaL

Uswk nJn<j/ e7.eknck a ClIOpOnokn~k az érdekesebb luJajdons::igait!

A szfnek. betlltfpusok ás szegélyek be6IIftása

K6n)"iinkben stimtalall olyan llllajdonsággal találkozhauunk , amelyek II veretl6k


s.zinemek, betútipu'iainak ts 5zegélrelnck fll<::gjel""bére halnak. II vezM6k t~
géhez hasonl6.an ezek a mlajdons.1gok jelen .'annak a CreateUserWiz:ml esetében is
(ilyenek II BackColor. a Fore<:olor, a Font és mjs j6I ismert tula)don$.1gokl,
Emellett a Propeni"" ablak Style~ ré5zében is mmos tuJajrJonsjgot tal~lh:Hunk.
amelyek II ''ezértő egyes részeinek mcg;elen6;ére hatnak.

Hal*ld:!.ul s~egmez6ink cimkl!it - User Name. Password, Confirm Password,


E-maii Mb.-vörös. félkövér bet11kkel szeretnénk megjeleníteni,a W.belStyle
rula~g ForeColor k Font rfsztulajdon5oigainak megfelelő bclllitásival emelÜnk
célt. Ha pedig a lépesek <:Ímrelil1l1atl _ Sign Up for Your New Accoum és Continue-
:<zerclnl!nk mis alakban Utn;, a TitleTextStyle tulatcJons!íghoz fordulhatunk.

Jómagam áltillábiln nem bajl6dom azzal, hogy lIQYenként bllálftsam 8Z8n


tulajdon1ágok mind&gyikét illkább .elót:éSlÍlem a teleper" a CiasteUstllWiz8l'd
vazérloS 0'::0$ cfmkéjéból eléfhetó Auto FOrmaI Iehet6séggel, majd Iioomítok
az eredményen.

A cfmkék. szövegmez6k és gombok feliratftl. meghatérozása


A CreateUserWizard alapénelmezett felinotok:n - U~.,. Name, Password. Confirm
Pass'....ord, E-m:l.il SIb. - rendel a smvegmezők cimkéihez. Emellett alapéndmezen
hibaüzenetekkel ;s rendelkezik, amelyek akkor jelennek meg, ha a felhaszn~ló
ér\'én}1elen elektronikus levHcímet ad meg, \' J gy .,Ith·eszti II jelsz6t a Confirm
20. ón • FIIIM:m6I6Ir. h, Ih I 1497

Pa~on:l (jeI5~Ó megerősítése) m<.>z.6l)en. Ezek az ala~n<.>Jmezések, 561 a Creato: User


és a Contmue gombok feliratai ts mód05'Ihatók 3 ve7h16 t\llajdon~gaival. H~ kedv\lnk
Ultja, m{"g ~ srovegmez6k kezdeti taltalnclt is meghatározhatjuk.

Security Arulwer: .)
An.wer Az eml~kezt~'16 k6dbre adoa dJasz szön:gmez6.-
fklek keWeli tarulmlt adp meg. (Alapértdmezell

i meg,
ha a felhasználó nem meg a reihasználÓIlevet.
(AlapéneJmezeu ~It~ke User NaIM ia requ1red.)
Pas""",rdRequiredErrorMeaaa",e Ava hib;iüttn<:let !<iru/j:!. ami akkot jelenik meg,
ha a felhasználó nem adja meg a jelszÓ!.

"<8;~~~~~; ~~,---
levéldmél. (Alapértelme7.ell &t~k.. E-IMil is
...
required.)
498 l rv. réR • ~, 1eIleIzMI6k kIZ 'III N IR oIcWIk.noonke

A rem bt.-mUl::nou Use.-N,."",Requi.-edK.-.-orHaaS<lge. PanwordRequlredErro.-.


Menag .. és ElMilRequiredErrorMe&sa\j1l mellett tov~bbl tulajdonságokat is
1lI1:1lhatunk a Prop"nie~ ablak Valirution rés2ében. amelyek a hibaürenelekát
felel&ek. A kövelkez6kben oly:m tul.a~gokkal ismerkedünk meg, amelyekkel
eltekinthetOnk egyes kf~sek feltevfsf\őL lb a felh::lSZn~16! nem k6iOk elektronikus
le,'~lcímének meg:'l<liúra. az EIM i lRequi.-edKrrorMesu,ge IUl.$Wlalll felesleges,

A kötelez6 adatok kiválasztása


A CreateUserWiz:r.td alapénelmezés szerint egy relha5Vl~l6ne\'el, jelsz6t, elektronikus
Ie\·fkimel. valamint egy emlékeztető kérdést és egy erre adOIl választ v:'ir a felll:lsz,
nW,t6l. MindaZon~Jt.11 a je!Qó és az elektronikus Je\.·élcím l.oeolvasásár61 magunk is
dönthetünk a Propenies ablak BehaviQr rés2énck AutoGenentePaasword és
Requinorz.illogikai rulajdon.'l:lgaivaL

lia a RequiI"eErnail értéke True (ez aZ alapértelmezés). a felhaszrol6nak a bejelent·


keze-soél meg kell adnia az elek!rOrlikus levélcimét. Amennyiben erre nincs szük.
ségilnk, állíl.5Uk a tulajdol\5;Íg értéké!. Fah .... l'3. fcrdemes azonlYdn megmal'3dni a TI"ue
bcillítisnál. mert ez kapcsolati lehet&éget biztosit a felhaszlÚl6vaL HInellen egyes
webes vezérl6k - köztllk a CreateUserWizard -lehL'16:$tgel. adr1llk arr:l, hogr eleln·
ronikus leveleket kOJdfiink a fdhaszrúl6inkn~k, ahhoz pedig. hogy ezt alellt'l6:$(:gel
kiha5Vl:íljuk, mindenképpen szükségUnk len erre a levélcimre,

Ha aZ AutoGeneratePasawo.-d énéke True, a felha$mál6n3k nem kell megadniól á


megerősítenie a jelszavit - a rendszer autom.;nikusan elMUít helyelte \'alamilyen vélet-
lenszenl' k~raktersorozatot. A jeJnő megadására akkor van lehetőség, ha a tulajdonság
"'rtéke 'l'nIe (ez az aJapénelmczetl énék).

A "életlL-n jeJSZÓ\rdllGtpcsolatban felmen11 a kérdés, hQgY miként juttassuk ej azt a fel·


használ6hoz. Képzeljilk (::Sak el, hogy az AutoGener... tePassword tulajdonsigot TI"ue
fnékre ~lIítonuk, ezzel el(jvoli\Va a P..... wor('l és a confil'lll password SlÖVegmez6ket
a felaletr6!. A felhasznil6 beírja az arutal1, a eTelte User gornlm kauJJlt. a rend'izer
pedig elójllitia a véletlen jelSZÓ!, majd automatikusan beléptccí a relll:lszn~!6t. A gond
rrunclÖuze annri, hogy a felhasmiJ6 továbbra sem látta, val~b;;ilO mi IS a sai~t jelszava!
Mit IC8)'=, ha legközelebb is be szeretne jelentkezni a webhelyilnkre?

A helyzetei. ~1taL1ban úgy oldjik meg, hogy elektronikus levélben elkiildik a véletlen
jelsZÓ(, a megv~h07.tatislihoz szilkséges útmutatisokkal eg)'etemben. Erre szolg:tl
a Cre:ueUserWizard vezérl" MaillJéfini tion rulajdons;'ig-J, amellrel a fiók elkészilltét
követően levelet kOldhelilnk a relhasznjlónak.
Elektronikus levél kOldése • fiók elkészíiltét követ6en
A Cl't."lIlcUserWizard veO!t'rl6 haszrdla!:in:iIIc:hcI6so!günk van am.. hogy II fiók IttrellO--
z1s.1\ követően elektronikus leo.'clel küldjünk II relhaszNl6ruk. all"lelyben közölhClltik
veok. ~ felhaszNlónevét,je:lsuvil és a rJÓkk.:;l[ k:opcsolau:lOS nW; uImUl:núob\ és
:i<btOlW. i\lindehhe:t p<:.ue Wlksfg '"n am.. hogy ....d>htlyiinluőlludfUnIc If:\'cld:a
kOklen.i - t-n6I rrdr.'lUx qlcuOnk II u-eblwly S.1f7P·~illilásai dmsz6n11

Ahhoz., hOSY c:lkOldj(lk a le\'elOnket, eI6bb ~toInunk kell II 1:I.ft:dndl a webhdyC'n


egy f1jlban . ami lehet C:8)'$~ szövegfáp ""gy IrrMl kód - :1.1161 filggó<en. hogy
ellY~7.e1'il vasy HTML form~lumú üzenetet uerctnmk küldeni. 1\ f;tjlban elhelyc1.hetjOk
a dUle(Nanoeb és a cIPa..wo~db kódokat. amelyek hely&e 3 rend~zeT a fdhasz-
IdI6nevCl és a;etsZÓt TIP m:ljd.

Gondoljuk <sik d. mit Íl'l"Unk egy 01)= felhaslnilóNk. aIUl eg)~ cpk II 1lC.'\'tn
~ uólil:I.m, és meghívni II webheiyünkre. Ilyen qn:v.enl5ZÖ\qeJ üzenetre
mola! P&Ü1 II 20.1 ptkb. Ib komol)'ltbb Ozenetel szemn&lk küldeni, ~k egy fel-
~ list1han megach." II felhasznj~-.:t b a jdszót, J-ITMl fljk készhllffilnk
II 20.2 p&Hban s:terepI6 t:lJulomnuJ.

~ SlOvegll$ vagy HTML f6ih srefatOOli et.ety.mi I WtbMIVen, kaltJnlslJ:lk


az egér jobb gombj6vall projekt ...... solution Explorer abIIkb.i. ft ~~
III Add New !tem tOj -.m
hnuMdMa) mn1pontoL A megjeIen6 ~
megacll&1/Uk. hogy i&wgies CTeXt) .... HTMl. lijk'óI 'l1l'I szó.

l, You hav.. jUBt craated a n~ account on NySlte.com. Thankal


4, You can 1091n at any ti_ by vldt!n; "ttP,III1ySHa.COIII/Lovin ... px

""

_ '''ttp, ( '''''''''. vj . org ITII/xhl.II/tITO!,",,!.l ) - t ..... 1 t 10n.JOl . dt d·:>-


~, <"t.1 _ln •• • .. up'IIONW.v3.or;ll'IU,xht.l· ~
l, <h.,ad>
4, <title>welco-e to My Webaitei<ltltle>
5, <atyl. tYI>8.·t."t/cu·~
6, bodv t tont·t_ily, Verd."", tont Iha, .-dl ... , I
7, <'aty l.,>
I, .. I_~

" -<body~
ll" <hh
II, <.pom atyleo·""lor, t9'fle: , '>wd_ to Ily webalt.,I<'_pom>
I
500 IV. rMZ • Naooigá;i6, ilii...,. lW 'f .. Il OIdIYk ,",.".f
12: </h.b
13: ~p~

l', Accor~ing to our records yau nave creoted a n~ account on o~r


_ ....bIIlte. Your loqln
IS: infonllnion is:
16: </p~
}1: <ub
lll: dbU.e~, du."rN..-h</lb
U: <lhh88word: dPaasl:rOrdb<llb
20: <{uh
21: <P .tyl.. ="uxt-align, c.. nter",.
22: If you !UO"" any quMtions. ple .."" -...11 _ at <Iopan,.
.3: <8 hrefM·~;lto:MY'email.coa·><..,.~i~ll.conK/..,.</a>
24, <Ip>
2S: <{body>
:.l6: <IM",!>

Ha a levéllanalnl:\t LiroJ1Uk, elkOl~hez a CreiteU.:;erWizard ~ezérl6ben rrundössze


a MailIll>f ini tian néldny résnul.ajdons:!~l keU be:illitanunk. A focl1osabb:dcll közillilk
az alábbiakban mUlaljuk be:

• BOdyf! le"_ - I\nn;lk a fájlnak a nt.··..e, amely az elküldendő i1renel lŐrviét


tln.almal.Vl
• from - A feladó dme. Ernlékezzilnk vissza, hogy webhcl)'Űnk levelezési bcllli-
tása' köZÖl! szerepel! egy alapbtelmezt1t fel.aU6. Amennyiben ezt szeretnénk
haszrúlni, t'8yszenlen hagyjuk i1resen ennek a részlUlajdons;jgn~k az énékét.
• r eB<;:dyHtml - logikai tulajdons!íg, :unely meg.:l.<.lja, hogy i1zcnetünk tőrzsc
egyszen1 vagy ~ITML form~lUmú szöveg. Aiapéndmezeu btéke False, ami
egyszenl szövegei jelent.
• Subject - Az elektronikus leo.·él !:Írgy.I.

"" . . . . . __ l_ _ ...

- ,. ....- ... ".,


.. ~..!.IX.-.-A'
-----

.. -
" •
--~
Welcome to My Website!

• LW,., ... A1frwd


• p_ '"~. "".. O.... d

20.11 . in
If ,.,., ~ " c..-t-. pIMM.".1 "* III n),e" és ehhez htlso,,16
l1l\I,""",,1 cqm
azenl'll'M 1dI1dhl:t""fl
az olj ~ blrroItosdf"ak
20. ID • NIl ... k If 1501

tb C~et a IUhtdonsalloklll bdUít<XlUk. f~nk a flÓkflik ~r('hous1t kŐ'o~6m


~z.onrullopn.ak eg}' ddnroniku5 !C'H:let, A 20,11 áhr:ln azt az OzeneteIláth:l!juk,
amelynek kód;>t ~ 20,2, t*ldlban meghatiroWIl In'Ml (áll adp..

InaIctfv felhasználói fiókok _


A legtöbb webhelyen egy uJ flÓl< Il.... ~ooz c~ megadru egy fcll=znllnfK:,.~,
egy ~15zól, \'lIlamll1l egy clcklmllilrus Ie\..:kimet - \':lnruok azonban o/y:m ",cbhclrcll:
is. amrlyck l."rlr>B kissé töblleI \'lmak cl, 6; az Í1jonruon ~! roólc kezclelbcn
inakt;". A~ irukri" fcU\a.'lmJlók nem lC'pheUJek be ~ webhelyre egész= add'g, aml8
~k!lm nem \1.lnak, (Emlékez7.i1nk c:5:Ik \'i5.SJ'.a: U AS" ,NET Wellsile Adrnin,str.ltJ()11
Tool U:ocrs képemy6jtn megadhaltuk, hogy cgye~ fclh~~uúI6;nk ~1J~poca ~krív V'~gy
In~krlv legyen,)

Az U)OfUl:ln I&rd>oz.ou frill:l$ZJ\J.lói fiókok ah~JL:opccban aki",ak. de a Createl,;..ef\t·;zarU


.'CZérl6 DiS<lbleCrNtedu,.. r IUb,ooosog:Ó\'" mcg\'~bOlWthar,... ~ a l>elyzetel,
A ruhJdons;ig abpMclmezeu &I&e PalBe, ami az! je\enl!. hogy a fdhasznllók
ke~ nem inaklr.'ak I b "i.m)nl Tru....ra ::iUiljuk, a frlllaSZlill6k a fIÓk ~leh()l:h:;j'
kÖ\'et6en inakrh':lk lesznek, él: Igy 11 ~ nt'fTl Í$ IépICI! be &1'1. auwm:urkusan,

Ka ()gy döntlJ1k, hogy (tjOlVllll1 bejegyzen fetlwn6l6l!. ka!detben inal<.tfvak


legylllllk, • fi6lr.l6trehoz6sa uún • webhety- l60kIIII hllyen ifdemes egy OIY~
OIdIh ~ lIbt. wne/y ~ldebetvzwtr6l,1tt .dMl," llhet
leItOOtetni 1lObt. kMI*t",(ekel emeIyel:.et t~ blll~
liiIOl, hogy .tIWt riIjOn,
MIocIeIl • II IMI . .trrius leYIIIat ki*Iiri. • ~ I ~ "IN-
ht:IZidl köYett5en II6sd II EIek1trJtIiktI$ kMI kú/dé$e. fiók ellciwűltitf klMIIiSM
dmú mman), mindtnl:.6ppen 6rtesltsiik 6ht.-ról, hogy a Ii6kjuk tGlelMg rtaktN.

Bejelentkezés a webhelyre a login vezérl6vel


Hl egy ,,-.ebhely \ehetOI't testi '" feitu.w1::i1ói ftókok h:osm:ihr::il, ''1IJanulym nlÓdOt kell
adnl3;1. bcjrJcntkC1bre Ili Ezt kgIÖbbSZÖr egy bqelmrkezbr okbJJaI \'1Il65iqlk meg.
;l.mely ól felha,o;;udl6 Uon(l6ltÓ :willlall ktri, v:lgylli t'5CriInkbt'n:a fclh:tszn.iI6nC\~ b
a jc\5ZÓl. Al. ASPS1:T-ben, IIJla 11 [" .gin vez{;r1r5rrl, a beJclerukez{;s; oIdal .. k 1(1reho-
~ ... nem okoz ~Mzst,get. Ibsznál .. '!inak megimlt'réotre k&-.dIWnk egy új ASP.NET
old:lh, adjuk nek! 3 Login .aapx nevet, és helyenlInk el r:l~~ egy Login vcz8'\6r
(1~S<1a 20,12, ~Irlr),

Amlnr a 20 12, ~br:ln L1~'ruk, '" Login '~er16 k<:t ~Ö\'rgmeUlt I3rtalm:ll., amel)'ekben
megadlutjuk ~ fclhasznil6ne>"et ts a ~15zól. Emdleu bthatunk még egy ~)('f Me
fl;t'1I:l Time (Emlékezzcn az :l<buirllJll> feImul! ~~~et is. Amennyiben IKjder\l-
502 I IV. mr . NIvig6cI6, fIIIIIl.nti h l 'hl ib az OIdIIIk ....... f

kez6kor a fdhasz.n~16 elJ nem kapcsolja be, csak a böngésző ~d()1t munkamenetl:bcn
m:lr.l.d be)elenLkezo,'e 3 webhel}'re. lia :uooban bekapa;olja. a rendszer bent CIMia
a .... ebhclrcn, h;~1» indítja (íj ... a böngésZŐI vag)' a sz;\núlógépel.

--
-
--- ---
.-.-

,>
,-
-
2O.\2. 6bra
II ÚJfII" ,~" bt>Jd<'n1be:d:<1 OIdilJilJ.I ""'8.<:mb>l1 ~ adjll

Az iotBllMItes banki sroIgiWtatások alénísénél, iRatw 8 biztonsá9i klÍfdéSak1e jobban


odafigye16 weboldalaknál nem szerepel a Remember Me Next Time jelöl6négyzet,
hiszen a.z!alietóséget ma arra, hogy III adon számk6gép felhasmálói betekinIlIst
ll'(erhessooo« egymás fi6kj8iba. A jelölön6gyz8l megjeluoésér61 8 login vezéfló
Cl."bhRQ- 1 rHe tula~ déinthetÜnk.
..

Ha a felhasználó érvén~'elen bejelentkezési adalokat ad meg. a131*rtelmt'zés szerint


a Yau..- login attflflll't wa8 not Bucc"" .. ful. PI e"" .. try agaln. (Bejelentkezési
kístrlele sikertelen voh. Kérjük , pr6lXilja meg úlr~.) üzenetei k,pp . Ha sikerrel jár.
a böngész6 a logm vezérl6 ~lIt inuionPageU(1 lulajdonságálY,m meghatározou
webeimr .. viszI. (lia iu nem adtunk mcs ~mnülycn értéket. a o.,faul~. upx
oldalr~ keruL ) I'róh!llju k ki maguIlk ls ezt a wcookblt a böngésl6nkben. Töltsük be
a Login. aBp" o ldah. és nézzük meg. ml törtémk. ha érvért}1t'1,," fdhaszná16neve\
él; jelszŐ! adunk meg. '>'agy ha elh~gyjuk '>'alamelriket. Persze ~zt is érdem~ megfi-
gyelm1nk. mi történik. ha a hely"" felhasmá16ne"et és jelszÓ! írjuk be.

Ha e leIlasználó olyan weblapra próbál eljutni. amelynek az elérésére nem jogosult,


1IUI000000tikusaJ a bejelentkelási OIdaInt kerül. Emlékllniink viSSZII a korábban létr...
homtt U$III'$ rmtPP**ra. ame!Y!l&I:; az elérését megtiltottuk 8 oMeIen lalhaszná·
!6knak. lie!yezzük el a oe fault. aal»l oldalt ebban e mapp<\ban. jelentkezzünk ki.
majd pl'ÓbáljIJnk elátOQllIni arra az oldalra. lJthatjuk. hogy vissaterü/ünk abeje·
ie!ltkeresi oldalra - h<I Vtsmnt in sikeresen bejelentblilnk.
8 U.enl DefaUlt. upx oldalra jutunk.
2O.6nI • Fal_fi kw Ilu 1503

A login v82érl6 testreszabása


Az ...16z6 órákban megi"", ... n ve1.érl6khö;z; haKlnl6an a Login is wmO/; olyan lul~l­
donsággal rendeiketik. amelyek befolyásolj~k a megid •.nését. Emelleu, minI
a CrealeU5CTWl"laTd esetl!ben, eSi'es tu\aidon.s~gokka\ - Loqin8utton're"to, l'n,,-
wo ... dL .. bel Text. UllerN .. ~, u .... rNaoteRequiredE ...... o ... Meoll .. \je _ megh~l:irozhaliuk
a címkéket, a s7-övegme;z;ók kezdeti tamlm;!t. valamint II hibailzeneteket. Ahelyett
alOnban. hogy újl1l ~tism(:ldnénk 6ket, foglalkouunk ink:ibb II login '"elérJ6
eSi'edi lulajdonságaival.

Az igaz:in izgalm:l5 tulajdonságokat ez esetben a Propenies ablak ünk (Hivatkoús) 6;


Bchavior (Vlselke&) részeiben t;t\11halJuk meg. A 20.2. tíblh.atb:m ezekr61 kapha -
tunk rövid leirn..t.

l iliT"
DeBt1nationPa~eU ... l Azt a webeimet h:lt~rozza 111(.'g, amelyre .. felltaSZn~16
" beje\enlkez~ követően kerul. Alap<'nelmezés
.. ctl .. Def ..ult. I.
,
dönlhet!lnk. Alap6l.eI-

II . t
jelöl6n('gyzet kezdeti bekapcsolásáTÓl clönthet!lnk.
1 t ;,néke Fahe.

megjeleníl5Ok-e II login '·ez.érl6t,"I", egy I i

Orientation
..
fell\a.';ZIÚl61álOgat az oldalr:l.. Alapértelmezett értéke
~

Alapértelmezése Venk"l (fUgg6leges) eZ esetbt"n


" felha$l.n116név szövegmcz6;e a jelszó mez6je
fölé ke1il1. Ha ~zt sz.eretn6Jk, hogy II swvegme«>k"
~s meUett hel)'ezkedjeock el, ,"liI3..'lSZuk
a Rotizont .. l (vi:tszintes) én;'ket.
Tex tLayout A címkék szövegmc~z viszonyílOlt hely~elá
adja meg. LehetSéga értékei: TextOnt.eft
(szö,.'eg b"lm) és TextOnTop (szöveg feni).
ereIIt e u 8 e t'l'ex t A C"'UteU6"rUrl be1I1íús.1",al, valamin!
createUnerleonU ... l "Cr... t.userTe xt és a CreateUBe ... lconU ... l l"g;1lább
CreateUBerUrl egyikének megadisiivala fe1hasznlilÓl. 3 fiókjához
unom wcboJdal11l Vihetjük.
I
504 IV, ráz· Nmg6ei6, feIIaaZn6I6k h l 1111 " IZ OIdIIIk "'.·lal l

HelpP4geText Amennyiben kt"szitemlnk tájékoztató u~1l


Helppa",,,Ieonurl 3 Ix;eJemkez("5i rolramatról ("5 a kövclelményckr6l,
HelpP!I(leurl ezekkel a lulajdonságokkaJ hiv:;ukozlulunk rá.
PuswordJleooveryText Ezekkel 3 lula;don.odgokbl hivatkoclst adharunk
PasswordRecoverylconUrl ama a weboldalra, ahol 3 relhasználó vissza~llíth;Jtj:l
pailswordJU>tcoveryuserUr! al' elfelCjtetl jelszav1i1 (A PasswordRecovery v<,z~-
IlIn"l1 rejczelunk EI/dei/ell j<1s=rou14 ,~«wdl/l/ásll
dm1l' rbzében s:>:óJunk b6vebben.)

A Login vezérlŐI nem érdemes uoknak 3 fellms:z~lókn3k megjelcnítenOnk. akik már


bejelentkeztek 3 webhelyOnkre. lia el szeretnénk kenIln! ezt a felesleges és zavam
jelenséget. ~Uítsuk 3 \'crerl6 VisibleWhenLogll""'In tulafdon.oclg"l Palee értékre.
Megold1st adhat il LoginVicw vezérl6 ha~zn!ilau is, amelynél pontosan meghaúrozhat-
juk, milyen t"talrn.~t jelenítiink meg a be)e1entkezctl b az (:gyéb relhasm!ilök szánúra
Em5l a vezé1iőről még szót ejtünk a fejcz'1 Tartalom megfelel/r/és.! a II//dl:Si/i!s1 iíllapot
filgsvét.)"'bcll dm(J réireben.

Kijalentl<BZÓs
Fontos, hogy be tudjunk jelentkezni a wcboJdalra, dc;) kijelentkeresr61 scm Wlbad
elfeledkemünk. Erre jobb;iro eg)" l.ogolf (Kijclentkezk) szövegi] hivatko~s ad módot,
amelyre mindössze rá kell kattint;lnunk a kijelemkezé:;he1.. Mindezt a LoginStalU5 "erer-
16vel val6sítlutjuk meg, ~mely a beJelentkezett relhaSZJÚlók esetében a 1.ogofr ruvat-
kozist ad)<!, míg ha a rcll13SZ1t116 nillC'l bejelentkezve, a Login hivatkoz:lst jeleníti meg.

Helyezzilk el a LoginStalU5 vezérlI'! cg)' példinyál a Or!fault. up" oldalon. A veléM


okos cimk~ k<':l: megjelenési módot - Logged ln (8CjeJentkeZ\'e) és Lo~ Out
(Kijclent k,'Zve) tal~lhatunk. Ezek mut:ltják. mit l1tnak oldalunk l!ilog:nói bc--. ilIen·e
kijclemkezell áll:lpotukban A be- és kijelentkeZési hivatko~sok sw\'egét;t LoginText
és a LogoutText lUlajdonságokkallllltjrozhatjuk meg. Ha a szö"eges hh'alkozások
helyett kq-,eket w-eretnénk ha5zn:1lni, ~ LoginlmagelJrl és a L.ogooutI"'(lelJrl
tulajdons;l.gúkkal ezt ís megtehetjOk.

Ha már lehetM Ut$SzUk a felhasználói fiókok hasmiilatát a webhelyünkM,


érdemes IeIlet minden oldafon eIlI!lyemüok agy LQ9inSllIIus ve~61, hogy
felhasm6l6ink számára nyilYalllljon a ba· és kijelentkezés lehetősége, bálhof;s
iiijanBk. lia szeretjt1l: az értelmetlen er6feSlftHakal, elhelyemetjúk egyenként
BlIIkut a vezérliikat az oldalainkon, dl! ~kaI hatékonyabb a mesterolGalak
IlasmMata - a témakÖf tárgyalását megtaWh8ljuk a kóvetbz6 6ra anyagában.
2O. 6nI • FIIIaZn6I6k hz II .. 1505
Amikor" felhasmil6 3 kijl'lemkez~.s hivatkozisára kattint , alaJ:W!nclmc1.és szerint-
fóllelwt kijelentkezve - ugy.mawn:l weboldalon marad. Ha nt szeretnénk. hogy
máshov.! kerilliön, használjuk,. Lo9outA<::tion és a LoqoutPageurltul,.jdollS"igokat.
Előbb! meghadrozz:l, mil}"eTl művele!e! yége7.zen :I rendszer. miut~n a felhaszn~16
:I I.ogout hiv,.tkozásr:J kaUinIOlI Lchct.'<égcs é~kei II következők:

• Refresh _ A felhaszn:l.16 kijelentkelik. 6; ugyanawn aZ oldalon marad.


• Redireet. - A felhasználó ktjelenlkelik. és a Logout.PegeUrl lulajdons.igg:d
megadOIl wcboldalrJ jul.
• Redir .. etToLoginPage - A felhasználó kijl'lentkezik. és,. bejelentkezái oIdalrn jut.

lia egy nem h,telesítet! fclha~:m116 cll1!ogal <--gy weboldalFJ, fos a LoginSl3tU5 vezéM
Login hi'"Jtkoú,;árJ kanint , a bejelentkezési oldalra jut, amelynek,. rends~r ~ladt~
,. kimdul1si webold:ll dmél.. Mlul~n sikerrel meg:Idt,. a fclhaszn1lónev~ l:s jelszav:n,
amclleu.. hogy bejelentkezik, \"is>.-zajul arra a ,,,eboldaJr.. , ahonnan indult.

A bejelentkezési oldal URL-jének megadása


Ha 1tnézzOk ,. LoginSlatus vczi:ri6 mlajdons.1gait, fclnInhet. hogy mig LogoutPageUrl
!ulajdon:lág létezik. fcltétclc1.Cll párja. II Loqinpageud sehogy sem ,.kar el6kerillnL
h a7.! jelemi, hogy kövietJenOI nem tudjuk megadni, hov:! kerültön a felhaszruló, ha
a Login hiva!kozJ.sr.I kattint. A webhcly alapállapotban ~ Loqln. aapx olda l! haSUl~lp
a bejelentkezésI"\.'. dc h.:I. mindenképpen másIk oldalra \"3n 5zii~nk , II web. confiq
f~jl m6d0srt~s:I\",,1 re!! érhetunk. Ehhez keressük meg az <&uthentic<IItlon> elemet.
és helyezzOnk CI benne egy <tOnll8> nevú gyerlIlekdemet -ez utóbbi LOqinUrl
tulajdons:í.g:íval adhal)uk meg" webhely új bejelentkezés1 oldalk

Tcgyük fel most, hogy" l.oOgin.aapx helyet! ~ Si'JnOn.upx f~j!t szeretnénk haszn~Jni
a webhelyen. Nyissuk meg a web.conflq fájll. és kere5SÜk meg az <authentl<::atioll>
elemet. amely valahogy így fesl:

Most már csak el kell helrc:münk a belsc~n a <forma> eleme!. vagyi. ~ fenti sort a
kÖvetJ.;.ez6.,.el kell helyettcsítcnünk:
<"uthent ["at ion mode. -1'0=' ,.
dorm. loglnllrh-slgnOn.upx · '>
</authent1cat1on>

Nem fgazán S2Bretak f&lB-sleg.esEIfl turk6lni 8 _b. Con f Iq fjjlban. [gy bejelentke~si
oldalként mindig_ Login . aspx lájh hasmálom. Ha valamién mégiscuk
rászorulunk tgy másik fájlr.l, sose feledjük, hogy a web. conHq megkülönbÖlleti
I kis· tb n&Q'lbetGket ezét1lokozottan iigyBlj(ink a pootoss~a a <f00\8> elem és
a l.Og I nurl lulajtlonslig meoadásánál.
506 Iw.r6N: · NMg6ci6, ~t'i II •• ntzokllltk ............•

Tartalom megjelenftése
a hitelesftési állapot függvényében
GY'~kr:m el6fOfdul, hogy más L;;ut.. tmat jelerutenbJk meg, tu .. feltusmill6 bejdemkezeu,
mim egyébk&.!. A Login ve~61 pétd!iul csak .. kkor érdemes alblm:al.llUnk. lill
.. [eIhasudió nq nem jelerllkezeu be- amennyiben a hitelesítés mcgtöttém ... "ezerJó
megjclcnitbe helyeit inkább valamilyen ürenctet ím:ink ki, mondjuk a következ61.:
WelCOlll4l baek [elh"Bzn.f1ón~v, .. hol a C"lMBZnJJónév az adon fdltasmáló nl.·vét
jeJenú.

A kor:íbbiOlkb:m Iiltlmtuk, hogy a Login '<ezér161 a Vi.llibl..wh"nLoqged1n tulOljd<:><Wga


révén a felha5zná16 hitelcsité:sj ~lIapol~tól Iilggi"Se:n meg;elerutl>etlilk, illetV" eln:jlh<.'1Ii1k.
1Iz elrejtés( persze megoldlllltiuk a tula/dOns:'ig F.. la .... rn 1illíthával is. de elold nem
jelenitOnk meg a vezérk'i helyen semmiféle i1zenetet. Ehhez a loginV>cw vezbi6re lesz
szilkl;égiink.

Nyissuk meg a D<!f .. ult ."Sp>< oldal!., 6; hclyeuilk d r~jta a Logm\l1ew "ezéM
egy ~ld:iny::jL Amim u ok"", dm kaxn l:1thatjuk, a vezér16nek k(,t n(,zet.e is Van:
az AnOnymous Ternplate. amely II nb1.d"" felllllszni]ók sz.1ndrn l:1lh.1tó, vaLamim
a Loggcd ln Templatc. amely .. bejelentkezeu felhannill6knak jelenik "'eg. NinC$: m:ls
dolgunk teJút, mini" megfelelő mcgjelcnbi formákat unalommal Feltölteni.

Mwel aZl $ZereInénk, hogya Def .. ult ..... px oldalon a n('VIelen fell\a5WI6k a Login
vedrlót I~k, ~lt5Unk a~ Anon}'ll\OU$ Templ~te nérette. 6; húzzunk a Too/box
pak'Uár61 egy Login \"eztrl6t II Login\~tCW terül<.'1ére. MOI\l v:iJt5Unk a Logged ln Templ:ue
nézetre_ ht bármilyen Sl:ltikus I--ITML kódot elhelyezhctilnk, é:s az fog megjelenni II t:.e;e..
k.... tkezen feJhaszn~l6k sz:"im:1rn_ K.~nlnt~unk h!it a Logged [n Tempbte nézet bclsejébc,
é:s i!juk be a welc~ ba,k SZövegeI. Végezetül húzzunk ~I eg)' Loginl"3rrle ,-ezb'lót

_ _-_ ... __ ...


a ToolBox palett:ir61. és hc'lyeZZOk kör.-etlenilla szöveg végéhez (1100 a 2Q.13. ~br.lÚ.

,.. ...... ...


" .• -_W'"' •. ]!o .;!

2O.]J. ~
II LcgI"S:m,"s ve:rerl6 f.osged ln
rmlplale "hetében ~' WgI,~'""",
<uérlQl heI)d""k CI
Amml:l2;l dőre
.se,hettük,:o Ulgm."Ii:lm<' ';I Ix,eleOlkezeu fclhaszrúló Ile\~ te'leniti meg
- ha nto.tclen fdhasznJIó latogat az okblr'Ol. a \'<:'drl6 I<Irulffill ÜIQ m;lJ'1.d. A 20.] 4, .:ibm
a 00:' filul t .... px oldalt mutltp egy nb'l'len felltaSl.ná16 btogatis:ól sodn. mig
a 20.15. .:1brin ug)'al1Cll az oldalt egy bejclL'mkezett felh3Szn~J6 szemszögéből is
megtekmthecjilk.

"... O .'" ~ , ,-

",.

---
U... II_
,-
00
Iiel 20.14. ....
... nitv4m~" !<WIll
,om'rMoll'l lOt.tJA"rhdt.....

) " .. , . . . ._ M •• _ . ". . . ." , . " " , , '_ -)<

-

w_ _ _
20.15. ....
jfsoltU" ~~~.,.",.."
Q \I"l.'kOON' bac. r2.und fofIIdl"

A l oglllV"1IW YIZé!I6 lehet6séQ&t ad lIfTI is, hogy • tartBkn6t. • btjtlenlktzelt I~·


náló SZVI'&jMt6I fUg06en alakItsuk. Minderr61 b6vebben III ~ ASP.NET 2.0'1
M~ ROIeS. and PraIiIe timO cikUm m6sodik nlsztbIn oIYashatlri.,
I hUp" la.pnllt. 4911yRfrou-olla. .../artielea/l~l ,O~ ·l ... apx
clmoo.

EHelejtett jelszavak visszaállftása


Napjaink n.1mitOg(':pekt61 áthatott vtl1gátx.n egyre több ~ több jelszÓ!. kell megjegyez-
nünk. [gy egyre nagyobb az es(':ly 3ora. hogy egyikllkec·ndsikukat elfl'lL'jtjOk. Dén
a felhasm:1Jói fIÓkokat timog:1.t6 webhelyek töbl»tge kínjl valamilyen módot az elfe-
Iqtm jdszavak VI56U.>Uíl:l.s.;ir:o Az ASP '<IT-ben ezt a felad:not:o P:os.swordRecO\·ery
...'t'bes VeÚrI6 Utja el - ez voIl<Ikq:.pen egy ~'ar::l~. amely az al.:1bbi ~rom I~
"eU'!. "fgig,
1. Elkm II fdhasznJlóocvet.
2. Fehe:ui u cmltkclIC"(ő kbdkt, ~ vlrp a v;1law.
3. Ha megfelelő vjlaszt kapoll, a jelsw: eikOld. a felhaSVláló elckltQllikus
k"\"tkímt;re.

Piu. . "e~ urn tu thoo .1~" and log 1. ..1'09 \.. '" roll""ing l,.,to ....... Uon .
U_r _ , FelhasnulJó.Iét,
'a. a ' rd : }t!luó

Ez a ~'eg awnban mocs köbe \.~'e H~


5:I):\t Ounel\lnket fjjlban tárol, ... k. ugplflugy
dkOldhetjilk II levflben, ~hogy "ZI a Cre:neU.'lefWi:urd "'lIizsl6m'iII~!lJ;jIIUk A levelek
küldésér6llJ6\.'o:bho:n olva5lutlunk jelen felelet , I ut'bllI'ly S.\t7P-Ix'"ll/Ulást" b
u Elcldronilms /eu<lk!l/,/ése afiók l'IML...,lII~ ~~.., dma részeiben.

Mr..! • jllslól • fII1aSmáIÓ . .tronikus IIWIC~ k~ I r.Jb foiy.-l


C$iIk Ikior mehet yjgbe, hll fIIIISZnM6 ~ megadta ezt • m.t.
Itt _ _ II III .... 1WIcs meg II 1IIb~ • iIIIIISmM6 l1IfTI jUtIIIt tovibb
a 2. l6páen - .ur tlqI a I*yes V6IaSn a k.dnfe, IÜ" nem.

ti~ kiprobólJuk a Pa."l!wordRe<m-ery "ez.trJo:í. egy weboldaloo., ~21 t:l1~liuk, hogy a kapou
j.,}$7.6 egy úl, "tledensn.'f1l karakt~l, nem Po.:'Cijll:l7. eredeti jelszó, P.~k az aZ oka ,
hogy az ASP.N"" fcll~16i fo6lo:olcd kezelc'S ~ abp&tehnelb Sllennl
nem nugukat a jdsla\':Ik:1I ~j:I., h:rncm" bcI6I!Ik k~1l t'gl'inf"J,l ",rcmaIvIIol.

Anélkül. hogy belelxlon)"OIódrdnk a technik:li rezJelekbe. annrit t"kfllu tudnunk.


hogy az egyir.inyii ki\vrouulás egy m:llem:lI1lai elj;1r:b. amely olyan e-redmtn)1 ad,
amelyb611ehetetlen \'1MZ:Ijlhuni akiindulisi adaloka'- Erre:nbt \':In ~bég. men igy
az esetleses l~nud6, ~ ha hozz;\ is ftr az ad:ub:lzishoz. nem kq,a houljulni
az eredcc, jclSZilvakhoz. csak a bel6lnk el6;lllilOIl ~gy;r:i.nyú kJ\"onatok frt~k.,ihel,

A ktrdés rrdr csak n , h08y-~n hltelesílhelő ezek után a fclhasmál61lb al ;ad;Il~m


nem I2rt3lm:u:za rmgulat a jelsz;l\mt, csak a bel61ük el~lIilOlt eg)·u:l.nyll kivonatok
Mék':'. mtkmt gy6~hetOnk anól, hog)'" felhawti,16 ér\'én~'CS azonosft6 adatokat
adott meg? :>:06, a \";llau egyszerű: a ~ d~,lht", a felhawú16 ;jJul rneg;3dott
jel~ al egytr.inyU kll'OI1:It tn':;k~. ~ Öi5Zehasonliljll az adatb:bosban tlroln:d
I b egyezés!: bp, a fell\:l.Wl.1l6 bejelentke1)l(1,

A kivonatoló algoritmusok hátteréf61 b6v&bben az MSDN MlIgilllne


2003 .lIQfJ$ltUsi sz6mjnak SacOOty Bria!a roYatMlill1 olvashatunk.
IITlIIyl htt.p l I .... dn . ..i c r ' " f t . ' Ol, odrutItIg / i ••.,ell
D3/0E 'So ,,,r1t.y Bri ,ta, elmen WIlM61l
De terjünk \.~ ~ 1e\. ~lben IcIpott ;etsz6hoz. MJ\'cla jdszó kivonatoIt \'lltoUúból
k-hetetJen vissuál1iunl al. eredetit. a /':I.M"oordRenn·ery \'<,z616nek nem nur:ui m:is
lehelősl'g<'. mim l~rt'howi egy lij. \'életlms~nJ ,ieISl.ól Meg kell iegyeznüllk. hogy
az ASPNET kömyel.et bejll!!haló ligy l~, hogy II ;e1s1.a\",kal eredeti a13ktukhan úrolp
_ll)'enkor ~ P:tSIlwordRec'O\Iery~:e eredeti jelnŐ( kaldi viMza. Ennek a bdUíÚ51l:1k
a tl'Ky:d.i$O nqlubdj;,l könyvonk kCf"t'tei! - lu ~rdekel ~ témakör. udll:lntz-
hetünk " Il00' To. w4> ,111?I"ber.shtp in ASP~''Er 2,OcimiI doIrumentumlxm
a hup: l..&l.aicr.... tt.cao/libnry/ .... ·u dnpa.. l/bUll/PA(l"I't~OU .•• p
,,·ebokblon.

A roosm " ~ eI6m lrikban bIIfl'lItIllIU YfI~ hasonlóan


a l'as$WOfdRecovery i$ mmos lul8fdclnd;g11 rende~ lIII'IIIyek1el
lestr8szabllalr,tk • megjelenését.

Összefoglalás
A felha.szrdJ6i ro6kok hasxn.ibu az ASp .... ET bet-pildt ld1<'t6ts~ge1Vel " bqelerukezbi
~ltrlilh'el =nIe g)~k~ta. H~ ~ "ebheIy!InkOn ~I)'ezzük az llrlap alapú
hitelesítés!. az ASP "'ET ~cbslt(' Admmisll1lIJOll Tool ~ö~ autOrl1:lI;ku~n
1é1n'houa al ASP;'\'ETDH adat~llSl. amelyben tnegcd:IJh;ujuk a fclhannjlój fiókok k
surt'pek tárolhiho~ nüksq;es tlbl1kaL A1. ASI'NIlT Wcbliilc Admillislr~llon Tool
emclJeu ie!ent&en leegynenlsiti a felha5lJ1j16k, $~ és howfb&1 jognk
I!trehozásjl és kel(,~_

lb al adalbhiS elkésZült 5d:mas ,,-ebes \"C.M6 f,11 a rendelkezt'silnkre. amelyekkel


elMletjük a tiroIt ~datobt A CreaIcU!ierll'izarrJ 1dJct6o,"t ta.zi, 00g)' a fd~1óink
rl6kobt hozz:I.ll:Ik Iéttl;. mlg II l.ogm a br;elmtkczé$(lket segíti. A l.ogll1Scuus k<:pe5
megjClenftem ~ Losill. IÜeIve a l.OgUIf tuv:nkoz1!1t, aitól filgs6en, hogy ~ fdhasznjló
bejelenlkeu'fl-e;j \\'C'bhclyre. A Los\rICW :o;zinl~n ~ bqelenlkezés Mbpoúl ng)·.,li , lu
a:ronb:m !Icir összetettebb urtalmat jcleníthetünk mell a bejelenlkc1.ett. IIlL>!ve n(:vte!en
felhaszrullóknak \-'égeleI01. megiSmerkedtoJnk a PasswordRec'O\Iery vez&l6vel is.
:unell)"el a fcll~16k vl55l:l.:í.llithalják az elf~eu jclsz;l\.ka1. AJ. ASP,NET 2.0 ~
lené5OI: eI6a a fdl~16I nókok kC-Z.eIéSe komoly febtbtn:l.k mmitOll.. M.agunkll:lk
kdle!:tlétrmozni a mesf~ adubtzj"ibli.bc. & elkeszlteni a ,,-...boI<bb.lcn. amelyek
biztO§l;toruik a rlÓkok ~rel\OÚS1l. kezeib&. \",lamll1l a be- ls kijelentkezésl.
Al .-\.<;P:,\'ET 2.0 újdonslgat Igni illÓrésl hoztak ezen a téren - a felhanrdlói rlÓkok
limog:otha manaps:1g ellllmpgolhat61d6rMordlthsal mcgoIdh.3t6.
Kérdezz-felelek
K: A fd"(<5Z",1f61 fiókok t(lmOfJt'/(is(, '/(II!)Ut.", az ASP.NET-Ix!tl, de szc:rilllcm
túl sok eMfcltét<1ahsft 8. AjcI$zlll.'tll, MroIdsa ki,XmtolOluJtm t6rti'"Ik, Iega/úbb
het Alumlncr hossz"~ kll ~"" ..... larrQlmaznluk kdI ksaUíbb qt y I/em alfa-
'IIImenlttiSl«imJnm, és íg)' IIJtdbb \.111 m&J arra, hcg)' "'l'gniJIO%tIISS,,1I <!ZCr'
alapenel~ l'fiO;""'·mdsillát~
v: van. A:I. ASI' '''ET tapági ~ jdenI& mtTt&ben ~bh..16k
,. \H!!b. ,,,,r 10' f~~ It>'tn. MirxJern",l böI.'cbbcn :a Il00- To: use Mc",b/:rshlp
in ASPNET ;o>.OdmO" dokumentumban ohUJ:atunk,. http://_<'In .•kroaoft
. COlII/l i bu,..,.lltll" u. Idnpag2 tht.al/PAGI/TOC 1022 ...sp weboki:llon

Isméd6 kérdések
l. Mri !rt1lnk tUt~t~ abu? Hogy:.!n uj/lk u ílrbp abpú Itne~;Ik?
2. Muyrn Idrom:l(b1Ql kell megadnunk :a homféré:sl jogok mcghal;iro;Qs;in.i\?
3. Tegy(lk fel. JlOg)' wdJokblunkon,. ~eIen fdhasmilók 5Z!mira lehet&.-~
szeret~k tmnl a ~1 ..mkezé51, I':ll3mim új felhaszn:ilói fIÓk ~hoz::1s:iI,
míg,. tJejelrntkezen felhaszrdl6k n.1ndr~ egyucnkfl egy log<.tff hiv.nk<)~
kív1mmk fehilmf.-"ln; . Mllyen vez"'rl6kn:: "'~n sz.ükstg mindehhez?
t. Hogydn műkötbk .. LoginName "~rl<51
5. .il kIVONlbOI ~'l5Iiun)...met6k az ~i ,.d:l.lok," Igaz V2gy h.mus?

Válas.
1, A hitelesllb a fdhaszru\lók aZOIlO6ith.inak fo/y:lm:o.ta. Az ilrbp ~l:Ip(i h'lele-
sítt<~1 ~ fc:lhasm~lókn:lk egy wrbc:s ([rl~pon kell megadniuk :t~ nonosit6
adataik:u.
2. Homférbi jogo5ulwg meghatároz1sához mell keU adnunk a kén:lé!;es m:o.pp~l,
a fel~l6I. iIIe,vc nc:rc:pel, ''";IIammI m. hogy engc:dtlyc:~ "agy ultásr61
\":In szó,
J. Ibsznil",k a loglf)\"~"" ,·czrrl&. Az Anon)·moI.Is Tc:mpl:ltc: nhetbc:n hcl)'czzük
el a fclülc:t&t a Logtn és a Cre:uc:l'K'f\I'izard nzérl6kel. a Logged ln TemplltlC:
nh.etbc:n pedis a Login5l:llus vc:zérlól. Emlékezzünk vissz:l, hogy ez utóbbi
a r>é'vtelen feih:lSzNJók ~ a logIn. mIg bc:jelentkc:utt felh:... znil6knil
a Logoff hiv:ukozht jeleníli meg. M",eI a loginView vezMI! Logged ln Templale
!\ézete C$:l.k bejelentkezett felhasWIók sdmára ]jtható, a LogmS\;)tus vezérl6n
nundc:n ~bc:n a t.ogoff hi":l.lkoz1... IilhaLluk.
4. A LoginNamc: \'CZM6 a bc:jc:lc:ntkc:zetL feUI:ISlfÚIó felh:I5Z1ÚIónc:\·t!t muUtl'l meg.
Ha az aclou fel~1ó ninc:s bc:]elenIker.'e. a ,'ezM6 ilre$
5. ""IM
20. óra • NI Mu If 1511

Gyakorlatok
l. A 16. feiezt.'tben bcmUlatluk, mik(int ielcníthl"tjllk meg és kezelhetJilk egy tlbl .. -
e;etiinkben a 8<",ka - adau;t II Grid\'it!w vezl!r1&.'eI. Ha kedvenc kÖfl)"o'eonk
bemuta~11I kbzuúnk egy webhdyet, abpn.'l6 elv:i"'~sunk khet, hogy oa BOOka
~bb urutlm1l cs;;r;k ITII módosithóIssuk, mb felhaszn;ilók ~ig <.$Ik:lZ~·
mtn)"t leluru.l~k meg, Hozzunk lú.tll.'lre egy webhdl'el. amely t~mo8:nFl
a felhaszrúlói rJ6kok h:uWbt.áI, és hat.ározzuk meg az A.:Imumtl1ltor uer-epet
Ez utiin hozzunk ~re a "'ebhelyen egy A.cain "",~l, =id kd. "'ebokblt
a BOOkl isl . asp" nevI1t a g)'őkér1too)"o"t:\rb;ln. II :." fau l t .a"Plt f:ijll ~!g
:u. Ad:tD.ln kön)'\'tJrban, JelenítsOk meg a Bookllst .IISp" oldalon a Book. Ubi"
urt<llmlt egy C'I;lk olv:lshat6 GridView vezM15Vt.'I, az 1Ic!aoin I De f Au l t • aeplt
oldalon ~ig egy ncrkesnhet15 GridView \·e~érI&.·el. Végezetu] ~nil5uk be
n M.in INppa jogo6ul!$:igail úgy. hogy c;s:.k:u. Administrdlor szerephez
I2ItQZÓ fell\a$ZldJ6k f~ hozzá
2. ~d:ink ug)"an.tz, mim:lZ l, g)"llkorbtban, de l1lOII csak eg)' "'ebokblbl
dolgozunk eza IIooUist .aap>< a g)VkérkooY"llrban, HelyeuOnk el 111112
egy Login\';ew \~zt:-rl6t. ""'id ennek AnOnrmous Tempbte és1.ogged ln
Templ:l1e n~Zet&en eg)'-egy GridV·.ew vezbtl5t E~il ::ílhl.SUk be úgy, hogy
c;s:.k oh-ash:1I6Iegyen, mig ul6bbil tegyílk nerkeszthet15vé, Igy ~ bejelenlkezen
felh.asznllók m6dosithat~k a Booka dhb l;Inalnúl, a névtelen fclh:U1.lljlók
pedig be kell ~k a könyvek rucgtckmté5tvel.
3. \cgp.ik a l. gjo':lkorbl p&lájll, de n105IlelunlSOnk el ~ I..ogin\'iew Il:lWÚbUI6I-
helyezzünk d az okblon qo"ellen Grid\'ir:W \.~ és ebben tegyilk ld-:r.·"
a ~é5t. A kÖ\'C.'tke7J."l" ~ a fiefd<; r.Qrbeszábbbk1»n abkit$uk ;Il
a God\"...".. Edit. l'pdale és Caocel ~t sabIonrntz&.-t. aben helyezkedik
rl13jd el egy Itt:mTempble eg)' EdIt felirlltú linkBuuon·naI. vabllW"lt tgY Edot]tem-
Template az Update és Caocel fdiratú LmkButlOn-<>kkal. HdyeuOnk el al ÚJ
nhlonmez6It.emTenlpl3Ie sablonifu:in egy LoginView \"ezér16t. AZ AnOn)'TIlO\lS
Tcmpl:'le n(iZl.1ct h"gjoiuk üresen," Logged ln Tcmplatc fel(lk1(in pedig hclye1.l;uk
d:az Edi! [jnkBunont l ia névtelen fclha~n.1ló l.itogat,. webhelyilnkre. az Edit
gombol; t.lIta]mazó mező a wrrdra üre:>oek mlluLkozik. míg a ~Jerukezcu
fdhasmáJ6k hozz.ájllll"\ak elihez a gombhoz. [gy lZCrkeszthetik a Book$ ~bb
megfeldl5 rckordPl.
(A l. és 3. g)'lIkortat IehetÓ\"i teszi, hogy I:4rmdy bejden!kezett felluszniló
szerkeszl~" 800ks ~bl3 tartalntil. tb ezt a lehet(i:!égct 3Z AdminlStralor
szerephez \;Inozó felh;.nn.ál6kl1l ~zeret~nk kor1~tomi, a Login"';(.'\\' W!repek-
hez kÖ!l5dl5lehet65égcI\"eI céll trhetilnk A LoginView múköd6l-nek,. fell1:lsz-
n.i16i surepcken ,.i;,puI6 szabályozi~róI b15vebben:az Em mln(' 18 ASf'.t.'rr
20's ~Iembenhfp. Roks, ",uj Profi/edma cIkk n.,;5O<lik ~ ol\"l\SII:lNnk.
a httP,,, •• pnet.4\1uyatr...-oll •. ee 'Art -le,' 12140' -l..al>" emlCn,)
21. ÓRA

Mesteroldalak használata
az egész webhelyre érvényes
oldalsablonok létrehozására
II lecke la rlalmábóJ,

• Meslerold.lllétrehozáSOl
• Szerkeszthető le1Ületek meghat;iroz!i5:1 egy mesteroldalon beim
• fr"",nan !l"lrehmOIl oldal Úrsícts:. mcglév6 m~erold:l.llal
• Meglév6 oldal be:\llíl~S3 mt'Sleroldal hasWlallirn
• Fofr.Úik6d hoWadha,. mesteroldllhoz

Szinte minden szakszerík'n elkésl1teu webhelren IIllgymMékben egységes az oldalak


megjClenése, AZ. egrsé~ megjelenés 1!talában magjb;;, foglaJ;a mind 31. oldal elrende-
zését - hogy hol jelennek meg a felhaszruilói felüle! különféle elemei, és awl< hogy.. n
helyezkednek ej egyndshoz képesl-. mind pedig az oIOOlon hasznill bel:JtíPUSOkal,
~neket és grafikai elemeket. Ha példiul megl~logaliuk az ESPN ~pon~lOrna web-
514 ! rv. r6az • ~. N1M'm6lo5il: kaz Ih, is az oldalit 1IIr9orIt,n.

hely(i n ESPN.com eimen. akkor aZt fogjuk látni , hogy mt61 filggetleml1. hogy hov~
megyfink a webhelyen, az oldalletején n ESPN embl{omápt. egy keres6mez6t. és egy a
sport;\g:tkJt fcl5orol6 menüt l:ítunk. Az. összes oldal alján egy rná5ik k~me:w
[21~lh3tÓ, \':llamint a legfrissebb eikkekre mutató hi\':ltkoúsok

Egy webhely oldalainak elk""zíté$ekor fontos, hogy az egész webhelyre jellemz6 eleme-
ke! ne saját kezűleg adjuk minden egyes oId:>lhoz. Ez 3zt jelenti. hogy az ['WN.wm
webhely tefVez6inek lunya~gát mutatni. ha SOiIpt kez\JJeg vennék fel a kere56mez6t,
az embl&n.1.t "" " közös luvatkozisokat az egyes oldalaImt. Ez roem csak hogy jelent6sen
mo.'gl1Övdnl: a webhely létrehotl~hru: stil~ időt, de" webhely elrendez6;.:nek
frissít~ is rtrnjlommi tennt. lia az IlSPN.com lavez6i el ak"m:lk I:hvHtani II k~
mezőt felülr6l, vagy b6VÍleni szeJI.'ttlék II SfJOIÚg:lk liSl~iit, II wchhely minden oldalit
egycnkém m6d0sítmiuk keUene,

A webfcjlesztl5k ~Ital ha.mált megkött-lités valamif{ole webhelysablon l(,[rehozás.a.


amelyben szerepel:>z II HTMl-tanalom, amelynek minden oldalon meg kell jelennie.
Az. ASP.NET-ben ez mCSlerokfaklk hasznilath'lll érhet6 el. A mesterolcbl olyan külön-
leges ASP./'o'ET oldal, "mell' II hagyomin)'Ol'j ASP.NEr oIdd.. khoz hasonlóan tlnalmaz
egy k6drtszt és egy I ITML ré5Zl, és amelyben II I fThIL rész .statikus I ITM1-ta nalmat és
webes ,'ez6115kel is magába foglal. Amikor :azut:ln új ASI'./'o'ET oldalt hozunk l~re,
ez:az új oldal t:lrsítható" mesteroldalhoz, és eziltal örökli ann.1k megielen€:sél.. EbbE,,,
a modellben II me:Sleroldal frissítbekor lIuton",tikusan f~l" rTk.'SIeroldiltól öröld6
összes oldi! közös tlnalma. Meilcroldalak h.. szrt:llat:lval pillanatok alatt Iroeho.zlut6
egy egySZl'n1cn frissitllet6 egysl:ges wcbhely.

Mesteroldalak - áttekintés
Az6I::a, hogy az első webllelyek megjelentek II ViI~gMI6n. a ter\"eZl:si folyam:un:tk
fontos ~ képezi" webheJyet "lkotó okbbk egységes megje!ené:sének kialakítása.
A webhelyek tervezé:sé-re ts weholdalak Iéuehozá5;;ira srolgil6 olyan eszközök. mint
a Micro:sol't fronlPagc és II Macromedia Dre:lmWeaver programja, rtg6lll kínj Inak
sablonszolgiltalisokat. Ezekkel az eszközökke! a tClvez6ll-trehozhat egy oly--.tn
sablOllOlcblt. amely 13nalmazza mind a webhely oldalainak kólÓ/; tatt:llnmt, nlil>d pedig
azokal a teriilelekel. amelyek II sablont hasmáló egyes oIcbbk ~Ital teslreSzablmtók.

AZ ASp.NU 2.0 és II VISual Web Developer hasznábtakor az oldal tefVez6je a telje!;


webhelyet mnt6 sablont egy mesteroJdal létreho:z.h5val ha~rozza meg. A frontP"ge és
a Dre:lmweavCf sablonfijljaihoz hasonloon II meSlcroldltlak két ré5W6l tev6dnek ÖS!ize:
a mesteroldaltól örökl6 oldalakon megjelen6 köz~ tanalomból és a mesterokblt
~ló oldalak ilta! teilreszabható teriilelekb6l . Az ASP.NET me5teroldal modellje
felalmúlja az egyszertll-ffML :>Iapú sablonokat, mivel a mc:;teroldalak. ahogy minden
ASP.NEl" oIdltl, nem csak HTML-kódot t3tt:1lmal.h:llnak, lunem webes vezl-rl6!tel és
kiszolgálóoldali fOl'1i5kódot ÍIi.
+" 't
MleI&t oekiugr.llútlk sapi mesI~l:aink ~tIlIk, cl&zör 15 tclunt5l!k ~t
:a m$erokbJ modell ml1k~. Képttljíik cl. hogy t'8Y olyan webhelyet ~ karutlk
kbzitcni, amelynek minden oIdil~n szerepel a köve1kcz6 ilt'gy kÓ7.ós fclh~5Zn.:116i
felüleli elem,

• :a webhely ~'e III okblte1ején,


• egy I\.nigk16s ll1()r'U;Iúh'oruollll okbJ te1~,
• egy tIlI\'igjci6s f.. ~zct III OkbJ bal okbUn, amely mUI.:Ilj:a:a wTbhely surlceICI:ét.
• egy szerz6i jogi n)1blk~t b egy WI" hi",tk0U5 (l..eg:IJ, priv:u:y Poltq',
About U~ 5lb.) 3l oldal al~n,

A webhely ~In $lIIfeph1 MVigOCiós JIIIlézeI .. morzsaútvooallélrtlloztsa


ideális ese\bell a 19, ie<:k6ben látott webhelynavl!l6c:KII; 1Wközöt,
illeM a SittMapl'lth .. I TreeV_ ....., V0rI6k hamálatávil tört. . .

\\deum", to \1~ \\0,111,"10,1'

.- --
...-.- .... _ -
.-
.
About ti •
........
.-
.- ",,",,'~llL '*"
21.1.6tn
A u'eblw/y ml"Jct,
oId.>l6tJu. ~~.
~--- mojd .. ~"
.. ",,'iItJIidne

Az. okbll('t~ Lilrull6 w. ,.... tc Itt Webollt.1 (C"d1."ÖZlöm:a webhdyemen!) dm,


a bal oldalon ~-6 fa~l('t.:a Il1()r'U;IÍlI\'Or"IlII, k az :alul $7-'"f't"P16 hi\'lllkozhlisu .... d>he-
lyilnk mmden oIdal;tn pClnlO5;ltl ÍlS)' fog meg)l.'lenni, :ahogy:a 2L1. ~br.in 3l About
oldaLon Ulh3t6. Az oldll fennrn.u:ldó része, az },bout u. k a U>r_ Ipe\lJ\'l bl"h bl"h
bl"h rkzek egyedlek IchClnek:a webhely e!n'es weboltbla in,

AhJIO.t. hogy en meg\";tló$il.5l.lk egy ASP.NET webhely ~. cl6ször is egy me:Mer·


oldalt kelJléuehomunk. A me5lerokblnak rrq kell h3~roznilI az oldal uon terllletcil,
amelyek kOzö:5ek a me:Merokbltól ÖrÖkI6 ÖOI6ZeS OkbJ eset8Joen. k ,,:wk.1I :a lerOleteket
is, :amelyek oIcbbnk6'l: ~1:It6k. A mesterokblt61 ötökl6 &i>zes oldalon ~
I
51& Ilf. ráz • Nmg6ci6. W..mM6k kRi If ," coldllak ...-w...

ulUlmal elég egyszert1en csak homadni a meslcroIdalhoz, ugyanúgy, ahogy egy h:lg)'o·
miny05 ASI',!>.'ET oIcblra vennénk Fel UIUlmal. A J-rThIL-k6d k a webes ,""zéTl6k
bev;le~ végezh .... jUk sa~l kezűleg II Soun:e (l'OrTáS) nézcibcn vagy ~ gr:lftkus ie.veb'!
hasztUilalival

a ComemPlare-
A meSleroldal azon lt·rtJ.leteil, amelyek oldalankénl iestre5'll1hlutók,
Holdcr webes vezérl6 segitsl:ghel 3djuk meg. Ahogya 21 2. ~I)I';'in l;lth.tó, ez a ~.... -
zérl6 a mesterolrl:lltCT\'eb'! néUlében eg)"'zeru tégl31apkém kl'pez6dik le. Kés6bb.
amikor egy oly:m oldalt hozunk létre. amely örököl etl61 a mesleroldah6l. cs:Ik ebbe
II mez6be vehrtOnk majd fel tarulmat, mivel a kömyeb'! lenHet al. a felhasznál6i

fdOlet. amdy megegyezik a mes!eroldalt61 örökl6 összes okl:ll ~&en.

A meslefoldalakon több ContentPIaceHoIder ve~r16 is SllIfspelhel. Minden


Contentl'laceHQlder vezér16 a ITIIISteroldal egy olyan lerületét íeIŐIi, amelyet
lastruszabhat a t61e örökl6 ASP.NET oldal.

A 21.2. :íbrán a 2] I ~n OCmutatott kÖlŐS felha'\Vl~I6i fdiJ!Cl.létreho~s:íhoz ha&ZO:ílt


meslerokJall:itlllllÓ. Figyeljük mt:g. llQgy a meslerokt.j egy ContemPlaceHokIer vererl<'5
melleu tartalmaaa a köZŐ/i fdhasznál6i fdúle'!' elemt:kct: II dtn<.'1 az oldal tetején,
a TreeViC'\'l' vezérl6t (k II Slte.\1apDataSoun:e ve7.érl6tJ, a SiteMapPath \'ezérl6t, valamint
aZ oldal alj;\n található hivlllkoZlLSOkat. (A7. óra k~; rk:rebcn rész.letesoen megné1.zilk
a mesleroIdallétrehotiisin:.k lépbeit.)

II!!'!!'~
_'!!"!"!!'_• ...::;;;:~

--
_.- .-
._-
.-'- .-.-
.-
.-
____ - --"-'_l> __ __
.~

.'
21.2. 6bre
ti mt!Sieroklakm " liIÓZ6S [e1hmztufkJi fciIJ/etI elemek mtg/wlulttWiw. ,w,mlm
"ID' eo"'Cf,tP/JJuI-/okJi>r .~ uen'f><'l
Ennek a mc.sleroldalnak a I('tf(>ho~sa uLin II követkemlépés egy olyan ASI'.NET oldal
1l1.rcho~sa, amcly ett61 II me5teroJdalt61 örököl Ebbe a témáoo fogjuk belclsni
magunkat k<'s6bb az ól:! sor:ln. !tIiu!:!n cJk6zill! e8)' il}"en oldal. :IZ ASP.NIT oldal
leryez6 nézetébcn 1.1th"10 II mesteroldal nem szerkeszthetó clM"lma. v:alam;fl! II
~7.erke5tlhet6tllrtalmi területek. A 21.}. 1br1ln :IZ A!XlUt akla! ];~th~16 tervem tWzetben.

.. -*,•• ,... - ... -.


" "
• •
-
.. -- - -.-- -
-.,-
-
,. _ .

-..--

--
• u

.- ., '"'- •
',:;..
-,----
~_.

r
_...-..c..--


..-
•- •
~_
\bout lls
.........
.-.----

.,--
.-.;--
, ,,~

.. ••
1,'-
- - =
21 .3.6bnI
Az Abofll oIdi.1 <'gYl'/1~. SU!TkszlhC"ló renUele .. ConJ~" rr.." ../om) le,ilk1

Nem kelJ újra létrehoznunk II kik& oldalelemeket. Igy" címe!. a TreeVoew vezérlŐI.. és
így toV~bb. Ezeket:u oldal II mesteroldalt61 örökli, 6 aUlorn;Ilikusan megjelennek
az oldal tervez6 nézeta,en. Lehet hogy nem telje!;en egyérteImIl" II könyvben 5J:"'"'f'l6
~lm'ik :llapj;\n, de ezek II kÖZÖ$ mesteroldalelemck kisziirkít\"e it'lennek meg. k nem
m6d0síthat6k:u ASP.NET oldal ~1t:l1. Az oldal egyetlen s7.erl<t"ZI.hetó terük1e II Content
teri1let, :lllX'ly pontosan ott ;elenik meg. allO\'l\:I ContC!ltPI:I<:eHoldeT "ezérl6t helyeztük
II mesteroldalon.

Ha mesteroJdaJt ha.wt:llunk. II webhcly ~ú0g6 rnegjelcn~ eg}"Qcn1en. II me5leroIdal


fri55ítésével m6d06íthatjuk. Például ha meg :.!<aIJuk vo:ltoztlllni az okL-ll tetején llX'gjclenó
szöveg<.'t, V"~gy ha (jj hivatkozásoka! akaronk lenni az oldal aljára, akkor ehhez elég, ha
II mcsteroldalt szerkeszt jük. A mesteroldal rn6<:ktsítha 6; menté5e ulán a mesteroldalt61
örökl6 oldalak lIwnn.11 II megv:\ltozt..1tOU küLsóvel jelennek meg.

ÖSSzt.ofog!a~ként: egy ~ webhdy eg6zére \"0I"I3tkow .sablon nle.slefOJdaJlal való


rnt.lIw1Mctsa két lépésb61 ~ll. amelyeket a kö\"etkez6 som'ndben kell elvégem;,
518 IN.rMz·~, ~ l. 'I ." Ilokllllk ••odI.!:ll l

l. UO:aunk Ime egy mt':;l.eroldalt. amely megh~úrozza az egbz webhelyen közö:>


felhaszn~lói felületi elemeket. v~lamint aZ oIdalankl.,.,t lcstresz:lbh,u6 t<'1illcteh1,
2. Houuk Il'lre ~ webhely ASP.NEr okblait, úgy bclllítva azokat, hogy aZ l. 1q,6-
ben létreho1.Ol1 moteroldalt h.a~zn~lj:1k

Mesteroldal létrehozása
A nle$l"roIdalak hasonlitanak azokhoz az ASPNI:."T oldajakhoz. amdyckn"k a létreho-
1..'lsával a könyvben mir többször fogIalkw.tunk. Az ASP.NET oldalakhoz hasonlóan
a n\CS.lcroldalak wcbcs '·eztrlőkct. S(atikus HTML-kódot é~ kiszolg1lóoldali kódot tar-
ulmaznak. A mesteroldll és II hagyomJInY05 ASI'.NEl" oldal köliltt az a f6 killönbség.
hogy a nJeSleroldal célja egy ... blOfl meghadrorlsa a webhely ~7..lmára Ahogy ebben
az órában koribban mir volt róla szó. a mesteroldal meghatirozza a rnesleroldaltól
örökl6 összes oldal közös felh;l5i'.1'1~l6i feloleti elemeit. "aiamini az o!d.~lanként
szerkesztla:tl5 tenllClcket

Ahhoz, hogy neki11lhassunk egy webhclysablon lárehoúsának. el6szÖf is vcgyOnk fel


a projektbe egy ll'Ie;tcroldalt a
köv~'1kel6 Il'pések kÖVC1~'{'1

l. K:ll1in~unk a1. egér jobb gombjával a projekt n~...·tre a Salutlan F.:o;plorerhen.


2. V:Ha:=uk az Add New Item (Új elem hoz7.~adása) menOpontOI, amely megjeleníti
az Add Nev.' [(em p.1rbeszt'dablakOl.
J. Ebben a p.1rtJ.e.n."dablakban vilasszuk a Master l'allC (Mesteroldal) elemtípuSl
4. V,óbsszunk nevet a nleSteroklalsúmáfa, Az alapértdmezctl név Man .. r -
Paa" . """st ..... Ezt ligy hagyhatjuk. ahog)' van. de tesl.'izó1egesen lJlÓdol;ithatjuk
is A fájl kitet'p.ztke mindenképp mJ.r.ldjon .lMst"L
5. K:1pcsoljuk be a Placc code in ~ sep;ifate file jelöl6nég}'Zetet. amennyiben
még nincs bekllpcsolv:I, AlIQg)" a kor.íbbi l,-,cktkben mJlr ~rgy:.ltuk, ennek
a jelöl6négyretnek:l bekapcsolá5a a meMcrolda! fomi.sk6d ré!;z~ külö<> fájlba
helyeú,
6. Kat1inl:iUnk n Add ( Hozzia(\js) gombra ~ mesteroIdaJ projektOnkbe való
feJvéleiéhez.

Mll/ún létrehoztuk az új mc.stcroldalt,:I tervez6 n{,zetben eg}' egyetlen ContentPJace-


Holder webes "czl:r:l6! tartalmazó oldal t1tba16 (Jásd a 21.4. ábrilt). Ez a Content-
I'hceHoIder !elöt; a rnesleroldaltól örökl6 ASP.NEl" oldalak :ilt~1 szerkeszthet6 teriiletL't.
Több ContentPlaceHolder is leh~'t egy mesleroldalon. Új ContemPlaceHolder
hoZZiadWhw; eg)"SZeruen csak húzzuk al egélTel 3 CamentPlaceHolder "ezénÓ!
a ToolOO)l pakttMól a n~eroldalra.
2 U.~
Az liJ mes/erol-
./nlak "8)'Cfl<m
0."'/(111/ ~1'11oIder

- Vf"ZhIlJIlaMlmIl::_
•••
A CootentPlaceHoldef ~zér16 csak mestefoJdalakra vehet6 fel, ASP.NET oldalaknl
119m, 8ZÍH1 amikor II\IY mesleroldalt tekintünk meg a Visual Web Oeveloper
hasmálatával, e ConlemPlaceHoIder vazérlót megtaléljuk e loolbox palettán,
hagvomArlyQs ASP.NET oldal megtekintésekor azonbal 82 a VilZM16 oom jelenik meg.

SJ..1njunk egy percei ~ mesteroklallcírok6djállak megtek;ntt~re a fomis nl!Z<"Iben


(lá$d ~ ZI. l. pélItit). Ha Ö51i>:eh.wJnlítjuk egy mcstcrokbl ~laf*nehncu.11 kódját
egy hagyom~nyos ASP.NIT olcblwJI, két killönbsl'ge\ vehetúnk észre. Az els6 az.
hogya Jll<.'SIeroldaI3 <\II. M... Ster b UllIsílással kezdődik O. sor), míg 3 nQrm.11
AS p.NIT oldalak a <ta page b utas!thsal. Emelle« a me!;leroldal alapéflclmcres
szerinllanalmaz egy Conleml'lateHoIder vezérlŐi (12. l';s 13. sor).

l: <t, Ka"ter ~e~'VB' CodeFile~·Ka.t.rp"oe.maeter.Vb ·


_ lnherlte."KbeterPage2" ,~

."
3, <iOOCTYPE html PUBLIC '-I!WJCllorD XNTML 1.0 Traneitional/IEN"

,
_ ·http,llwwv.~3.orgf~lxht~II/DTDlxht~11-tran8jtional.dtd " >

S, <ht~l xalna"·http,llwww.~1.orgI1999/xhtml· >


6: <hud nrnat_"s"rv"r",.
7: <t!.tla>Untitl.ed P"ge<ltltlo>
8: <Ihud>
9: <Jxx1y>
10: <fo .... ldz'!o~l" """"tE"server">
ll: <dlv>
12, <".p:contentplaceholder id.·ContentPl.c.~lderl" ""nat~"G"rv@r">
lJ: <I.8p:COl1tentplaceholda....
H, <IMv>
15: <!fo"""
16: </Jxx1y,.
17: <Jhl .. l,.
I
520 IV. rMZ • Ne\;g6ci6, feIIMZn6I6k kw 'I ," ez oIdeIIIl ....odezl ,

Az egén webhelyre nlll:llkoID mt.'gjelenés kial:o.kít:l5.ihoz. vegyOk fel a ~eroldalrll


3 megfelelő sutílnl5 HTML-kódol ts webes "ezérl6l,:et. Ezt elvégezhetjük ~ mNt-kód ~
a vezérlő saj:lt keZll bevitel~el3 foms nl:zetben, vagy gr~fikusan. a terVező ru:zetben.

EIIY mbhelyprojekt nmdelkezllet több mestefOlOaIfájllal. amelyek mindellYib külön


ublont Ilatároz meg. Például ellY webhely Mrom kiilOnbOro ~szre osztható. és
minden rész saját megjelenlissel és mUködésl móddal rendelkezhet. Ebben az esetbetl
Mrom különböló mesteroklalt ~ánk létr, a webhelyhel. Amikof új ASP.NET oldalt
halUnk létre, azt /I megfeleló mesteroldallloz t6l'S~iuI<;,

A webhelysablon megtervezése
Hozzunk Iéire egy oIY'~n mesteroldal(. amely 3 21.1. ~br1n l~th:u6 megjeh:.'fll!ssel k
működési módd:d rendelkezik. tehát egy cím ",n felüt, egy TreeView vezérlő a 001
oldalon, ~ igy tovább. ü: a kiaJ.akíÚJj négy ten1letre oszt minden oldalt:

• ~ fejll:cteriiletre. amely megjelenIt; ~ "'ebhely címé1,


• a n:.vig.1ci6s területre, amely l:utalmav.a a TreeView vezérlőt, IZ az oldal
001 oldal:l.n jeknik meg. a fejlooerület alan,
• a f61en1letre, amely a Site.\1apPath \'("z{'Tl61. 6; a COntentPlaceHolder vc1.érl6t
tart:llrnnza - eZ a ten11e\ ~ k'jlooelillet al~tt. a navig.1ci6i5 terulettl5l ;obIm
helye1.kooik el , és
• a 1~blé<:terilIClre. amely a ~erzói jogi nyilatkozat nlellett a kő<:& hivatkodsokal
(Legal, About US stb.) tartalmazza.

Ennek n okIalelrendezésnek a mcgva16sit1sához használjunk /tibkiza/oknt, A l<'ibl~zalok


olyan Ini\tlA!lemelr., ameireknek a haszn11~t;\val ~z. oIdaloszlopokba és sarokba
rcndez.het6. WebhelyiInk e:set~ egy olyan Ubl1zatm ,.. n szil~giInk, 3mely a tel]CS
olOOlt kitöiii két oszloppal & három sorral oly módon, hogy 3 fe156 és III alsó sor kl:!
os:dopol. ölel fel. A 21.5. 1br:i ezt a szerkeze'!et szemlélteti gmfikuS3n.

--
....
NoI,'gkMo
,,-
21.5. jin
II u'riJhel)' 'W' /oéIouklpos ls
Iulrom.oot'<I< láb/áZd/ba ""dal
I Iti I 100 iiIIt
ar oklakl""/
21 , ÓIlI • M.._oH ' ': hIIZMIm II tg6sz w~ MV6nYeI: oIdIII...,,1IIk "b"hoz:6i. . 1521

A fenti elrendezés HTMl-ben 1':1.16 megyal6sí~hoz beírhatjuk 5aj!it kelÚleg:.. megfelel6


IITMl ~~zatkódol, '':Igy igfuybe vehetjük ~ VISUal web O"'veloper segí1Stgél.
Ha szeretn~nk 5aj:jt kezffieg beímí a HTML kódol, nyugodlan t<"gyÜk ezt - a kk6bb
szen.'plő 21.2. példa tartllmaUll a 'n<'S(eroldd teljes ~ITML k6dpl.

Aki nem l-ITML-njong6, és jobban SzeM"" a Visual Web Dt-",'eloper segitstgé1 igfuybe
\'eflni n oldal elrendeú~k lárehotlsa sodn, u kövesse ezeket" l~k .... , el6ször
a mesteroldaltcrvew nézelé1 el6\'éve. A 1..:Iyout (Eln.'rldezés) mcnüb61 v.1lasszuk
az Insert Table (T~bI~z:tt beszúr:lsa) pan.nCSOl, amely megjeleníti az Insert Table párbe-
~é<bbI3kot (I~ a 21.6. ~brn!). Ebben a p~rbeszfdahlakban adhat juk meg a L:lbl.1zat
pontOS bclllít:1sait, igy a:sorok és oszlopok S7..:JIt)jt, az clrende7.ést, a súlesqa és
maSl'sságol. ts [gy tov:'ibb - de haszn11llatunk mir meglév6 sablont is. Mesteroldalunk-

'...._- . _
hoz vi1a5SZUk II Hc:lder, footcr and side (Fejléc, Ijbléc és oklals.iv) sabklnt

_ . .... _---- ,,.


,-
''''''
..... ~

- ~,

- 21.6. jbre
1~,lkfi-~ a táblázatOl
a mest~,'m az l/l"'" rublc
o< ILc!"O párl>csz&l<lbk.,. ha$;má1«1á",,1

Al Jru;en Table párbeszé<bblak egy uj tábl1zatOl szUr be a Coment PlaceHolder


vezért6 elé. Mivel azt akarjuk, hogy a ContentPlaceHokler a fő tertllelen legyen,

A_Iot_
Mzzuk II "eúrl& II L:lbl:lzat al61 II tábLizat második oszlopának második ~ba,

A fejl&teruletIe írjuk be" webhely címé1, péJdiul" \oIelcCde to My \oIebaitel


(Od\'öUöm webhelycmcnO uövegcl. Én a dm középre heJyezés(,\ h 24 pontQ1i
belll~rt"uel va16 megjelenítésl:! Y.i13.Sllotlam. Ezek a belillí~sok a webhely ne\'ének
megad1sakor az ~ö7.L1Jban vagy a Forrnat ( Forrn:izis) menüben eltrhe!.6 5cl1TlU'
formizási lehet6stgen kel'C5ztOl adh:lt6k meg.
Ezek a be:1.JJrt:1sok:l. teli<-'S tartalmi rb;zre lS vonatkozt~lhat6k, nem csak az éppen beirt
szövegrészre. A feilécten\let testreSZ.l~hoz végezzük cl a kÖvctkcz6lépésckct.:

l . Kanml5Unk a t~bl~zatcella belsejébe, m~jd v~l(.SUnk ~ Propertie5 ablakra.


2. Kallintsunk ~ Style (Stílus) tulajdoo~gra. amely Igy egy h~rom ponttal jelölt
gombot jelenít meg.
J. Kallintwl1k n emllleu gombra. Ez a Slyle Builder (Stílusépít6) p:l.rlles~MablakOl
nyitja meg. ahol megadhatjuk a belúlÍpu~. a MlIerct, az elrendezést, b más
bejU~sokat, amely('k a t1blizat lelp sorára vonatkoznak (lisd a 21.7. ábr.iÚ.

ill'" .. _ _
ii!_
-:;--L=========c--
"" .,

--
~

-
_--
~

......
21.1.~
I <'8<=-.lk el II fejk'<:/Cnlkl
",q:jcict~.k testrc;mlb&<!,
" SlJic BullMr pdrlJes:WJablaklxm

I b p(:ldáuJ azt akaljuk. hogy a fejléct".,-(jlet fehér szövegel jcJel1í!5efl meg olajwId
Mnér el6l!. II f om (Betű) b.pon 3 Color (Szin) lenyfl6 list!ib61 v1lasswk a 'White (Fehér)
ek'ftlt.'l, a Background (Ilinér) lapor! a Color lenyíl6 listáb61 pedig aZ Oh(' (OlafZöld)
elemet. A Style Huildcr p:lrbe5zédablakh:m megadhatun k beI.Únll:"-':'1et, igarit:1st, és
temérdek rru\s beállit1Sl is.

Alapértelmezés SZ1lfInl a fejléc· és láblécteriilolebl alr.ot6 soro~ Bt~bfálatban


200 képpont magasságúak. Ell az értékel llÖVeflletjük vagy csökk&nthetjiik, ha
a sorokat elválasztó vonairt katttntunk, és az egér gombját lenyomva tartva leHelé
vagy IefBlé htiuuk.

A navlgiciós Ierillet relja, hogy telje5listlt kin1ljol1 a l:\togat6nak a webhely szerkere-


t&6l, leeg}'s.ze.-ü~;tve ~ webhely okbl;1i közötti gyor$ mo~g;ist. Ahogy 3 19. fejenmell
rruir volt r613 .zó, ~Z ASI'.l\'l:T TreeView vezérl6jc a SitcMapDataSource ~-ezfrlŐ\·el
közösen haszn~lh316 a webllcly szerkezet&.ek megjelcníl~, fc1thc, ha van megf(.,-
lel6e-n meghat:1roron webhelytérkép. Ebben az 6r.iban is 3 19. fejezetben haszn11t
21. ÓI1 ...... ~' , '; hMnMItIlZlgélZwlbl~ !WnyeII ......tlIIonoI:.~ 1 5Z3

webhel)llérképct vesszük igfnybe. Miut;Ín l~rehoztuk a webhelytérkfpel, vegyük fel


a SitcM.1pDataSoul'Ce és a TreeView vczfrl61 a uibliut eJs6 oszlopjnak m!isodik
$OI'áb:l. a TreeView "ererlŐl pedig !illitsuk be a SitcMapDataSourCC' ltaSzro13l!ira.

A13J*nelmezés szerint a t'ibl!iZ:ltcell.1k tanalma fUgg6lego;en a cella közepére kerti!.


Amennyiben a navigkiÓ6 terület SOra különösen magas, ami el6foruulhat olyan
oldalak est'Iében, amelyekn';l llO:SSZil tartalom szerepel a f<'l területen, akkor Om;
terület fog megjelenni a feJI&:terület éi a TreeView vez(;rl6 között. Ha több old~lnyi
tartalom van a f6 területen. akkor a 1~lOgal6nak lehet, hogy lefelé ken göfgt.'tnie
az oldalt a fanézet megtekiml'séhez.

A webhely köws elemel nek formáz4sa gy:lkr-.m úgy Iörlt'nik, hogy azok helywft
ne befoll'!isolla al oldalfügg6 tartalom. Ennek el~hez a navigációs terillet mtalmlit
a cella It."lejl'n kell megjelenítenünk a cella közepe helyen. Ez II cella vüll/n tulajdon·
siigh.II 11lítható be. Ennek a tula~gn.ak a be1l1íeis!ihoz kattintsunk a na\'ig:icí6s
tert\lctet alkotó celb bel5eiébe. maid a Properties abbkban a vaHl/n m13jdonságrcll
v:1.lasszuk a top én~ket. Ennek hatásira a n~vig1ci6s terület tartalma függ6legesen
ignooik a tibL1z:ncella lctejl'hez, fUggetlenül anól. hogy milyen sok \';Igy milyen kC\'1's
tanalom szerepel a f6 tenlleten.

AmikOf a Header, footer a!ld side sabkmnal hollri: létra ~ táblálatot. III oIde1$ó
oszlop ja navigációs terület) 200 képpontos szélességgel jOn léve. Ahogy a leiléc·
és lébléct8tÜletek rNQ3Ssiga asaIében, itt is beMithatjlll: a szlHességet a navigációs
és a 16 tel'Ülilt közötti elvilaSlt6vonakcl kattmtva, és az egér gombi6t !enyOmvil tartva
jobbra vagy balra húzva azt.

A f6 terület és 8 láblécterület Iétrahozása

Most m:;\r cs:Ik kL1 terillet van h5.11<l' a ró Icrillet és llibléctenllet. A fó teriilet m.1r
t:maJma2.Z:l a ContemPlaceHoIder vezM6I: (amcl)'(1 a t:ibl~Z:lllélreho&sa után húztunk
belc), dc még hi~nyl.ik bel61e a SileMapPmh vcrerl6, amely a morzsaútvonalat jeleníti
meg. HíJtxuk eZl II vezérlŐ! a Tooloox (XIIL1t:lr61 a f6 ten1letre. a ContentPlacelloldcr
vez(;rl6 foM_ Végtll ~11íll;uk 3 f<'I terület ~bI:lZ:ltcc!lájlirnlk valilJIl tulajdons:igit top
"'n~kre. ahogy eZ! a navigáció:> terilletnél is tettük. Ez biZ!OlIítja, hogy fUggetlenill anól.
hogy milyen kevk tartalom SZL'fepel a f6 ter!lleten. az mindig a cella tetején fog
megjelenni.

VésDl vegyuk feJ a Ijbl&tert\let tartahrot" leg.~156 50<1)3. A~ áll1bl&terilletcm három


hi'':ItkoúSl tartalmaz: Leg:d, Aboul U5 b Princy Policy. Ezeket 3 hiv3lkozá:;okal sajál
kezűleg írtam be. de igény szerint v:I!a5Zl.hatjuk II HyperLink webes vel.trlók
haszru1l:nil is
I
524 IV" r6&I: • NMg6ció, W-,nl6l6k k" 'il. ib az OIdIIIk ....."11

N~zzilk meg ujra a 21.2. !ibm!, hogy l!ilhassuk a bef~ZCt1 mes!eroldall ~ \~l5ual Web
Devdoper lervező ~zC\ében, 3 21.2. péld~ban pedig meglekimhctjilk II mesleroldoll
teljes fomhk6dj.11.

l: .,. Ka.te~ Language~'VE' CodeFile~'MaaterPage"~.ter"vb'


ooo InheriU. 'MasterPa<;je' b

"3 , <!DOCTYPE html PUBLIC "-fIWJCIIDTD XHTML 1"0 Tran~itionalIIEN'

,,
ooo "httP •• lwww.w3.org/TR/xhtmll/DTD/xhtmll-tr~.itional.dtd·>

5 : .html ,,,,,lra _·http : //www.,,3.o~gf1999/xhtml· >


6: <nead runat~"8~r'~
1: <title>untltled Pege<ltltle~
8, </h""d>
9: <b:)dy~
10 : .fo~ id.'fors!' runat,'aerver'>
ll : <di .....
12 : <tabIe border='O' cellpaddlnq='O' cell~clnq.'O' Btyle.'width,
ooo 100\, height, 100\'>
<tr>
<td co14""". · 2 · IItyl ... · height , 100t»<, color: IUHU ;
ooo backqround-color: ollve, text-allon: center;
ooo (Mt _il/ht, bold; font-süe, 24pt;·>
15: Welca.e to My Web.ite!</td>
H: </tn
11 : <tn
te, <td atyle.'width' 20Opx ' vallon."tap'>
U: <aap,Tr..,View tD-"l'l:eeViewl' rut\jlt~'.e.rv.r·
ooo DataSOUrceIP.'SiteKapDataSourcel ·
ooo 1ma~eSet"Simple ' Nodelndent~'lO'>
2Q, <parQn~Style font-Bold~"fa18a" I>
21 : <HoverNodeStyle Font -Underline,'True"
ooo For.cclor.·'IlIl5S5S· I~
~2 : <SelectedNOdeStyle font~Underline.'True'
ooo foreCo l or,'.DOS55S' Kori~ontalPadding.'Opx'
VerticalPadding~'Opx' I>
<NodeStyle Fant-Name •• 'Verdana'
• Font-Si~e~'Bpt · ForeColor='Bhck'
• KorlzontalPadding~'Opx"

NOdeSpacing."OpK " V.rtical~dding*'Opx" I>


""27:
26 : <lasp:TreeView>
<.sp:Slt~pOataSaurce tDo'S;te"-pOat.Sourc~l'
• runatm'Berver' I>
~8: <ltd>
:29: <ld v.11on~'tog'>
lO: 'nbsp,<up, SiteMapFath ID-'SiteMapFathl '
ooo rut\jltE"B~rver' FOnt-_aE"Verdana '
ooo f'ont - S12e."O.S. . •
]1, Path8eparator-" , .~
)2, <PathSeparatarStyle Font-Bold="True'
ooo ForeColor.·nC5B5S " I>
21, in • Mil" " , I Ium II llegill: '.. IiIIII!I)oft."..,.. ,.1 I t, ... 1iII .... f f . 1525

",
H,
<CUrT.. ntJ4::xl~nyl .. ForoColor,"IJ3l
<l>odeStyh. ro,oI; ·801d<"1"I'\Oe'
I' '>

_ roreColor""IU6U6' I>
", <RootNodeStyl .. Font Boldc"Tru8'
_ F,,<eColor~'IlC~ES5' I>
",
n,
</a.p,SiteHapra'~>
< . .p,ContentPla,'_lder II)::·Cont..,tPI.~ Ideri'

li,
19, <Hib
fO, <Itr>
n, <tr>
n, <td cohpan-o."2· 81yl .. , 'l'Iel<;1hl' SOpx,
_ t ... t-mlillD' centen'>

",
U,
<a hr.fT·~.l,a.px·>
~.l</a> I <a hr.f.·About .• 8pX'~About U.</a> I
_ <. href . "Priv.cy .•• px·~Prlvacy Policy<I.><br I>
~ri<]ht SC,tt Mitchell, ~""6<ltd:>
""
", <Jtr~

",
48,
<It&bl ...
~p,
U, <Idiv>
",
SI,
<Ilo....,.
</body~

", </htlll>

M8st8rolda~61 örökl6 ASP.NEr oldal létrehozása


Mlutin dk6z0h:l rroe$eroIdalunk,.1 km-mea1 ~ egy oI)":ln ASP,N"[T oIebl
Ittrehods:!. amely ~1ő1 a mcsterokbltól örököl Egy ilyen okbllttn:lJozj$,lkor
U a fcbebtunk. hogy R~ghatirozzuk a nleMerokbl ConICfiIPbceHoIder '·cz&i6jebre
tll'10ZŐ Iart:llmal Exelct'n a ICfÜleleken kivm 'ICm fogunk ludni tarUlmal megadni.
AZI. hogy tgy A$I'.I\I::'T oId.1l egy ~cro/d.;Jhól örököl, ugy jelc7.7.0 k, hogy amikor
felvesszük az uj ASI'NI:'T o l(bll a projeklbe. egyszenlen bekapc:soljuk ~ &1«1 nw.ler
page (Mesten)ldal kiv:lIJs7.lh:t) jelöl6négyzl1e1 ( I~sd a 21.8. fucll).

MlUtin bek:!.p<3OIruk :l Selc:<:t m:o:;ler p;lge ;r:~UteI és :lZ Add (Iloubdis)


gon""" k21!inlouunk. n>C'Jlldt'nlk". SdeCI a M;t.'I1ef P~ge p:!.rbesz&b.bbk, IImdy
a 219, ilrin látható, Ez a p1~ egy l!SÚ1 jelenii meg". projt':k1brn ~"6
meterukb.bkrOl

Miuún kidJasz1<Xluk II n~eroldall, az ül ASP,!\'ET okbl leIVeli'l r\O!,ze1(,lx.., klszOrkílVe,


~nJ ~hel<5 taiUlomk/'rn LiIluIjuk ~ mc~{(~rokbln~k az ~ wd>helyl'e von':lIko--
:ro Wj:il (Lisd a 21 .1 ;ibml). A n>esrerokbl (;on1(...,lPl~cd loIder \czMliinek helytn
117,onban coninv (Tarblom) \~ '":lnn:ak. :m~k oI)":ln sZI~tkcSZ1.hc!.6 IcrOlctck,
.1fJId)"eknek a taiUllTI<I CS:lk az adon: A$P. "ET oktal", von;ukozik. A ConIenI 1ef(l~
kÖZ':"elIenül beirhatunk 5ZÖ\'e8ei, vagy '·cZl!rl6ket hútharunk Ide a TooIbox paletdr61.
I
521i IV. r6u • Nwig6ci6, fIIIIIZniI6k h, 'ill "lZoIOIIIk ...... dIl'"

--_
.--
"-
......-
-- .---
,--
...--- .="'-- --- E-:-'"
l --
.--
E-:-'"
--
~ '"...
,......-_-
-- --~--"""'

-- ---- :_-- -_._....


21.8.~
AZ 'íj ASP.NET oIdt</,urlt a mestcrokkr/lKlZ ""kJ ulmtQsn a Si.'l«I "iM'" page
jckJI6"~'Zd "'*"I~toaJ

21.9."
Az uj ASP,NET oIdt</ meslerokkrkJ",,1t lt/.dlauTáSI,

lia wvesebben dolgozunk II forr.is ~zetben, sajá! kezílleg l>e11'Vll 3 HTML k6clot ~
a webes vezbiőkCl. akkor k~elCflül fel fogjuk ISmerni egy ~erokblt61 öröklő
ASP.NET oldal k6diit (I~sd II 21.3. példit). Az első sorlJan szereplő <'(ji Paue b ulasitis
tartalmaz egy MaaterPa\leFile jellcmz6l, amely a mcst('roldal eléresi úljll jelöh,

Egy mesteroldaltól öröklő úf ASI'.N1:T oldalon 3 szolcl.-.os lffi1L-kM helyet! mindenhol


egy Content vez6i6 szerepel, ahol a hozz:> tartozó n=!eroldalon ContentPlaceHoIder
vczérl6 tal~lhat6 (2. ~ 3. sor). A mesteroldal egyes conte"tPlaceHolder vczérl6íhez
a COIllt"n! vezérlő Contclll.l'laceHolderJD lulajdon.'>ig:. kapcsolja" Content vezbi6ket.
l, .... P.ge 1Angu.. _"W' Ilan .. ~p.ge'Heo· ~/llaat.~P.. ge ...... t .. r·
_ A1Jt"Bv .. n~Wireup.·t .. l . . • >d"f.Lle~'LeqeI ••"K.vb' Inherit . . '!A9al·
_ t l t l •• 'lIntitlecl Pag'" h
2, <asp ,Content 11)0' Content I' Content P l.c.~o Id"no.. 'Cont "nt Pla",,~o1<l .. r I •
_ Itunat·'Server',.
3, <, ... ,I:Content>

Amikor a böngé:w5be qy oI)":ln okbk IbItünk be.:amely egy me:sleTOkb.h6ll\rököl,


akkor az ASP:\U-moI:or a megfelelő mesterokblt;uulm.:it ~-ew alapul. ~ uliÍn beOI·
\":iIWj:IO az ASP!'.U okbl Content ,e~ megadott kódot &; woebes ""zbl6ket
:il fllcgfeld6 meste,okbl Comenll>I:=-~ Vl:"~~ Mi\"el3 mesteroltblnak &;
az ASI'NET okblnak el az osnroI\"1SZI.ls:. akkor tOnbJik, :mukor al oldalt betöltik
:il bOngés.z~. u ~l~pul nolg:l.16 n\eSleroldal vál\ou.s:.i awnnal megjelennek at6le
0r0Id6 oldalakon.

Az ASP.NfT OIdIIIk Mm ves:zft«wk HIMIfI • ~, 1I11ÍkOf.." mntarol-


CIaIfÓI iiriiII;6hl. A ~ .....1-. . ~. k&1yvben ~ ~
nd.Ö<II9k ~ twl mesteroldalt ~ ez ASP.NET (401 ' 'hoz.

MOIIIév6 oldal beállftjsa mesteroldal haSmáIatára


Egy mesterol<laJtG ÖföldO új ASPNET oldallétrehozjsa megldret6sen egy,zenT: el~g
bebpoolni egy ~eleI, .!os ki,"ftlszIani 3 mesteroldaJt Annak a megvaJó5ldsa
vl5zont. hogy egy me~ b me5lerokb.lt nem h:oWdl6 ASP.!'.'ET okbl egy mesterol·
<lal!61 OrökGjOn. 'l::l.JI"IOIl mir nem il~'en eg}-szenl. Ahhoz., hogy egy meg/b"6 okbl
egy megll-v6 ll"IoQterokbJlóI OrOkölnes...en,:o kQ1.·ellcez6 két dolgai kell ,.I",pnunk;

• Fel kelj "ennünk egy KUterPIlgel'11e jC'11ern:ait az oldal <\8 Page \>
Ula$ítb:ib:l..
• Ltlre kell hoznunk ellY Content ve~trl6t a n>CSIeroJdalon szerepk"l minden egyes
Contentl'l:o<:cHoldcr '·eztrli'lhö.z. ts az oldal meglb'i'l HTML k6dj.l1 ts wet>es
,'ez&!6it ilt kell hel)"eznünk. II megfelel6 Coolent \"("zér\oSkbe.

Az d~ ~ eh'~ elés~· N)'lS5Uk n-q ou ASP.,'I:r.., oldalt. lImcly:o~­


olddtól rog örökölni, ngjd ";iluunk fun2s nézetre. Ez uOn vi8)ilk:lZ egmnuUt6t
II <\II Page to> utasitisr:l. e Í/lUk be, KasterPag .. Y, I •• Ezen II ponton meg kell jeI.en--
nie egy 1en}116Iistil13k, amely II projektllnkben ~k"l k(l1önb6z6 n'II.~emlWl~k:ot
tanalmal.U. V~bSSlUk ki a h;l..Sw lni kiv:im mCSlerold:ill. 6; nyomjuk mcg 3 TAlI b,llen·
tyűt. A v~gen:o <\II Pa<;j. b uusítilsI13k egy MIl.terpa<;j.. ru ... ·_' .... steroldal·
p,jj Ineve ' ~jú jellenQÖt kelJ Uf\;I.lngznj:o
A MltsterPageFile jeUemz6 mc~ utin az utolsó I~ egy Coment vezblő
It'lreho:clsa a mcsh:roldal eg}~ ComemPlaceHoIder vezf,rl6ihez, és a megfelelő kód
!itköltöllelé§e, Feltéve, hogy ~ mcglévő oldal fT1.ir rendelkezik tartalommal, én 11uliban
all teszem, hogy ki"ágom a ,,,ebe:; úrlapban 1~"Ő tart:dm:u, és beiUcsztem aJegyzet·
tÖ!nbUe. Miut!in eltj"olílottam a webe:; űr!apban nereplő tart:drrtal, törlöm a ",'ebo1dal
tdje5 L:irtalm!it a <ti Pa"" b utasít!is kivl-te](...·el. (Emlékezzünk vissza, hogy a webe.;
l1r1~p kódja a következi:!, <form runat=·8erver"~J Vl-giil az ASPJ'I'ET oldal tervező
nézel.ére v~ltok Az ASP.NEr okbl1l1051 mir a me:;terokblt61 örököl, ezért a rn'.~er­
oldalnak az egész wrohelyre "onatkowtartaJma nem szerkcszthel6k~m fog megjelenni
a tartalmi területek meUeIt. A Content vezl-rl6k létrehozl:!O\hoz IClUintsunk az egér jobb
gombjiv:ll a tartalmi teri1letekre a tervezi:! nézetben. és v:íJas5Zuk 3 Crt.':lte CUSlom
Content (Egyedi tartalom létrehozi53) menüpomot, Miut!in Jétrehoztuk a Content
vezi'rI6!. a IIl<.'SCfOIdaI egyes ContcntPJaceHokIer vezérl6ihez, menjilnk vissza a fOl"Tás
nhetbe, és nU90ljuk be a )egyzettömbben menteu k6dot • megl"ele16 tartalmi
területekbe

Hogy jobban megénsiik a mliköc.ltsi elvet, né;u:unk meg egy a valóságból veu péld~L
Kq,zeljilk el, hogy van a 21.'1. !ibrin Utltat6 oldalunk, és azt akarjuk. hogy a H.>8~e~­
p.tge.lfIIIster ~leroldalt61 örököljön (A 21A. pél~b:tn láthat6 kód a 15 fejezetben
szereplő egyík példaoldal tartalma).

21.4. példa AsP.Nlű .."nrl>Oklal


1, <'i Page ~n~ge.·ve' AutoeventWi~~~· f alse -
,>
_
,, CodeFile~·~e.8inqData.8SP x. vb" Inhe~lt.~"AcCeB91ngDGta·

_
.,
3, <~OOC'l'\'PE htru l'UBLIC "-IIW3CilrtrO Xlfl'ML l.0 T.anBlti""",lIlEN"
'http,llwww.wl.o~gITR/xhtm11/DTDlxhtm11-transitional.dt~·~

S, <h~ XDÜns . "http,llwww.w3.orgI1999/xhtml" >


6, <hea~ runat~ " 5erver">

1, <titl'o>Untlt1ed PaglK/titl .. ~
B, </head>
9, <I,ody,.
10, <foru I~'·[orul" runat'·Bervrr"~
ll, ~~iv~
12, <asp,SqlDGtaSource I~·SqlDataSourcel· ~unat.'s~rver·

13 ,
_ ConnectlonStrl~.·~'$ Conneetionstrlngs,connectionstring ,>-
Se le<:tCOllllllOnd~· SELECT • FROM [Book"l· >< 'asp, SqlDataSource>
It, <~9p,SqlDGtaSourc@ 1n-·SqlDataSou~ce2" runat~-ge~ve~"
_ ConnectlonSt~jno~·<'$ ConneetionString.,ConnectionString .,.
15, Sel""tC.,.."nd. ·SELECT • FIICWI [Booksl
_ WIlRRB (( [BOokID] <m iBoOkID) AND ! [Y ..... ~Publishedl
_ ~ iYearPubl1ahedJ) ORDER BY [Pricel DESC, [Ti t t"l·"
16, <Sele<:tPa~~ter8~
17, <a&P,pa~ameter DefaultValue.")· ~·"BookID'
_ Type~·lntI2- ,~
<aBP' P.~_te~ DefaultValue, '2005·
_ Naae,"Y.. arPubliBhed" TypQ,'Int32· ,~
19 : </selectPar~ter.>
ZO: <lasp,SqloataSOUrce>
21, <br I>
n, <aap,~rldView 1~'GridViewl' runat-'Berver'
_ AutoGenrrat~olumns~'FalBe' DataReyNa~B~'BookID'

23 : Datasourcel~'SQlDataSourcel'>
2(: <COlumnB>
,", <aap,BoundFlald DataField.'BooklD' Head~xt~'BookID'
- InaertYi.iblem'palae' R@adOolY~'True'
26: 5ortExpru381on 'SookIO' I>
21, <asp,BoundField Dat.Field~'Tltle' Heade~xt_ 'Tltle'
_ SortExpreuion,''I'itle' I>
28, <asp,BoUndFleld Datafield~'Author' Kea~rTextA'Author'
_ SortExpre •• ion. ' Author' l>
<aap:BoundFleld DataFleld='YearPubllehed'
_ H.. ade<1'el<t o 'YearPul>llahed'
_ Sort&xpreU1QTlk'YeuI'uI>1IBhe<l' I>
3 O, <aBp:ao.u.dField DataField='Prlce' HeaderTel<t.'Prlce'
_ SortExpre88ion~'price' I>
31: <a.p:Boundfield DataField='LaatReadQn'
_ Haad@~xt"La8tReadOn'
_ SortExpre.aion.'LaBtReadOn' I>
32, <asp,BoundField DataPIeId 'Pa9eCount'
_ HeaderText~'Pa9~ount' SortEXpre•• lon~'Pa;eCount' I>
33: </C:olumn.,.
H: <Jasp:GridVi...".
3~ :
~6: <Idlv>
37, <Ifona>
38, <Ibody,.
39, <{html>

Fl6s"lÖr is az l sorban SZerq>I6 di Page b UIMíúshoz hozzhdjuk a KIIsterP"ge-


fi le= ' ··JKlleterPlIge .!Moeter· jeJlernl6t. Ez utJn kiv:ighaljuk a wo:be:s ariap lart3lmát.
telL1t II 1 l. SOf b; II 36. SOf közötti részt, b; beiJleszlhetjük 3 Jegyzeu.ÖIJ'lbbe. majd
elt.1vo1ithatunk nunden 13rt3lmal aZ ASP.1\'ET oldalból az I. sorban lévő <ti Page b
Ul35ítils kJv&elhel. Követk"ZI'í k'pésként a terveZl'í !léZ<'tben az egér jobb gornbjj\",ll a
mesteroklal eg)'etlen tartlllmi teri:íletére kell kauimanunk, b; a emue Custom Conlent
parar>C'lOl v:il:':'ómnunk Ezeknek ~ lépéscknek az elvégzb;e ut:1n az ASP.I<-1:' oldal kódja
II következ61c:éppcn néz ki:

<'i Page LangUII<Je.'VB' KIIBterPa<JeFil~o'_/MasterPage.m5&ter'


_ AutoEv~ntW1reup=" lahe' C:odeFil,,~-~hult .up". vb'
_ Inherlt • • '_~hult" h
<"sp ,C01'ltent 10m 'C:onteM l" ruMt "_rver-
M

_ Cont,,"tPlaceKolderlD"C:ontentPLaceHolderl',.
'nb.p, < {up, Content>
A ,noJveletet aual fejezzÜk be. hog}' II 21.4. példában szcrepJ6 mentetttartalm.at
(konkrétan a ll-36. son) II Content ",ebe.; vezérl<"ibe !IÚ50ljuk
I
~ IV. rá:!: • NIYig6ci6, .....mi6k kIZ ".1" IZ OIdIIIk ..........."

Sokkal &gySlribb megoldani art. hogy egy új ASP.NET okIaI egy mesteroldaltOl
örökOljOn, mint egy rneglév6 oldalt egy mesteroldalra iIIapozni, ezért javaslom, hoqy
& WebIleIY fejlesztHének megkezdésekor Imzunk létre egy mesteroldalt. A meslll"oIdal
maradjon egyszvnl ~ én áhaláb8l1 csak IZ alapértelmezett CootentPIaceHokIer vezár\6t
SlBrepe/tel8m berne.
Amikor új oldalakat hollri; létre a wfl!~ áAíts" be, hogy mindegyik amestarol-
daltól Öl'ököljön. A késóbbiek során viSSRIérhetünk a mesteroldallm é$ ~juk
az egész webhe/yl"e YOnatkClz'lÍ kialilldtást. Mivel az összes oldal a mesteroldaltöl örököl,
aamnal tiikriimi fogiák a mesteroldallfissfté$ét.

Alapértelmezett tartalom közlése amesteroldalon


A mest ..'1OIdalon lé\'6 ContcrnPI'4CellokJt.r vezérl6k jelölik a S3b1onnak azokat a részeit,
amelyek oItblanként külön ~rkt!Sztll(."I6k. Eg)' mestcn;>ldah61 ÖrI:\klO5 ASP NET oldal
1Ita15oon tcsIreszabj;l eZt.-ket a teriiletcka. fttronyos köriilmények köti\« azonOOn
egy okbl Ietle1. hogy nem akarj:i elvégezi egy adon ContentPt;Jcd loIdc.- ten11el t~­
Insát. mlclbb \l31:mrilyen. a mesleroIdalon megadott alapénelmeletl értékre
támaWodn:J

Képzeljük el péld1ul. hogy a minden oldal rejlé<::ében megjelenített Wel",,,,,,", to


My Website i dm helyett nt akarjuk, hogy minden old:lltcstreszabhassa ezt a dme!.
G)llmítjuk azonb:>n. hogy u oldalak többs{,génck nx-gfelela Welcome to My Web .. 1tel
szöveg. Ennek mC!!,':IJÓ5ítfisához eg)' Conte-rJtP!acdlolder vezérl6t adhatunk
a fejlkteJillethcz. 6; mcg;odh:ujuk a O>nlcntPlaccHolder alapértelmelettl:nékekém
a Welcome to My website i dmCI. Ez ut;\n az en61 a meslcroldaltóJ örökJ6 ASP.NET
oldalakon jelölhet jük. hogy az oldala mesterolcbl alapénelmezetl lartllhn.1t ha5ZlÚIj:;>,
\':lgy megadhatunk sajit egyedi unalmat. Ann:Jk bemutatására, hogy miként adható
meg egy mcslcrold:ll ContentPlaceHoIder vezén6it'hez alapértelmeZeti érték. hozzunk
létre egy DflfaultE><ampl".nluter rlC\il új nleSlcroldalt. amelynek aZ elrendezése
megegyezik a Mast.torPage .....st.r nevtT korábOOn létrehorocl ~eroldalb",d.

A MasterPage ..... ster mesteroidal tart8lmának B DefaultExample ,,,,,,steT


masteroldalba ~al6 'l'(OfS jtmásoláséhoz vi!/tsunk BMaBterPage.rMAter IeMtzó
nézatéfe. majd jIllÖljiít ki az öwes t.artalmat IZ Edit menO Select AlI parr.c:siWaI.
Miután mindent kijelii/t(ink. v61aSszuk IZ Edit, Copy parancsot. tétjilnk viSSlB
a De fau ltE,,~ I ... "",s t er tervez6 fIllzetébe. jeliiljúk ki az oldal teljes tartalmél.
vtWass.zuk IZ Edit lTI8flÜ Paste parancsát. és mAris 'tmásottuk IZ egyik meslefolclal
t.artalmAI egy másikba •

... Detaul tExample."",ster 0Id:l1on ""gyünk fel egy .rnsodik ContentPlacellolder


vezé!rl6t a fejl&;ten11etre, elt1\'0I1t\13 a wel""""" to My weruoite! szövegel. Al: lij
ContenU>laceHoIoc'1" vez{;rl6 ID tulajdons;1.g!inak adluk ~ HeaderRegion &tt:ket.
Úgy adhatunk meg alapértelmezett éfték.·, a HeaderReglon ContenlPlaceHolder vczérl6
s;tinÚr:I, hogy felvesszÜk a~ ~13.po:"T1elmezcu ért~kCl 3 ComemPIaet>llo!de-r vez6iőbe,
hasonJoon ahhoz, a/.ogy e2;l egy ASP.NEr old:ll e:;CI~ben lennénk egy adOlltl!'talomlC-
rület te9re~z:iI~S3kor. Mivel aZl ak:lr)uk, hogy a~ alapénelmezeu dm 100':Íbbra is
W"lcome to Ny Web .. üel legyen, gé'pdjOk be eZI a növegCI a rejléaeriileten Itv6
ContentPlaceHoIder vez6i6bc. Ennyi a1. egb;7,l

Alapértelmezett vagy egyedi tartalom használatának beétlftása


ogy ASP.NEl oldalon

Egy m...~kblt61 őrökl6 ASP.NEr oldal eldömheti, hogy egyedi tartalmat ad mcg
egy mesterold:ll-terilICl szárrdrd, \':Igy a mesteroId:ll alapértelmezett lartalm.1t használja
az adol:! terül ..."!en, Ennek szeml~ltetésére ,..,g)ilnk rel most egy úi ASP.NET oId:lIl,
amely az imént I«.rehozou Defaul t&x4q>le .!Mster Qld:lhól örököl. MJvel a mester-
Qld:ll két Contentl'lacellolder vmrl6vel rendelkezik, az ASP.NEr old:ll tervez6
nb.Clében kéllartalmi terülCICI fogunk LilnL Hasonlóképpen. az ASP_N!:., oldd k6dia
a13pértelmezés szerinl két Coment veZérl6t tartalmaz:

<til Pag" Unqua\le'·VU" lt. . terP"\I~Pll_.--/Def"ultE><"'"I'l e ._ater"


.. ....utOEv.mtWireup.· fahe" Code"! 1_. 'OehultContentT".t .•upx.vb"
.. lnher1t._·D8~"ultConteneTeet" tit1e."untitled p"ge - h
<"Bp,Content 11)" - Content l" Content Placellol<ler ID. 'H""derRe,rion-
.. RunU·"Serv"r-~
<I asp, Content>
<up, Cont"nt ro· · Cont'lflt2 · Content phceHoldenn. 'Content Place Hol<ler I •
.. Ruruot, ·Server·~

., 'asp, Content>

Ahhoz, hogy a ffit.'lSleroldalalapénelmezeu tartalm11 haszn1Jjuk egy ter\lk"!L"1l elfledi


tartalom helyCl\, el kelll~volítanunk a Jtozú tanoző Content veztrl6t lIZ ASPNET
oldalról. 11:1 az :lbp€rtelmezeu tartalmal akarjuk haszn~lnl a fejlécteruleten, egyQ:enlen
löröljOk az els<'! ComenI vezérl6t. :l.ZI, amelyiknek a Cont"ntPhc"Hold"rlD értéke
He ... d"rReg-lon. EZI elvtgez.hetjük (igy. l.ogy saj;ll kezmeg töröljük a veZérl6 ködjjt
II forris né~n. vagy úgy, hogya tervero nézClben aZ egér jobb gombjival
II szerkcszthCI6 tenlletre kattintunk, és II Default to M:Ule($ Content (AllIpénelmezett
umlorn a rnesterold:lIr61) par:lnCMII v:ílasztjuk. Miut:in elt~"oliIOUuk ezt a Content
vezérl6t:lZ ASI'J\'ET old:llr61. az oId:l1 a mesterokbl alapénelmezcu tartalnút fogja
ha.o;w:l.lni (WelcO<lle to My Webnitel).

Ha " továbbiakban nem a mesteroklal alap4rtelrll8lett tartalrnát abrjuk hasmák-oi,


hanem egyedi tartalmat akarunk lélrllhomi III OkIaIlOl. vissza kel helyeznünk
8 Contllllt vezéri6t Ezt megtehlltjiik SaiáI kezíileij a 'orrás nézeten keresztül, vegy
a t9fWlÓ nézetben III agé! jobb !IOfllbiéVal II tartalmi teriiletr& kattintva és a Create
Custom Conltml.jEgyedi tartalom létrel!ozásal p8llWlC$ot váiautva.
532 1 N. rál- Nlviolci6, fIIIIuI" kIZ 'II'" IZ OIdIIIk Kandezm

A mesteroldal forráskód részének módosftása


II mcstcrokblak minden olyan képességgel l'Cudelkemck. mint a hagyormnyos
ASP.NIT oldalak Ez al;\ ;elemi, hogy szerepelhetnek r:I~uk webes "eztrl6k és :Statikus
HTML kód. II me:StcroldaJ verertői begyűjthetnek a felhannál6kl61 informáci6kat. v:lgy
kinyerhdnck adaloot l'gf ad:uf0mi:.b6L II Mesler04lalll>lmJOzása címl! részben I~­
rellOZOII ~"roldalon pékUul Sile.\iapDataSooJrce és Trt.-e\-iew \"ezérlők ~ltek,
alflClyek egy webhelyt~kép alapján kérdezlék le és ;elen;lenék meg a webhely szerke--
zetét:, de olY'an vezérl6kd is houbdhattunk \vlna. amelyek feUlaszn~l6i adatokat
gyt1jlenek. II felhaszn116i fiókok ha57;nillat!it t.1mogat6 oldalak pél~ul gyakran khetőo,'é
teszik a felhaszrul6krutk, hogya webhe1y bármelyik oldalán belé!*nek. Ev. a swlg:IJ-
tatáS!. úgy val6síthatiuk meg, hogy egy Log," n·z6l6t veszonk fel a nte;teroldah"

II wcbc5 veztrl6kön ('$ a SCIukus HTML kódon kivül a mesunoldal k;:s.zoIg~I60Iw.1i


forr.l.sk6d résszel is tendclkezhd. Ez a forlisk6d tanahnazh:n rncsteroldalr:l fdvc(t
,,"ebes ve1.érl6khöz l:moz6 eseménykezel6kct, vagy olyan kódot. amely a mCSleroldal-
tól öröklő" oldalak minden megl~logat:1sak()f lefut. A ITlC;';tl-roldalak kiszolg;'iI60ldali
forr.l.sk6d té,;zének bemutatása érdekében hozzunk Itlre a webhclyilnkÖrl egy (jj mes-
teroldalt Cod"o..no .lMster n€:ven

..
......._
~,," _... .
........
~.~

.:).
-----_ ...
'"
.,.
.... ,.
- .
--"

-
21 .10. 6In
" mcslcroldallrArnm u'l'h<>s ,el#& lartal"""", "ID' lAbel. "8)' TextBox I!s <'g)' Bjj//(m ,.-zL'J'IIJt

Erre a mesteroldaJr~ el6ször is vegyOnk fel egy Label verertÓl, amely megjt'1<'11;t; az ak-
tu:Uis dárumol ('$ id(';t. ""Iamint adjunk hom ol)'ltn k6dot. amely inlerTll.-1.'" kcre:sésl.
tesz lehct6vé a webhelyen . Kezdjük a [.abel \'e2krl6 hoz:cla~~v-JI, amely az akluáhs
21. ón· "....l8Ie...' , , ~ 1lew'R't'O~ WWnYeS okWnblollok16bei'lollidnl 533 I
dlitumot és időt fogja megielenít"ni. Ezt a "e~érl6t a CootentPlaceHolder ve~érl6 fden
helyezzük cl, töröljük a 'l"ext tulajdonslgJt. és aZ ID tula~gának adjuk
a currentDate'l'lme értéket. Ez után gépcljllk be a Se .. rch SZÓl, majd vegytlnk fel
egy TextBox vezérlŐI, ~z ID tul3jdonság:\1 se.. rch"l"enn értékre á1Htv~. Végül adjunk
a TextBox uún egy Hunon vezérl&. amelynek ID tulajdonsága btnSeuch, Text
tulajdon5<'iga pedig Search. Miután clv(:gcztilk ezeket a lépéseket, k!éperny6nknek
a 21.10. :llrin l:lthal6110z hasonlóan kell kin(;znie.

MiuÚn ezek a vez~ a hel}illm: ken1hek. készen állunk a meo:terokbJ kiszolVl6oldali


forr:isk6dj1.nak beír15<'irn. I'.I65zör hozzuk ll'u"e a pag'U.oa.d ~ykezelÖl. ~
kezzilnk vis/sz:l. a 2. leckében tanultakta: a PII."e_Loa.cI CSC1n6>ykezelő az oldal nllnden
betöltést-kor lefut. Ebben az ~ykel"1őben fogjuk a currento..te"l"h,e Label
vezérl6 Ten rubjdons:igát az akru.ilis dlitumrn ts id6re álliumi

A p .. "e_Loa.d cscmtnykezel6létrehozás::\hoz kattintsunk duplán a tetVező rrezetben,


vagy váltsunk a fom1.sk6d részre, ts a baJ oldali lenyo16 listából v:ilasszuk a (Poge Events)
eI<met, a jobb oldali k-nyo161ist:ih61 pedig a l.o<Id esem(;nyt. A PaoeJ,oad
~nykezel6be íríuk be a következő k6dson.

currento..te'l'looe.'l"ext ~ 'It ü""", " " Date'l'iIooe.NOW

lla a felhasznál6 beir egy kifeJCz6.t a keresőmcz6be.és a Sc-~rch gombrJ. kattint.


vis.~Z<lcsatol:1!; kőwlkezik be. (;s elindul a Huuon \~:rerl6
crick eseménye. Ebben
3 péld:lban a felhasznál6 s~m.if3 a webes keresbl: a Goog!e hasudlat~":d bizt05ítjuk.
Ez ugy érhet6 el, hogy a felhaszn:ilót a http://www .gooole.eOlll/8e.. rch?'1~ker .. •
IJ"Ki fejeztJs ámre ilinyítjuk. Ehhez Il:trc fogunk hozni egy ~n}'kelel6t .. Hutton
Cllek eseményéhez, majd a Response.Red.ire~t (url) hasznjlatj,,:d .. felhasz·
n:iIÓl: a Ooogle oIdal~rn kükljOk, a 1ckérdez.6 karnkterlánoon keresztül átadva
a kcresőkifejezést.

El6sZOr hozzunk I~re egy esemmykc7.el<'it a Button ,'czlIrl6 Cliek eseményéhez.


Ehhez kanintsunk duplán .. BUllon vezérl6re a tervez6 néz<'"I.ben. vagy i"löljük ki
a megfelel6 vezérl6t és esembl}1 a fQfl"á5k6d rész tetcjm lév6Icnyll61ist~kból.
A:l. eseménykezc161étrehozisa ut jn írjuk be a követkcz6 kódl;on:
Re.ponu . Red! rect ( "http://,,,,,,,, .;0001 ... <:0<111 Bearch ?q'. , BearchTerm. Text)

A 21.5. példa a 1llC5terokbl tel;es forr.i:sk6d részét tanaln'317.l1.

l: Partlal Class Cod.. o..mo


2, Inh .. rlta Syatem.W.. b.UI.lIan"rPa<;ltl

"
.: P~otecte::l
-
Sub Page...,Load(ByVal .""der As Ob:lRct,
ByVal ...... Syatem.Event"'r;a) Handl". )(e.!.o.d
5: currentDl'lteTi_.-r..xt • "It iB nOW • 5- DatO!'Tl ..... _
6: &!ld Sub
S34 lrv. réu • NIvig6cI6. fllwszniók kW 'hl" WOIdIIek ...odwll·

"8, Protectll<l Sub btnSeard._Clicl«ByVal ~ender}.JI Object .


• ByVal e .... Syst.... ,EvenUrIlB! IlIondle. btnSearch.CHcl<
9, lIesponse .Redirect ( • hup, " www.\lOOIIle. "0101 ae.. rch?'l~· •
_ .. earchTerm.Text!
10 , End SUb
ll, EndClau

A Google l:eresól arra is hasznélhatjuk., hogy ~ a wabhelyünk oldalain keressen,


ha a lelhasm616 6/taI beírt keres6kWejezé$ eW: a 8i te, ~ .. j"tT.. rtOll>oÍny.
karakt~ot fiimit.. Ha PéIdjUI csat. I www.YourSite.coaowebhelyenakarjuk
al uneh kifejezést keresni, akkor ezt • ht tp, I fwww.lloog1 ... c","'
a"lI.reh?q_sit .. ,..,....,. YourSi te. c .... lunch URL használatival tehetjük
meg. Igy IehetM tehetjük a Ie~ak. hogy c&al: a webhalyen belül
keressenek laz egész Intllffiet hety9n). ha megvbltolUltjuk B 21.4. példa 9. sorát
a köwtkelÖképpeo: lIesponse. Redi>:"ect I "http , flwww . gooqle.c".,1
",,,arch?q.aite ,"<NW. YourSite.coaH · & ",e"rchTer1ll . ~xt!.

A mesteroldal működésének ijpr6bálésa


M05lanra c1k6zitettilnk egy oly"" mesteroldall, amely megjelenTI; a7. akmáli!; dilUmot
fs iM. val~monl egy fdOlelel. 3mely w<:be; keresobI \1!5~ \... het6vé a Google has<:lÚ -
la!:ival. S:lin~ még el6!\i1nk:\1I a felad11. hogy klp!"6báljuk a meSlerolda\ m\lköd6ét
...gy böngbzőben, Ehhe~ Il'tre k.. n hoznunk eg}' ASP,NIT oldalt. amely t'!t61 aZ uj
me~leroldJJt6J örököl.

M06I hozzunk létre egy ui ASP.l'o'ET oldal!. n~eroIdalaként a Codeo.m.:. .... ner oldalt
használ\'a. Az ASP.NET Contem terúk"ll're \'eg}'Ünk fd egy rövid fülsWwgeI. majd
töll.SÜk be egy böngész6be. Ahogy a 2 I ,11. ibrln l:ithat6, n oldal megllitogatiSilkor
az akluáli'! lÜrumot k id6o: fogjuk látni a~ oldd tete~n TCMibbá. ha beírunk egy kere-
s6lcifejezkt a növegmez6be, & a gombn kattintunk. a Googfe erre adon tal:il3taihoz
jutunk. A 21,12, :ibmn egy feLhas<:n116 böngész6je Ilthat6. miuLin beírta a SCott MitclU!lI
kifejezést a kere0;6mez6be. és a gombm kattintOl.! .

- "
. ,"" -e

n._. __.. _ .... _ .... 21 ,1 1. . .


/I" OIdnJ /Nejb/ .. Z ..Ill/w/is
dót"", és ld5}<'ImtUt ""'8
_- ...
.. ...
. -' co) .'1, - "- ('l

--- -
Google -
__ _-
......- .. ....

... _.
---
... _._--,
.... "" ...
~
--_-
-- - ......-..... ... _
r... , , " _

21.12. ÍIbrI
A frIhaszniű61l brfrhar-

-
"ak <'R)' IlereJ/Rt{fejezhl.
és a Got:Jsk WOIlmh,>,"
oIdokfra J.crr2J"c4

Összefoglalás
Egy webhely ~hoz.isakor a tef\'ez6k arra Imkednek, hogy az összes oIdalll>egie1e-
nése és mlThödésl módja megegye:o.<'ll. Ez t"g>'~ ~z(neket és benlKet, és közös
relhaWIálói felületi elemeket jelenI. A tervez6k többsége pé:ldáuJ arra l&el=ik, hogy
a wcbhely minden oldalán eI~rhet6k leg)'enek a !Uvi~ci6s és a bejelenlkeztssel
kapcsolatos vezl:rl6k. Egy egys."ges, :lZ egész webhelyre vonatkozó SZerKel.el megvalósi-
tása az ASI'.I-1:í-bcn a mesteroldalalmak kÖlQ.Önhe'tőefl ~rekji~k. A Ille5leroldalak
mind az eg($z webhelyre érvényes feJllll.SZlÚlói felületi elemeke't. mind pedig oldalaIl-
ként egyedileg lestre:SZabh:otó terilleteke't t:llt:tIm.1Zn:tk. F.zekl"l a szerk=het6terule'teke't
ContentPlacellolder vettrl6k ;el~k.

Miuuln elkészült egy me5teroldal. egy ASP.I\'ET oldal örökölhe't en61 a mesteroklaltól.
Ez úgy valósítható meg, hogy kr.. ;lJa~Zlunk egyet a webhely mesteroldalainak lis!;'Ijib61,
amikor felvesszilk az ASP.NliT oldalt a projektbc. ArnikOf egy ASP.l"ET okIah egy mes-
tcroldalllOz kapcsolunk, az ASP.NEl" oIdall':l egy-egy Contem vezEr\6 kerol a mesterol-
dalon 1(",6 egya CoruelltPlaceHolder vez&16khöz k:lpc$OIVlI. Amikor az ASP.NEr
oldalt betöltrk egy böngész6be, az ezeken a 5Zerke'!zthe't6 teroleteken elhelyezCf1
tart;IIom Ö5S7.ro1\":ld a mesteroldaJ tartalrn:lval, M""el a rnestcroJdal és al ASP.NET oldal
Ö5Szeol\'asrusa az oldallek~r(,:;ekor tört61ik , a mcsteroldal minden v:iJtoz,i sa autOma-
tikusan és azoonal tükröWdik a mt'Sleroldah61 örökJ6 oldalakon.
538 1N, r6I:Z • ~ig6ci6, fili .M ka' II. i il IZ OIdIIa. ... ·""'du

Ahogy;l fejezel foJp.run I:1thllluk, ~ Vc<ual 'X'cb IXovelopcr gazdag liÍrnogatlst bi~losíl
a mesterolda13khoz, Egy mest"rokttl lt'treh'Ozás:l megegy"zik egy ASP_NEr 'Oldal I&r,,·
h07,.:1~val. b tel~ egé:;zében elvégemc:t6 a tC1'\'ez6 nézelen keresztOl. Amikor
egy ASP,NET old~1t egy n\eMeroldalhoz ka]XSOlunk, a te ..""z6 nézet kiszürk:ít\-e jeleníti
meg a mesteroldalnak az egész webhelyre vonalk'Oz6lanalm.1t, jelen'e, hogy 9Z nem
m6<lo5íth~t6 ~2: adott oldalon.

Kérdezz-felelek
K: E,g)~"Ú5ba ágyazharQR a mesrrTOlda/ak' Azaz (JrókIJ//jel egy mesrr?roldal
I'g)' ",,1.1"2 ".esleroklalr6l, /'" pékllÍlIl azt ak"'jlll:, hog}' egy s:n1l5 meswroldal
haláro=rm "'CS "ID' n(Ig}'O'J mugas szIm,', azcgliu u'C/.Jlwlyre kfterjtxf6
megjelenésI. a wcblJely InllOnb(Jzó r@zeim,kln,!alakjátpedig"lP'oI)'<III, az at/oli
réu-..... '!O!Ullkozlj sablo,J szaMlyozza, a me/y bfzonp dolgoknt a szil/5
meswrold,lftál(;n'Jk(JI, de w!lJálly beállítást <lZ adOlf részre <'gj'('(li/CS Jmuíroz
meg? l'm ilyesmire ",{Xl?
v: 19f'fl, a mes!eroklaJak ""ID'lTlisba tigyazhalók. Az egymásba :Igpzou me5Ieroldala k
<"S(;[ében a ..gyökérrneseroklal " lanalmazhal ~rrMl kódot é5 webes ""zérl6ket,
valamint ContentPlacel101der vezérl6kec. A gyökcrmesteroldaJt61 ÖrÖkJ6 mester..
oldal CSlk Conlem \"ezéri6ket I3nal"",zh:lI. ugyanúgy. ahogy egy me5leroklall61
örökJ6 hagyom:lnyos ASP,I"El" 'Oldal. M.ndawntilt::d a Content vezérl6kön belül
lehetnek tov:1bbi Contentl'laceHoldcr '·ezérl6k.
Al egym!isloa igyaZOlt mestcroldalakr61 b iltal~b;,n a mesteroldalakt61
a h e t p , Ilodeeocode . cOIQ/ .>.niclea/ 4 19 . asp" címen (M"-!tcr PQjJf!S l"
ASP.A'ET 201, valamint a MiCfOlSOft hivatalos mesteroldalakkal ka]XSOlalos
dok.umt'ntici6j~\)"~n , a h tt p: // .... dll2.mi c ro so ft .com/ en -us / libra ry l
18a,, 74 56 l .. n US . VS . 80) ... a p" címen tJlálhat6k tov!ibbi infom~ct6k.

1. Mi a ContentPbceHolder ve7.l:r16 szerepe ~ mesteroldalakon?


2, . Egy mesteroldal nem tart~lmazh::'1 eg)'néltöbb ComentPlacel-lolder v"zérlŐl'"
IS:U: \"agy h,,,niii?
3. l>IIJyen tJrtalommal rendelke~ik eg)' ASP.t'ooTI űJcbl, ha úgy 1llítlUk be. hűgy
egy mesteroldalt61 őrökőljön?
4. Milyen lépések elvégZése S2;Ükséges egy olyan ftj ASP_t..:ET oldd létrehol.ás:1h űz ,
a mely egy tneSterolcblt61 örököl'
5. !>hlyen Ifpkek. elvégzése szü~ges ahhűZ, lIűgy egy !TÚr megl(,v6 ASP.NEl" oldal
egy ~leroIdaJ(6J őrököljön?
6. I logyan érjük el , hogy egy ASP_t..:ET oldal a mesteroldal alapéftelme7.ct1 tartalm:!t
hasmilj:l eSy adott területen?
1. .A mesterolcblak laflalmazhatnak kiszolgálóoldal i f~6d rba. ' [gu vagy hamis?
Válaszok
l. A ContcmPlacellokk... ve:z~rl6 a nleSl.erokbl egy olyan ter(llelC't jelöli, ahol
a Ineslcro/d;llt61 őrök16 ASP.N"'T okl:tlak megh:ll"rozh:llj;ik a t:lnalmal
A meslI.'roIdal többi rhzét nem s~eszthetik a l61c öröklő ASP,NEr oldalak.
2. llami._ A mesleroldalak tefSZ6leges számú ContemPlacellolde, v,,~6t
tanalm:r.zh:unak
3. A rneslero!dalakt61 örökl6 ASPSIo, oldalak egy hil"dtkozáSl l:Irtalrrull.nak
a me.;\{'roldal,.~ <ti Page b Ulasíúsukban (konkrtbn: MasterPa'l"-
File.' He,.ter"ldalEl~r~"i.ÚtjB · ), ,-a!3mint egy-egy Content vezérl6t
a meSleroldal azon ConlemPlaceHolder [cnJlC'(cihez. amelyekhez 11. oldal
s:lját értékel akar rendelnI.
• . Ahho~ hogy egy újonnan Il:trehozoo ASP.NET oldal egy mesICroIdah61 örököljön,
aZ Add N(,w hem párbeszédablakOOn Jév6 Sek'CI maSler page jelöl6négyzetel keU
bebpc5QlnL E.t lislit ad a projektben lévő meslcrolclalakról. "honnan
kiv;l.laszlhatjuk azt, amelrikto5l aZ oldal öroköl.
5. lia van egy meglév6 ASP,NET oldalunk, ~ azt akarjuk. hOlgy az cgy meglév6
mesteroldall61 örökö/jön, akkor el6ször vegyük fcl a megfele16 MasterPllgeFiIe
jellcmWI ~ dV. pag .. b ula.sitásba. m:aid cseréljük le nokbJ k6drés>:él
egy Conlent vezérlőre a mest.eroldal minden egyes ContentPlacellolder vezérlője
csct&n. Ennek a ~nek az elvt~vel kapcsobtb:m a Mcgkit'Ó oldal
bOOlI,-,úsu rm'SlL'roIdalllasnllilallJm dmtl r~ tal:l.hmk uppekl'l..
6. Egy rneS!el'Qldaltól öröklO: ASPNET oldll clönlha ~ mcs/eroltbl alaptnelmetel.\
Lanalm:\nak a hasznJl:lIa mellet\ egy adon ComentPbceHokIeT esereben. Ehhez
elég eltávolítanunk az ASP."U oldalnak azt a COl1len\ vezérl6j&. :unel}'ik
megfelel annak a COntentPlaedlolder vezéTI6nek, amcl)',,~1 az abptnelmczett
lanaltrull akal'Juk hJ.s7.,,~lni. En mcgleh.:,tjOk ugy, hogy !\aj:\( kel.il1eg elt.:ívoliljuk
a COntent vez(,rl(k a forrás nézetből. ""-gy ugy. hogy a tervez6 "életben az egér
jobb gombjj,... 1 a OJ!1tcm területre kattintunk. !!os a Default to M3.5Ier's Content
pllnlnC'WC v:ilaszljuk.
1. Igaz.

Gyakorlatok
I. AZ elO:ző ócioon megrn':l:Iük, hogy:In v:.IÓliithat6 nH.'g a felhasWl6i fiókok
támogatása egy ASP.NET webhdyen. Az iI}'en webhclyek esetében ~ltal~ban
kmönböz6 felhasZIcll6i fiókkal kapcsolatos 1Vebe:; vezérl6k szerepelnek minden
egyes oldalon.
T6-jOnk vissza n elO:zd óf:l példáihoz. és hozzunk létre egy olyan rneS!<.mdllt,
amely rendelkezik egy fejlecterülettel, egy baloldali teriilettel és egy f6 teri!-
lettel. A fejJ&teriileten jelenítmk meg a ,",whely ci~ es ~ LoglllS\alus vezérl('\(.
(Emlékezzilnk vissza. hogy a loginSla\us vezl'rl6 l'gy Login hiv:.tkozht jelenit
meg a néVIden. b egy Logout hivatkozást a bejelentkezett felt1ll5z!Úl6k
szlnclra.) A baloldali terOle\en h3nn~ljunk egy LoglnView \'ezér\6l:. A \'ezérlő
Anonymow Tempbte sablonjiba helyezzünk egy Login vezérlŐI. Logged ln
Tempbte sabloni" po..>dig jelenitse meg a Welcome bad.. {elhttsznillónl!v
SZÖ\.eget és egy Logout hi\':nkoú~. A 11.13. ~bri.n a me&erokblunk ~Ilal
me~r..al6sítand6 webhelysablon vizl~u látható.
Mllldn l~rehonuk ezt ~ one5lerokblt. szánjunk egy percet a wcbhely meglévő
oklalainak :italaklt1s:1r.l, hogy ett61 a me5lerold:llt61 örököljenek. tov~bW
hOl.ZUnk létre legal~bb esy olyan űj oldalt. amely e\161 a mesterokblt61 örököl.

Fr ' .. "

..........
w_ ....

--
•• 6016.,.
.. /0"'1' •
.

--"'~
ho. ' ...
~m"",
.. "'.1 21 .13. "
1\ rlWhcly hArom lenlll'tl'l
mntllnItU
V. RÉSZ

Webes fotóalbum készítése


az ASP.NET segítségével
22. óra A fányképalbum.alkalmazás tervének elkészítése
23. óra A fényUpalbum-alkalmazás alapjainak felépítése
24. óra Képok feltöltése és megjelenftése, illetve meg!&gYZásek lrása
22. ÓRA

A fényképalbum-alkalmazás
tervének elkészítése
" I«kt' lartal",ából.

• II webalkall1lacl!iOk :iItaLinos teIVcresl m6djiruk ~nekinltse


• 1\ webe5 fenykép;lJhuffiffi:l1 klIpC50L:U05 kövd<.'lnw;nyek
• Több ~bl3 haszn~la\a egy mtb:)ziwn
• II ftnylltpalbum·.. lblm:ow 3I;btrnodell,.:'
• IdcgcnlrubmegszoriWok él Jelent65égilk az; ad:ul;g= k/)1.·c:tke~~'nek
-""",,,""
Az elmul! 21 Mb:," me~ztilk több oI)'ö1n külön;illó febtbl et\'égzésének m6dj:il.
amelyek gy:..kr::m el6fordl,lln:r.k egy ASI'."U wclJhoel)' esctofuen. 1\ 8. fejezetben Oqvil.s·
~huk, hogyan jclcnlthet6 m....g dmam,lrus 5ZŐVeg egy weboJdalon a lal,..t él a I.Jleral
vez&lllk haszrU13Liv:1I II 9 leckél61 a 12. lecké'is arn O&Zponlosílottunk. IlOfJY2n
gyirflhct6k adatoll ,,'ebe! O'rl..apokon kerezltil, TextOox, [)rop[J09.11W1, lbdioBunon k
CheCkBO:Z: tipus(i n:ztrl6k haszrUW,..1. Azt is Uuuk. hog).." bi2losilh:u6:1Z aWlok
tn·tny~ az ellcn6rz6 '·e~.
542 Iv. rMZ · WllbaIoúllbnlIJútIIlIlASP.NETMftáp"

A I.~óril61 .. 18. Mig az ada~ I~bul nzsg1Jtuk, egy SQL $er\'ff 2:005
EJcpness Edmon a<bdmis ~tÓI &; stCfkezrt&rl meghaurotis;dól kcuh'~
az ~lMusb:It1 UlálhalÓ a<btok ASP_t\"ET okbbkon \-:016 n~, surlces1.:l~g,
~r:1.diS és l~g, Mcgné-zIilk, h"SY" SqID'.lla5oum: \~ hogyan btzto.sill3
az:«btok eg)"szenl eIereSel é5 rn6dnI.il1s.át, és hogy a Grid\-Toe?>- /!:5 Oet:IiJsVi~"" vezM6ll;
I~n leszik g)-~j:íttkká az :tWtok ASP,NET oIdabkon tÖflh16 e~ A !qjut6l>bi
h~rom leckében oI}':1l1, telje:; webllO>lyekre \'O[,Mlkoző doIgoIckal fogblko~\lnk, num
a \\'Cbhelyffi on.l6 n:.vigici6, ~ ug.~8 6 3 m'.'Sterold,lak

Megismentlk ug)'OIn az A5PNIIT ró jellemz6it, de az még d6tnlnk ~lJ, hogye;uoknek


3Z alapel\eknclo: az alkalnudsii\"all.::trehouunk egy teljes, mllköd6ktpes ...ebhclyct
A kOnyv befejez6 réS7bIeIC ~.Iöz a dlja, A kö.:ctkez6lúrom 6r.ib:ln a nulUroI fogunk
létrehozni egy ,,-../;>es fo!Tl)'kt'p:l.lbum·alkaJnutist. amel)- 3 felhaszn;il6k &; képek lIdau~_
illen'e a fdhaw-úlók ~'soeIt egy wthb,wn tároIja_ A ""ebhely ÚrllCIfPlp m;ojd
~ fdlJa.SZn116i foóko.k.:ot, felh:os:udJ me:sterokb.bkat, \-:obmiru OIZ ASP :,·arr ""ebhri)"
n:lngtci05 5ZOIg;1Juúsail is_ A GridVie'A &; a Oet:Ii!.s\-oew \=trI6kct sok oldalon
luszrUljuk m;ojd, SqlTh1l3Source \'ezéri6kOn kere:m.ül eIM adatok nlt'gjCknil~ és
l1lÓd05it.;i.sá",_

Mondffi ül az eM lépkscl kezd6dik. Ebben" leckében el6ször i5 megh:lctronuk


a projekuel k"pcsolal~ elv~r:1sok:41, és létrehozunk egy "datb:iziS! ASP.1';t!T okl:llak~t
ttnylegesen l&rehozni csak a kÖH:tkezó Odban fogunk

A tervezési folyamat áttekintése


Mmden kicsit iS összeteucbb fel:lo<bt n('1ll' tervelkst igm)"el, midón dkezdhctnblk
\'q;nehapru "",pl a febdatOl Amikor hiut tpílOnk. az épil/!:5z e1k~1l a len'eket.
a fóldmh6k meg\"ll.Wilfik a t...-.:pet, &; tnmJOkOk gonOOskodnak anól, hogy
a k",~J"-S1.:Iou :lbpan)':lgok megfelek5ek Iqo.~. Ez a fol)-:omal hónapokig \"SY akJr
b'eklg is elurth:u, k megelőZi az elJ,(5 légb Ierakú,11 \-:ogy ez elJ,(5 szög be\e~.
Senki nem 3k<1r oIpn házh.l.n l~kni. amelye! minden előkészítés ~km tpílel.lek. k
amel)"nek ten:tr6I at abpok Ier-~kisa ~ a fabk felhúzása közben döntÖ!lek

A webalblmaUsok többsl'#OCk elktstítde sokkal kevkbé &ss7.e1CIt feladatot jelenI,


minI egy hál. mcgtpiltse a~ alapokl61, de nm ettkn(:J ~ ~~s on.n mcgfeleló
menny~ga len-ezésre az els6 ,,-clxlIdI1 ~hodsii vagy az eM kOdSOr meglcls;t el6n
A kl(loIgo:ron len' n8kül elkew..n allu.lmn1so1dx1n :iJul1ban több a tuba, b fejleszl~
~k \"~gy M-ilé:sOk is nehezebben megokIIlóllÓ, rrunl azokt, ame1)oeJmek az clkbtil&ft
rnegJdd6 ten....u:s el6ztemeg. H6n:lpokig is elurtIlóIt :azokJu;k a n:lg)'mlre\a &; ÖSSl.Cten
....'eba~nak a rnoqrten-.:ttse, arnel)'dIen fcjk::sl:tők rucatpib61 ~1I6 c~oponok
doIaomak. lolindawntilul a mi sokkal t'g)-~ ...elles fén)i<tp:úbullKllkalma:Wunk.
hm egy 6r.inyi len"eZ.tsoek eIegend6ndC kell tcnrue
Wrmely szoftverJlkalma:cls tervez6;1 5.Z2kasz:, lilt:II1oon 3 követk('z61~pésekb6l :ill,

L II tervewi eld.rá.o;ok ÖSl;1.egyűit~ a megrcndel6t6l.


2. Állandó adatokat igényl6 alkalmnisok esetében a le,vez6i eJ~r::bokoon
megadott adatok tárolislihoz szűksfge5 adalb1zimma IttrehozJ.sa.
3. II ",ebalkalmaú~ nlOdellié"ek elk6;zítt'$e.

Az els6 !,',P"s cél". annak megén~. hogy 3 v~rIó mtt ~r el az alkalm:;oZo1:;161. Ml az


aJkalm:lzis cél;:.? !>Illyen üzleti követelm6tyeknek kell 3 rend&z.ernek megfelelnie'
Ilogyan fog);l a megrcndel6 napi ~zimen haszn:'lln; 3 rendszert~ MIlyen lesz egy tipikus
munkamenet a rendszer 1\a5Vl:ílata 5Qf'in? Általiban ez a lépés jelenti a legnagyobb
kihí~st, mivel a megrendd6 gyakran ' .. gy nem tudja pontCl'kln, hogy mIl akar a rend-
szerrel meg'o'316sittatni, ,"Jgy nchl!zs<!gt.1 okoz aZ Ig{,nyek Idi<-'" körű mcgfogalmnása
Szere~re nekünk nem lesz. ilyen gondunk, mivel ennC!'1 a BY"-korbtn11 mi kC!'pviseljilk
mind a fejlcsZl6(, mind pedig a megtendel6t.

A magrent1e16 igényeinek maohatároását seglti, lia iq(nBVtl18tt hauMilJÚ eseteket


lusa taslll kéfitnk t6le. A használati eSllt egy-Ut bekeldtsben, eQV1M s.zav_kal
irj. Ie egy adott feladat e~sénat módi". Webes fén'ytépalbOOl-alkalmazáslri.
esetében az valahogy igy nblll ki :
.SaIv lal akiW tölteni egy kéj>et a fényképalbumába. M~togat}a. Wflbhelyet és
• ~dÓOIdaIOn beif]a 8 bejelentkezési adatait. Belépés u~ megjelenik a Fénytép
fettö~ése hivatkozás. Erre htl1ntva Salv lehetőséget kap, hogy kiválass.za. m8fIV-
Iamtlll'61 a feltölteni kivánt Upet mega<l\at egy címet a k'pnek, egy kategóriAt
amalybe • kép tartozik, valamint egy rövid leÍfÍ$t:

A Jn:'lsodilc 1~p6; az adatbázi5libl1k Il.-wflOzása és a bennük s;zerepl6 oszlopok megha-


~tQúsa. AZ adatbizis szerKczete nagyr-nért~kben filgg az I. I~ összegyi!jtött
igényektőL Az utolsó l,',pés aZ alkalnuzá$ tnodeJJjénck I('\rehozis:it_ Ez jelmtht.1. aldr
\i:tlódi, működ6 ASP.i'IIIT okblak~l. amelyek meg csak a swlg:l.ltaLisok kili rb1a
t:lrtalmaZ7..~k, de lehet \i:tl:uni annyir.. egyszeru is. n,int el5i IXlpírlapra felrJjwlt Yizlat.

A te,ve7.~ folyamaI ;ílt:ll~ban dklikus jeJJegtl'. Ez ~1l jelenti. hogy a modelllttrehozis:J


ut~n a megrendei6t v~hi~'juk, és rncgmut:lljuk neki a modellt. Ez lehet6:séget ad
a IIl<'"gt'Cndei6oek, hogy ponlCl'klbban n~h:n:íroWl az igmyeke1., vagy v1iltoottatholM
kéfjcn az alk'Jlmazá$ megjclCfl6;é,.·el kapc;olatban. Ez addig isméd6dik, ~mi8 az ilgyfél
elégedett nem lesz 11 modeUd, és az elv1ir.isolm iIIet6en kölcsönŐ6 él! egyéndmtl
meg:1llapodiMa jut a megrendel6 a fejleszt6kkel. Ezen a ponton kezd6dhet el a működ6
rendszer t~nyleges rCjl~ése.

A köv~'ike7.6 Mrom ré$zben végre fogjuk !upn; ezen h1rom szoftverfejlesZIési It'pés
mindcgyikét. Az 6rn ~1:~re jól ~t fogjuk látni a rendsler kön-telménye;t, ~5 meglutá -
rozzuk aZ adatb1Zi5 ~7.erkezettt. Az utol5Ó két ó r:lban az ebben az 6r:iban rel~zolt
elkép~lbeket fogjuk meg\"al6sít:mi.
544 1V. mz· WebM iOt6IIJUm k6i;dt he pl ASP.NET MgIU.~veI

A fényképalbum-alkalmazás tervezési elvárásai


A "·el.>o:s f("1l}"képalbum egy olyan webhel)', amely lehel""'; !~,. hogy a 1~[ogat6k
dig,t.:i.I;" képekC"l töltsenek fe! a ~zemélyi wmít6gépükr61 a webhelyre. AZ ilyen a.lkal-
matii:!Ok :l.llal.fuan Ichd6ségct adn:lk a felhaSln.áIókn:lk, hogy lodbbi infonnáci6kat
adjan:lk m<'g a képekke! kapc50btb:on, íg}" címel. leínst. hogy rmook il; megnézhetik-e
3 k{,peket, és ig}" tOVlibb. S7.ámo/i fényképalbum nl i~ lehct6vé teszi a felhaszrdl6knak.
~'k:ltegóri1kba sorol~k a kq,eket. Eg}" fénykép feltöll6e utin a webllel}"ek
több5égc más 1:l.log:aWk Wmifll il; megtekinthet6vé les7.i II képeket. Amikor .. Ulogal6k
megtekinlenek egy képd, egre:. webhelyeken megjegyzést fúzhetnek ahhoz. ""gy
ért':kelhetik azt. A mi webe:5 fényképalbum-alkalma.úslJnkkal szemben L1maSZlOIt
e1dci5ok a követkcz6k,

• A webhelynek 1:1l1lO8"tnia kell a fe!ha~.zn.á16i fi6kokal.


• A webhelyet aron05ít6val ,emlelkez6 és nffielen felhaszn:l.16k;s Ulogalh:ll~k,
és mások képeit Í!I mcgtekimhetik, de k~kC"l cs:.tk 37.OOO.<i1Ó"31 rendelkeU'í
felhaszn.11ók tölthetnek fel.
• A felhaszn.1JókJ1:lk lehet~ keU adni kateg6ri~k létreho~r.I, szerkcszlésére
és törlésére M,nden kateg6ri:ího~ tartotik egy név, és:l fell\35ználó r"'nrkép-
albuminak rendsrercúsére JoWIg>.1.
• Kép fellöllésekor a fe1has1.n.á16nak I"eg kell adni;! 3 kép címét és lefr:1sát
1\ felhasználó kategóriáI il; megadhat .. képhez.
• A felhasznál6knak lehet65égcl kell adni a meglfv6 képek sze,keszlésére és
Iörlésbe.
• Az. 3zon<)1;ft6"al rcndelkeU'í felhaszn.ilók meglekinthetik mái; felh3.5ználók
képeit, és megjegY7.éseket ímalnak 3zokhoz. A névtelen felhaszn:l16knak csak
II meg;..gr::ések m"gtekintésérc van lehet6ségt1k.
• A felha5zn.1lóknak l('h~'l6séget ken adni, hogy mcglcklnl$ék egy adott
felhasznál6 képeit, és awkal egy kalegória ~ts.:gé"eI mcgszűrjék.

1\ fenli ch':ir:1sok egy ré5Ze kicsil ijes:l1.6nek tűnhet. Több elv:ir:15 is .eg}" kép feltöltésél"
emliti. de azt mtg csak ezut:1n fogjuk megnézni. hogy ponlosan hogy:m Í!I töltIJeI fel
esy 1~logat6 egy képet a szimíl6gq>ér6l II wrohelyre. TOVl'ibbá az egyes felad;l\okfll
ÖSSZponlG';íl6 pHdik u~n egy h05SlÚ és \lSl:Ieletet parnncsol6 eldr:1slrsu elkedvetleni\6
lehet. Minda7.orui1\31 ne ijedjilnk meg a list:lIKlSSUit61 ~"Jgy II fehölté;i el>·ckI6l. Amikor
elősZÖr összcgy\I"J1jük II terveresi e!v:l.rásokal, (,z mindig egy kicsit nyurnawó, mh...-,l
a terve.zé..j clvár:1sok magukb:t foglal~k a Idjl$projekl Igényeil, és minden ö:sw:teuebb
projektnek elég lKlSSZÚ elvár:'isliruja lesz.

AnlÍkor II követkcw 6r.ib:on nekil;ltunk a ","cOOlkalnuzás iér.rehotlsának. elcmcnkénl


végitriesszok majd ezt a hmszú iiscll.. Mivl'l II list:ll kcwlht.'l6 résZekre darJboIjuk fel,
az el6iTÜnk ;Illó fcl:ldat sokk~1 mcgvalósith.alóbbn.ak fog tűnni
22.. ln • A""t' ......,...,... * .......... [ .1545

Az eIVáriSOI< megfogal""""', használati asetUnt


A terv~l~ elVlir:hok nlt'géné~ el6scgí.ő egyik m6d~.er a hX'iW~lati eselek megl",rj·
ro.,as;. A hannila.i e5('1 eg)' '.~gy két beke:td6ll)('fl. eg)'1Izen1en megfOjplll'\;lz".~ leilja.
hogy egy adon fe!;«bl hogyan val6sílhalO meg. A tu.n.ú1a1I e5('1ck "8)'ik nagy előnye_
hogy ulmUl31hsa15ZOl~Ir\Jk a fejle:szt6knek az alblll'\;ld" l..,rehozkl5Or':lin, mhd
k')I\kn'l m6doo: im:.k le. ahogya 1Jot0g316k hamuln; fogfik a rendszen, A l'CO<.bler
adot. rnztnek letreh07..;1sakor a fejl~ a h:lwJJ.bu ~ckhez fordulhaln:tk ann:tk
megitéléie ctljiból. hogy egy n~ febdIt ~1\'égezheI:~.

'1éuilnk l'I'le8 ~ldny ha~z~lat l eseIet ,,;ebes rttlyktp"U""m·alkalnJau~\lnkll(>r. Ezek


segítenek majd tinrjznl az elO'ző résben szcrcpl6. tömörebhen megfogódnuzou elVli·
r.>sokh61 adódó ectleges bo:eonytala~gokat, Ezen ki\'OI a klh'etkezll k.., Or.Iban.
a fejleutb fol)"aOlln "ÍS5l;Ittrhetünk ezekhez a Il:ISZl"Iilatl esetekhez., 1108)' meggy6-
~nk rob. hog)-- jó llIon ~runk-e,

Ebb.1. !.ck..,.., esik négy iIIIm6IMt ...tel nri: le, tie lal nem . b an. hogy
nem lehet ""'" több. Ttmiészetesen 'VV VISlMYiIg l(I'{SZWIl alt......... II"IIfIt
• miénk. nem IQMvtItöbb tucat llasmiatt ft8Iet. tie ~ lal 1TIIIII<IIIIt6,
hogy mNI több haSm6Iati asetiö van, ~ jobb.

JlSUn Idre akar hozm qr,' felh:osznilói foókot a ",ebes r.:nyk~m-allall"l"\:l.l.$,lnkban.


Ehhez rn<:gÜIOg;IIP. a .... rhhelyOnket. b Lii egy Create Acalunt (FIÓk likn:hozú.. I.szö\-e-
gil hi .... tkOÚ5l. MlUIln erre blliOl, l'I'le8 keU adnia a ki .. anl felhasználói n(C"..ft. egy je\5z6l,
u e-mail eimét, ,.. Iamint egy emlékeztet6 k&Uést;l \jl:i.sszaJ rgyOn. Ezekndc n informi·
CiOknak a ml'8lId1sa uwn lWejÖn egy akU-.' Rók, 6IJisllIl bejelentke.vk a webhelyfC.

Josun a webhely mllldm okl.1t'ln eltrhrt6 Logou! (N,e\c'ntkezl5) hi\'atlwz:isn k:Utlnt ....
Jéphet ki a webhclylÓl. " ...-ebhdyre a login (BqrIenlke~) hivatkoúsra bn"u'-:I
lq:>het be újr:>. amely WntCn eIMlet6a webhely mindm oIcbl-.lról. A login Im-:ltk~
karunr.-:lJJSUn:l ~lc:ntkezll oldal.,. kertil. ahol meg ked adnia:l fe\Iwzn;lk'lOC\d &
lelSZ:w.i1

MU>do.'·fl fdlu.sW1ói flÓkho<: ""I~l album tanolik. amelyben a fdhasmJIO ~ltal feltöltön
k~k 1~liIlhatók. a fell~ul;i16 :iltal meghaurozon kat"8Órtikb3 sorolva,
Mi lv,rMZ • w... Mlllbllll táit ' • ASP.NET lllibiQl ••

Ft6kj:.i""k ~ utin JlRln ugy dOnI. hogy létrehoz ~ny k::ttegól'Üt ;I fm)'kép'.ll-
bum ~ Hlrom k::ttqtón.it hoz létre ArumaI.5(Á1btok). people (Emberek)
é5 PI;lce (~Iy~k) ~'en. Ez wn!lg)' dönt. hogy ninal sz(j~;lZ Amm3~ k.Mg6riir:a,
é5 ~lOnnal törli ;121. \'tgIll úgy döol, hog)' ~ 1'copIe kaleg6ri:'lnak in~bb;l Friends
(Ibr.llO!1) nevet adja.

&Im nem rendelkezik felh:>.szrúlói flOlo:lul;l webhelym, é5 nem is ~lur lélrehoml eg}'eI,
19} né\1den felhasmal6kl.'nl nem tölthet fel k~ket ;I wri>helyre. }lSlln awnban
rendelkeZllr. feU-.znáIói rlÓkk:Il, é eztn. fehóllhet. képeket.. Ahhoz, hogy egy k~
tOiu()n fd;l fmyktpalbumába.Jasun a llaneg" PhotO Albua(Fmykép'.llbum katl&oe)
ht'·atkoz.1sr.l k::tn,ru., am, CSlk a bejClcntk~leU felhaszn.ji6k szlnúr:a jClemk meg, _\1iudn
erre ól tú''lltkozásn karnntotl, Jl5Un egy ...·ebokblr:a jul. ahol ki\'lIla5ztlut egy ktpfá~t
a sz;Imitógepe mere\~zertlI, &. fclt1':lllhetJ ali a .... ebhelyre. Ezen kivül egy cúnet é5
egy leir.bt is meg kell adni:!. (:s lehet66tge \'lIn egy k::tteg6ria ki\':iIa.s1l:1.s1 ..~;I ktpl~z

M'Ulln feltöllöt! ("gy képel.J;sun úgy döm, hogy n nem tetszik neki, é$lörU, majd
fdt1':llt egy núsik::tt. A núS<X.Iik kép (ehöh~ ucin úgy dÖfll , hogy nK'g\jJt0l(1~tj.:l3nn:tk
dn1oé\ 6; kateg6ri:ljlt Ezt úgy m el. hogy a képhez tlIrtoz6 Edit (Szerkewk) gombro.
kallml, é a mez6ket;l ki"~nt úl értékekre 111ÓdO!o1tj3

MJu!J;n JlRln fdtbltöU több képel, k::tp egy ""'elet D:!\·e-t61, aki a badt", &. munk::ttll$l
O:lI\'e tulblp vele. h08Y <1 IS Ittrcl!ozta a sal"lt fm,--kép;llbumil a " ..ebhd)-en, é feltöltött
nétdn)' kq>et a dg legutóbbi ~'~lk6I_ JÍ5I.HI a fényképQlbum ..~Iyfnck
ketdOolda"'n megy. ahol egy 1isl:lI~Ullut6 ~z Ö!I5Ze5 eltrhel:6 fényktpalbumr61
G)'OI'S:In megkeresi O:l\-e albumát, rnegUtogaljll. 6; megné-ti az e-mailben emlitelt
képeket ~t egyet, amely('l'l Dave a~ 6cclnm "'"ZÓ teraszon ~1I. é:!: ir egy megit.'gYl6t
. What ~n am.17jng view'- Og:l:dn !l3gys~ kil:'It~.s!) .QÖ\·eggel

Sam, aki nem rendelkezik fellu.szn.ilói fl6kluJ" webhel)'en, szintén me81~to8:llh:ltJa


a .... ebI~ly honb~t. ~ megtekimhetJ a fblykép;dbumok li.sI.á~L Sam ls megkeresIldJ
I>~'-e fblyképalbumil, ts megnézheti ;IZ o..ne;o..'etelról , képeket, é tObbek kown
Jl5Un ~ is eIoI\lashatp FI6kk::aJ azonban nem rendelJcetik a ...·ebOel)-en,
Igy nem imat .s:IJ!i1 ilzenetet..
Az adatbázis-szerkezet létrehozása
A wcbalkalmazbok llil~ VóI"Iflúlyen ronn~b;," ~dalb:itiSllusz.n11, bJ fb1yk~p:.tlbum­
allmlmaz1sunk ~ kil-áel ez alól. Az. alk:lln13zh adltb:lzls:1n:ok 1'00105 ~ez.:te
(l108Y nú]yen t;i1,L1kból ~II, és nak a ~bLik milyen os:tIopokat Urt.3lmazruk) ~ tervezési
dvo\l".isokt6I függ. A tero....:cés m1sodik ~;n, hog)' rogp.tk:lZ eM ~ ~11j­
I()U eto.'ati.5obt. és ld"orditfUk azok:Il egy albtb(n,.umezdJ'e, Milyen tabUk és
OWOPOk ~r:I lesz W1kséogOnk a f""~lbulTHilk:drnaz:hhnz?
Az adadAzi:; megtC!Velbekor segíthet. ha u; .. me8l*uük a Il:I.SZnilati e:<lCIekC'l
A f6nevck ~ltalo1oban a lé1rehoundó t<ibLilw jelölik A Felhaundl6lftákoJllámOllOfl'is<l
dmO' hasmálati cst.'t els6 mondata p&;UuJ az voll. hogy Jlsun iéire aJu.r hom;
egy fi'I"attnálófj/6ItQf a ",ebes (ényképalbur1l-"~lkalmaÚsunk~n.· Ebb6I a nlOOdatból
az kÖ\"etkezik. hogy VlIbnuJ)'en módon o1obrirolnunk kell egy felhasuúl6l r106k0l
az ad,IIb:izi5ban

A t.hSm6I6i fi6kot IMIiben a t6bIiIr. " OI~ ~ '""


t.talmaml1Il ASP.NfT la!IÁ'iI ~Itm, 1I'nIIyr6I. 2O.lejezetbtn voIIll'Ó,
elM m6f nem b. kl61 töHeo("ri: a leIIfslnMói fiókot llllatbáns·~
rntrghat6rOlisival.

A feUIlIRJÚl6i fi6kokJu.1 Ju.pcsoIal05 t!ibl~kon klvillll1rom IMbbi úbUra ~


Wlk.5lgünk lesz,

• Cilt.~rI" (Kateg6rük) _ Mil'd a felhaszn:oUók k:l.leg6rü.k ~#,eI


mldezhet.ik :lZ albumaibt. szílluégünk van egy bbLir:a. 2lflC!1y rOgzíli az ~
felhaszn..116k állal ~reh()zon kateg6rűköll.
• Plctllrea (Ké'Pek) - Ahogy a 24. fqel<'lbceo l~tni fogjuk. amikor qo' fdll:l.5lJUl6
úl képet Iőlt fej az albumálY.l. a ktpf~jl a webkiuolIP16 f:í)Irmd5l.erében
tárolódik. de al adal~lislY.ln lesznek a képhez 1.attow mecaada!ok. !gy 9nnak
dme. lC!~. v:damiru a kategória. amelybe I:Ino1.ik, El a tábla q)' rekordoc
fog I2n:1.lmaml a ~ feltöltötI mll'l<kn kq,heL
• C nt. (l.t~k) ~ M,l\"d a fdlusWI6Io: ~k",,- lrhatrulk
egymis kq:,eihez. !oZ\l~nk ' .. n egy dbl1lll ezeknek a mcgjegyzéseknek
acirolh1lll

AZ eddig ~g.1h adall>1zi~~kUkban mindig: egyetlen !~bl~ltarulmaw adalb.1mok


nerepellek, de az ad:ul>1zl.sok!öbb:sége l5bb Ö5SlCkapcsoll c.\bI~b6I :i.U. Kél Wbl~ közön
akkor \I:m kapcsolat. ha az egyik úbW>an lC:>i5l1dalok , ..lAnuJyen nlÓdOl'l fllggnek
egy misik c.\Wb:an ~ adatoktól. A fényk~1bum adaunodelljofuen !*kUul
a co.oent" 1..;Íbla a..btai a Piet'''''' tább acbtaj,..1 '''nn:lk lc!.pcsobtban. mwd
a rneg,egyz&ek egy meg;l00u képhel tartOZnak, /l;l5On\6 kapcsobt '''n a Pi.tt"r•• ~
;ll Clltegorlell ábWc kÖZÖlt IS.
S48 1V. riIZ • W"* fOt6aIUn \",,&( ft IZ ASP.NEr Seg/rI6g6YII

Al. 01)= adatb:i7.i,<;-kezclók. mim n SQLServer 200'i. esrlIözökel kín1lnak alábLik


köz&ti kapcsolatok ér...én}'ességének meg6obere. A kövelkez6 részben mcg'<izsg:ilunk
néh:ln}' ilyt'11 es:zkö7.l és hogy mire h=:ilha!6k, amn megntuük ... z ad:nbhisban I~""
IfibliU<. egyedi S2C1'keze1(1..

Kapcsolatok modellezése egy adatbázisban


Egy jól ki:lL,kÍlou ad;ubhis a rendszer minden logikai egysége! egy-egy tábbkém
modellezi. Fényktpalool11-:llkalmazásunkban a rendszer ~gci a kategóriák. a felhasz-
rciJ6k, a ktpck és a l1lI.."gjegydsck. Eg}'<illal~n ncm meglcp6. hogy adathizisunk
egy C&tegOr:i<!B. egy Plctura& és egy Coanomta lábl.1t fog t:u1almazni a felha$ZnáJói
fiókok wn\ár.l.:Ll: ASP.t\'ET álml meghatáromu táblák melleu. A rcnd:.=rek cgysl:gc'
közl\u ~1\:I]joon II következő túrom kapcsöiatlÍpus eg}'ike!iU fenn:

• Egy-egy kapcsolat
• Egy-több kapcsobt
• Több-több kapcsolat

Etek II kapesobtok mUkÖ</é:o\i el\-Gkel &; me!l'",IÓ05ílfisukat tekim ... e is eltérnek egynú.Sló1.
A fényképaloom-alkalmazáJ> ugp" csak egy-több kapcsolalOkat tartalma7., de azér!
8yOl'S:l!l vm~lj\lk meg mind" Mrom kapcsolauJpust.

Egy-egy kapcsolatok

Ha két tábla egy-egy kapcsolatban \1:1" eg)·missal. akkor aZ el.s6 tábla eg}'cs rekord~1i­
hol. legfeljebb egy rekord \<Inozik a m.1sik IfibLioon. Jlyen tíP'U'Ú kapcsolatr:l konkrét
példa az ASp.NIT upnet._Usen és &spnet.)tembership tagsági tibl~i közÖlt ]:\.tható.
Az "spnet_Ulleu tábl:>. a rendszer egyes felhasznjl6i ft6kj:lillOZ úrol egy UserlD éi
Username értéket. Az aspnetJlenUJe uhip tábla ré:szletesebb infonn.'ici6kat tárol
al. Cg)'cs flÓkokr61, így a felh3~16 jelsza\'ác, elekuonikus levélcimét, ""Iammt egy em-
lékeZlet6 kérdé$! 3 \':\Ia=l együtt. Ahogy az ll. 22.1. 1bron l1that6. az "gpneCUsers
mtnden eg)'C!i rekordjához pontosan egy rekord \<Inozik az "spnetjlenUJership
tábLioon.

Ahogy ~ 22,1. <ibmn Uth.:u6, a kapcsolat alapját n képezi. hogya két c1bla megeg}'ez6
el.s6dleges kulcs 06Zlopcsoponul rendelkezik Emlékeuiink vissza. hogy n cls6dleges
kul"" oszlopok azok az 05Zlopai egy t:'ibl~nak. ameIreknek az l'nékei eg)'edileg ~zono­
sítarutk minden egyes sort. Ezért az &spnet. useu egy adon rekordia úgy társithac6
alIOZz1í kapcsolc .spnetjl.... buship tibiabeli oorlloz. hogy meg!<ere;sük aZl a re-
kordot az &8pnetJl~rship tábl~b:ln. amely ug)-,m3zokkal az d$6dleg<"llrulcs
05z1opértékkd re-ndelkeZlk
,•
22.1. libni
-- ,• ",. l.O'Ia/OIO ......,

Az U5/>',.~_CscJ't "'" az usp,""..Memb<>r.<h1p UibMlI .i>1%t1I1 'XI'"<'i't)'1ltIpc:soIa1 áll j ...,n
A 21.1. ábra a Usedd oSllo!xlt integer adattJpuSÜ oSllopként mutatja, padill
lIZIIl:' aszlop valójában a un iqueident l tier ildattipusl használja.
A uni'lUe1dent I fier adattfpus egy nllll'fon-Mgyon Mgy szám, amely klwImitási
módiából adódóilll globálisan és iOOben is garaotá/tan egyedi. Ez azt j&lenti. hogv
il w&bkiszolgál6nkoo agy lelh8Sll1á1ói fIÓk egyedi /IZOOosltásdI'a kiv6laszton
unlquel (lent; t i er értMet még soha 81JV11tlen sz3mit6géprendSlef sam használt!
a múltban, és soha egyetlen szjmftógéprend~ sem looja hasmálni il jöv6ben.

Egy-több kapcsolattól (Li~;;o.


22.2, ábrát) akkor beszéliink, ha egy tibia adott rekord-
phoz aldrmennyi rekord tartozhat "gy ~sik t:ibllban. fényképalbum-alkalmn.isunk
több ilyen kapcsolatot is tart:llmaz. A pictures tibia egy-több kapcsolatban áll
II C~t. t;íbI1h':J.I, mive! minden képhez le\Sz6I<:ges számú n>egjegy2és tartOl.h:It.
Ugyanfgy. az <lspnet_Usern úbl~ egy-több kapcsobtban 111 a P\.'turea táb11\'al,
mivel az egyes relhasználókhoz lelSZ6lcges Sl:Ímú kép tartozhat ~ rend5zerben .

........... , .....
• ,
n.2. libni
A Ptc'"rt!S ls fl Commc,Jls ItiblAJt lId.Z(JIt I'f/,}-I6bb IItIpuoIIlI tili Jet'"

F6nyképalbum-aIkaIfTlidslri adatbárlsihoz csak egy·több kapc:solat0kr8


lesz SlÜbév. Ahogy rövidesen
az adatbázisban.
"tili
fogjuk, ct ilyen aqv·több kapcsolat ViIIl
550 V, IW.' W..,. fOt6eIJUm

Egy--Iöbb kapcsolal,jgy val6:.fthat6 meg, hogy a ,több' lább tartalmazza azokat


az oszlopokat, amelyek fell:píuk az .egy" lábla elsödl~ges kulcsit. A 22.2, :'ibrln
a pjetu ...." tibia els6dleges kulcsa ~ pictureID oszlop, a comnentB t~bI~ban pedig
sztrepel egy PictureID QI;:clop Ez egy adott megiegyzl!st egy adott k(:phez társít
Ez a fclépltl!s Icllet6vé teni, hogy egyetlen képhez több megjc.'gyzJ's is tartoZZOll

A 22.2. :'ibriín kl't megjegy.res tartozik a The O<:e~n k(:phez, míkőrDen egy megjegyzés
tart01Jk a Ib",":!H Sh0n:5l!s a My pel dog képekhez. Nr. A very drunk Ed! l!s az Il"s Dave"
kl'pekhcz nem tartozik egyetlen rncg;egyzés:;em.

Figyeljiilllllllg. hogy I ,több' ttibla UQYlllJÚgv rendelezik elsódleges kulccsal,


mini III ,eg( tábla. A 22.2. áOrfm a Co-nts tábla els6dleges kuk:$ osz\opll
I C"""",ntIO. A PictureID csak egy SlOkv'"vos ~ a COIIWIIent& t6blában;
el. köti a c",""",,,u tábla fekordiát a pI cturu tábla "'ordjához.

Több-több kapcsolatok

A bpcwbtok utolsó úpusa, a több-több kapC'lolat akkor ~U fenn, amikor kél. ctbla
rekord);li különböz6 kombinációkban keresztkapcsolatban ~lInak egynús.sal Gyakran
hozzik rel pl'ldak/;nt a tölJb.több kapcsol3tr.1 a di.1kok ~ kurzusok viszooy:it.
Egy kurzuson több ditik ls rés7.1 ,"ehet, l!s egy diák több kurzu51 is felvehet. A több-több
kapo:;;wl:ltok megvalÓO!ít:ís.o egy h:um:tdik tibia ha~btiva\ tönwik, amely az egyes
tiblákboln minden egy'" rekordot egy a !JÚ.<iik ctbJ:íban J('Vó rekordcsoponho.z kapcsol,
alKl8)' ez a 22.~. ~Irln I:íthat6.

A harmadik tibia (a ClauesStudenta {jbl~ a 22.3. :íbcl.n) mindkét _több" t~bl~


e1s6dleges kulcs oszlopaIt tartalmazza. tovlbbi a h~rmadik ~bl~oon az c!södl~ges
kulo ~lopok alkotják a t:\bJa els6dleges kulcs:'íl.

A több-több kapololat elkq,zelhet6 két egy-több kapcsolatkI'm is. A 22.3. :1bFd segítsé-
gb-'eI pl'ldául egyszen1en elkbzíthetiUk egy kurzus né-."SOI'át. amely egy-több kapcsola!
~Clanea l!s a Students ilbl1k között, él hJ.!iOlll6 módon elkészithetjilk egy diák
Ór.1rend;l't is, amelyegy-több kapcsola! ~ Students és ~ C1aaSeB t:\bl~k köZÖlt.

Kapcsolatok. k.ikényszerftése idegenk.ulcs-megszorftásoldtal


A ctbJ:1k köZÖlti kapcsol~tok:Jt 3 1lIb11k oszlopai k6doli~k. Egy eg}'-Iöbb bpcsolalb:m
pl'ldául az ,egy" t:\bIa els6d1ege5 kuk:; oszlopai os:clopokkwt kerillnek a .több' ttibllba
ü: IehetŐ\'é le;;zl ~Z egy--Iöbb k:Jpc;ol3tOl e köz<ltl a két ctbla közölt, de nem biZlos'lI
hit'dtkazIW ~ Ha nem vigy:izunk. a két egymással kapcsolathan li'v6 t:\bJa adatai
kÖ'l'ctkezet!cnnt v:ilhatn.:1k, Kl'Pzeljiik el pi'ldául, hogy ~ 22.2. ~!Jcin3 Pictu~eID
oszlop ~rWkl't az els6 mcgjegy~néll-r6I10Il-r.l válto7.\:lttuk. Ez után a m6d0sítis utin
aZ eLs6 nW"gJegyre. núr nem ctl'liídJal6 egy érvénY"" képhel.. Ha~6an, ha töröJntnk
az eLs6 ké-pet ~l adatb:'izisb6l , ~kkOl is marndnJl""k olyan meg)Cgyzésck a COIm\ent:s
ctbl.1b:l.I\, amel)'ek az eLs6 képre vonatkoztak.

Sludenll
(O;tkokJ Ubi.
Cl .....
(Ku ... u... kJ l'bIo

. _.
22.3.6bnI
A I>5bb-Idbb ieapcIioIal m<'Sml6sflw Mmm l<1bk1luunuikuál.. .J 1611'<"111

A hivatko~si épsé-g biztosítja. hogy ll. tiblik kÖZÖlt; kapCiolat nem \'áJJllIt kiWC!keZel'
lenne. U ItIcglmlmlcr_m,p,szoTÍ/(isoIl haszn~I:H~\"31 vaJósítható meg. Az idegenkulcs--
megszoritás egy úbla 052lop;1t egy másik tibla elsődleges kulcsihoz kapcsolja. Miul~n
bdllilOuuk eZl II rnegszoritást, mind= ajkaIommal, amikor egy új rekord fel\·étel<!re
kerul sor, vagy fris5ú1 az idegen kulC:! oszlop. az idegen kulC:! OSillop énéként--k meg
kell fejeinie :IZ els6dleges kulcs úbl~j.iban szereplő értl-knek. Ha új n-kordot próh:ilunk
!:>eszömi, ""-ilY oI}"~n ~nékre pr6b:iljuk módosítani az idegen kul<:$ oszlop trtékét, ami
nem szt:repel n elsődleges kulcs O5Zlopb:l.I\. hiba Jép fej, és a rendszer nem fog.1dja el
a v:;Ílloztaú~

Ha megpr6biljuk törölni \fagy módosítani ll. Úr.;í\l)\1 elsődleges oszlop Mtkét, miközben
idegenkubértékek hivatkoUlak az elsődleges kulai oszlopJ13k erre az Mtkére, akkor
3Z idegenkulcs-rnegszoriús be;jllíú~16I filgg6en az :dlbbi ntgy dolog egyike tÖftl!nh"1:

• Hiba lép fel. k 3 ",nd~:ter vis..Wl.u\:LSítja az el.s6dleges kuks oszlop énéktnek


töribl!t vagy módosiw,iI, Ez az alapénelmezett viselkedés.
552 1V. rMZ· W_fot6ab.ml.Wh,azASf.NET,eg!tMgMi

• Az eI:K'Sdlelle~
kula; ~~lop &téke tl\ri6dik ~-Jgy m&losuJ, 6 ",imkn holzá
tartozó rekord tl\ri6dik al idegen kula; t:ibl:\b61 Ennek 3 viselkedésnek a ne... e
I<'pcs6zNl'S 16riés.
• Az eJs6dleges kulcs 0Ii7Jop ~rtl'ke törlődik vagy l11ÓdClSul, és a ... Klegcn kulcs tibia
Idegen kulcs OiSzlop:lnak t:nékCl II Null értékel kapj.1k. (I'.hhez ~ Iehet66éghez
az idegen kulcs oszlopban engedélyewi kell a Null énékeket.)
• AZ el.<;6dJeges kulC$ oszlop &t~ke törlődik vagy módosul, ts az. idegen kulcs
!;'ibia idegen kulcs oWopának tinl'kci vi5sza~lIrutk a ... alap(:rtelmezctt énékckre,
(Ehhez ~ Ichet6séghez az idegen kulcs oszlopoknak rendelkeznillk kell alap(:r-
telmezeu értl-kkel,)

Hogy jobban rnegé11.$ük cn az elwt, nézzünk ffi<.'g egy konkrét pékUt. A 22.2. -1brán
a Picturea ts a Co!IIllentB tibljk egy-több kapcsolatban állnak egymiss..1. A C~ts
libl~ PieturaID osz\op;.l idegen kulcs, mi\~1 énékeinek mindig II Pieturea tábla
PieturelD el:K'Sdleges kulcslnak éltl'kcire kell hivatkozniuk. (L'ue ~retnbJk hozni
egy idegenkulc...-meg57.oriLí.'II. e k&öl:t a ket: OS7Jop köZÖlt MiutJn Cl:! mcgtettük, ha
~ C-..u tibia PictureIO éfték<':t egy nem l",cz6 PicturelO értékre ak:trjuk m6d0$i-
uni, nem i:lrunk sikerrel. Ha lqxs6zetes törlés.., áUitonuk aZ klegenkul<:s-megszoriLi5l,
akkor egy kép törlésc automatikusan törli a hom tartoz6 ~kCl is.

Amikor ~ Vi~-ual Web Ocvcloperbrn hozunk Il'tre egy adathi2:i.sclbloll. jelezhetjük


II fcnn~116 idegcnkul<:s-mcgszorítmkal. mlamiru a mcgfelel6 elsődleges kulcs oszlopban
szerepl6 btl'k mellvállozásakor '''SY II ..,kord töri~kor elv:irt viselkedést. /..lhn; fogiuk
ennek fllCg\.. IÓ6ítbát. amikor mcs:*,uuk. 1X>g)"~n kellll:\rehozni az 3dallxiziSl és
a táblákat.

A fényképalbum-alkalmazás adatbázisában szerepl6


egy-több kapcsolatok felsorolása

M,d6u hmúkc7,denénk aZ ad:ulxins és a t1bl~k l<':trehoz1$;'ihol. el6stör soroljuk fel


az adallXitis/xln szerepl/5 egy-több kapc$OL:uobl. Ahogy koclbban már említeuem.
ötféle ilyen kapcsolat Icl~ga::

• a~pnet_Users 5 Cat<!gorieB - 1>1"'d minden fe1haS<!.n:í161«.... ho~hatp a 5<lj:í1


bleg6riá't, a categories t1bUlxon szereplő bteg6riákal egy-egy fe!ha5zn~!6;
fl6kho.z kell kapcsolni.
• upnet_U8ers és Heture.. - A rend!;zcrre febOhőu minden ké-pet egy-egy fel-
haszn:ílói fl6khoz kelllirsíuni.
• CateqorieB ts ptetures - En~k az aJkalnuüsnak az eI\':íclsai dl5i'Í~k, hogy
a felh:m:nal6knak lehet66éget kell adn; ~rr:l, hogy a fénykC"pciket kateg6ri~ktrJ
rendezzék. ezért minden egyes k~pet egy kateg6ri:1hoz ke!! társíwnunk
22. (n • A l6nykoéplblllHblmlz6s teMnIk IIlWI •• 553 I
• Pictures h Corm>ents - Minden kl-phez tetsz6leges sumú n~grz6 tmozhat
• upn.. t_Users ~ ComnentB - ~hndcn megjegyzés egr adon felhaszml6i r,ókhoz
kapcsolódik.

Ja 3dalWzis !.:Illii közÖIti kapcliOlatok modelJez6e g)'<lkt:m egy I.'8)t!ílkapcsvklll


diagram haSZn.iI:nj\"al tönénik, amelye! ER tliagrarmwkis fK'\leznek. Az ER di.lgr:lmok
az ~dath'\zisrendSZeT (az ad:n~zisC\bb ,rosi!< e!ne\·e1.(-se) ~'t'de,t mUlat~k, és a t:ibl.'ik
közötti k:JpcsoI3tOOt \'onaJakkal idölik. A 22.4 ~br1lon !.'ith:uö ER dUgr';I!11 a fénrk~l·
bum'3Ikalrna:cis adalWzlsjnak ~·edett és k:Jpcsolatait mutalJól.

fR di&grllmokal a VlS\lal Web Devoloperben is létrehcuhatunk. A Database


Explorerben nyissuk ki a Data COflnec!ÍCln~ (Adatkapcsolatokl cSGIIIÓpOOtot, és
kefessük meg III adatMzisookat. Kattlntsook III eoéf jobb QOIl1b~81 a DIItabase
DiagrillT1s (Adatbázis· diagramok} cs0m6pontrl. 6s vlllassz\i az Add New Dillgr1lm
(Új diagr\lm hozzáadása) parancsot. Ez tlt6n mell ken adnunk. hogy maly táblákat
aklll']uk hozzáadm I diagramhoz. majd aulomati~usan létrejön I diagrllfTl.
A 22,4. 6brán l6tható diil\lfDlTllélJehozása Igy történt.

A felhasznál6i fiókok tábláinak létrehozása


M,előtt I~reho>:rúnk ~ fénykélXllbum-alk:Jlrnaá, ~d,ub;l~nak t.'ibl~il, először iéire kdl
hoznunk nugjt az adatbázist. A 13. fqezetben ~7.lÜk, OOg}'<ln ho1.hat61étre egy új
SQL Scrver 200S Exprt.'SS Edition adatbázis wcl;ohe!y\lnk A",,_D<tt ~ mappápban. Ahogy
a 20. leck(>ben I.'inuk, ha ugy ~ltitunk be egy ASP,~T webhelyet, hogy az felhasznilói
Mkok"t használjon, akkor n AS PNE'roIl aooililZis automatikusan I~. és
az AppJlaU. rnapp.'iba kerül. Sólpt adatb;lzisunk I~rehozisa hclre\t en az autorrotíkus:....
Iéucl>ozou adalWzist fogjuk h<w:n.1lni. Teh:it II cat ego ri". , a Pi c:tur" . és II c . - nt .
Wbl:ít az ASPN!?l'llB adatMzishoz adjuk hozzá,

Ahogy II 20, fejezetben megtanultuk. ahhoz, hogy felhaszrúlói r,6Ir.oIr. ~mogatá~r:&


~1Iítsunk be egy wcbhelyCl. CI kell inditanunk az ASP.NET Wcbsite Administr~tiOfl Tool
eszközt, 1$ meg kell v11toztatunk II biztons;'igi bclllít:i$Ok:Jl az [ntemC1en kereszl1ll
kapcsolódó felhasznilókhoz való hitelesit{,si típus h~szn1Iat:inak érdekében.
F..z az ASPNETOe adatMtist a webhely App_Dat .. mapp:lj~lxlfi hozza I~re.

V('g("zzQk cl ezeket II lépéseket. hogy II webhely II megfelelő felha.sznál6i r.6kokhoz


kapcsolódó 3dat~zist:íblákkal ",ndelkezzen Sz(lkség esetén II 20. fejezetben találunk
útmut'tlS(.
554 1v, ráz • WIba fOÚIIhn kMzIt 's II{ ASP,NEJ ...,1Mu'....

--- , ,

-
~
~

,.,t ' ....


, ...
-- r "-
C I
J "~ItIooo
L.. "

It -

. ~
•,
-- ,
--..,

.....,....
~

II 1 I 100 r'
t-

c.. ....... I eo.


r
Z2.4,6In
Ar adaIbtIz/s ER dllWram}IJn 1<1/11(116 IQ (N "K}"I/Jbb iIaPCSOial

A Categories tábla létrehozása


Az ASPNETDB ada.bjzis léueho:cis:l. uÚn ktszen illunk aml, hogy megkezdjük a fény,
ktpalbum_alkalmalls I'g)'es ctbL1in.:l.k hou.1ad:\sá1. Az els6 a Cateqoriea tibl~ lesz,
amely egy-egy rekordOl fog tanalmaznl a rendsze,-egyes feUIll~lói ~ulléuehozon
kaleg6ri:lkhoz. Úgy vehetjük fel a úblát a:/; ASPNE'roB adatb:;izu;OO, hogy a Database
Explorerben megkeressük:lZ ASPNB:'rIlI:I adatbázi5l, az egér jobb gombjával II Tables
(TJbU.k) C$Qmópootra kattintunk, ts az Add New Table (Új tibia hou.1ad1s:a) paranCSOl
vilamjuk.

A Categories tibiának a kÖ\'e'lkez6ke'l kell tartalnlllznia

• n egyes k~t"góriák egyedi 3Zonosít~~n.ak lehe'l6sl'gl't,


• 31.t, hogy melyik felha.v.n:ilóho~ \;I.rt01:ik 31: adott kategória , b
• a kJtegória nevét,

Ehhez lúrom oszlop szOkségcs;

• CateqOryID - int típ~ú, automatiku! :;Qr,;7..:ímollsú elsődleges kula; ow.lop,


amely egyedileg 3wnosftja az egyes kategóriákat.
2Z. óra • A Mnyk4p+m-.M • ..m tervWt.li:6s2flh. 1555

• U... r ld - uniqueidentifier upu~ ~op, ~mely egy k;!tcgóriának egy fel-


JI<Uzn<ll6huz ",,16 tAr:;íúsára szolgil. Ennek u 05zlopnak u ni queidentif l er 11-
pusú!l:lk keU lennie, mivel ez :lupus :l.WfIQ6itja egyedileg az aspneLUBera
t:ibl:iban szerepl6 feJhtsWl6i fi6kok:>!.
• Name - nvare har (50) Ilpusú tább. amely 3 k~teg6ri3 nevének t:irolisira szolgál.

Ezen oszlopok egyike sem engedélyeZi 3 Null értékeket. Emlékezzünk vis.\.za, hogy
~hho~. hogy egy oszlopo! els6dleges kuJcskénl jelö/jDnk meg. ki keU jeJölnOnk
u 05z1opot. majd az ei7J;;özttlrban lal:'ilhat6 e!s6dleges kulcs ikOflr:l. kell kawnt.:lnunk.
Ha egy oszlopot aUIOtll<llikus ~kém ~,léok megadni. állíI5Uk a~ ldenlily
Specific:ulon OIlzloprulajdonságot Yes &tékre. Err6l a mlIveletr61 a II fejczetlxn tll~lunk
tov:ibbi infCJorndcl6kat.

A 22.5. ábf"jn a VISual Web Developer ~lhal6 az adatbázis szerkeZetének meghat:í -


root:is:l után .

....
-•• -_ ... _......-----
- _....o _,".".......
":..~"
.
_ _
. ,____ ... _...
~I'

O
[J
• ~

_ _ O

,--
.--
·"
.,. " !.

1

_._- 22.5."
ti Colcgonl!S Mbk< három os:z/cpol
tarTalmaz

ldegenkulcs-megszorftásot honéadésa
Az u pnet _use u tibia cgy--\6bb IcalX'SQlatban;l.U a Cat: eqor i e B tibl;jV"~1. Az adatbizis
épstgénck és egységességének meg6rz& érdekében illik létrehozni egy idegenkulcs-
megsroritáSt annak bi.n05í!;\.sára, hogya Cat:egorieB tibia U... rld &tHci valós rclhasz-
rcil6kra mut:l5&Inak. Ennek elvégzé:séhez IlliJasszuk a V!$Ual web J)e\'eloper Table
Design..r (Tjblatervez6) menOjt'nek Relationship" (Kapcsolalok) parancs!il. Ez megjelen(-
U a foreign Key Relationsh,p" OdegcnkublcalX'SQJatok) t»rbesz&labJakOl. Az új ide-
g.:nkuJcs-k:apaolallé1rehoúsához kattintsunk az Add gonll:m ( Jj,sd a 22.6. ábrát),
556 1v. ráz • w.... tOtÓIb.rn IáDté•• IlASP.NET S8\IItsév'wI

--
- .

"--
22.6. lIbra
~ rabia /dcscnftulC:S·"'''8S="ltbarnw. mQl<ldds<> Q I'o.-clg .. Kc)' RclQriQ".<IrI~
pQ~b1altba.,

AZ idegenkulcs-meg~U)ritások jobb okblon lalhal6 tulajdonságai közön a Tables And


CoIumns Spcdficalions (Tábl~k ~ ~opok leirha) tulajdonság mellen h~rom pontot
I~th:uunk. Erre bttlmva megjelenik il Tables and Columns (Tjbl~k k. oszlopok)
pj~blak, ahol megjelölhetiílk II megszorllisban ré= vevő cls6dlege5 és idegen
kula 0$ZIopok31.

Ennek a konkrét idtogcnkulcs-megszoritásnak n els6dk'gC'S kulcsa az ..."pnet_UBera


l.~bla UAerI c1 oszlopa , az idegen kulcs pedig a CategorieA tábla Uaer r c1 oszlopa.
Végezzük el ezeket a kijelölbeket (ahog}' .. 22.7. jbrán látható), 6> bIlinisunk
nOKgombrJ_

. "....
--
.. --
'
,,-~ ~ ,.

'" 1G!"i: i

22.1. 11bra
JI Ca/<'gOJ'f.,.-/óbla lJS,erfd os:dofJd>J"k Id"")d$a aZ tl.fpn'·CL'1er< tábla userld OJZkplhoz

Az idegenkulC5-me~oritá~ hozzáadha után k:aninl'iunk 3 Oose (Bczácls) gombra


il Foreisn Key Rclationsrups p;'irbeslédablak bezárásához. véglil memsilk

.. C"t.e<;Jori e ~ tábU\ ~ file menil &lve Q,tegories (Kateg6riik mem/'::;e) p:1r:mcQv:.1.


22. ón' A ~............. eIkHJftéH Iss7

A PiCII"•• tábla szer1<ezstén.k meghatározása


Ahogy a 24. fejezetben Jálni fogjuk, ~mikOf egy felhasználó feltöh egy képet
a fényképalbum "·.:.>bheJyérr-, maíPnak a képnek a Il'Il'nlése a webklszol~J6
flilrendszerébe történik. A kép egyéb inform!icióit (dm. leir:1s, b teg6na stb.)
az "dallJázisba kell memen; Ezért a Pietures adatbáZIS a követkcotó oszlopokat
fogja t;J.rtalma zni:

• pietureID - autOfl1aukus sorsz1mozásl'J, int tipus" els6dleg\"$lrul~ 05zlop,


amely egyedik'g ~zon05ilia aZ "gyes képeket.
• Userld - uniqueidentifier tipusú. 05Z.k>p, amely a fdhaszn:l16hoz t:1rsítja a
képet. Erut<.'lt az oszlopnak ill is uniqueidentifier lipusúnak keU lemue, mivel
ez a típus szollPl aJ; <'gye'> foókok eg)·.:.«!i azooosíL1sárJ aJ; lI .. pnet_U""rs táblában.
• CategoryID - int típU5Ú o:;zlop, amely egy ""t"pához t.1,."itja a képel.
Ennél a mez6nél hagyjuk bekapcsolt :illapotnan az AJIow Nulb jdölőnégyletet,
mi"e] a kép kateg6riához V316 tlrsit~sa nem kÖlelcz6
• Ti t le - nYilrehar (50 l típu'iU os.zlop, amely a kép feliratának t:1roUsám swlíPt
• Deserhltion - nvat"ehilr 1100) tipusu 057Jop, a mely .. kép !eír:U1nak
t:1rolásál"'d szolgál.
• UplOildedOn - dat"t i""" "daltípusú oszlop, amely a kép feltölt6ének idejét
Im,]ja

Cslk a CateqoryID oszJop esetében kell aZ AlIow Nulls jclöl6négyzelnek bcbpcsoh


állapotban lennie. A Pietures t;lbl~t az <»-zlopok létrt.>hozis:r után a 22.S. ábra mutatja .

---
--- -,--_... .. ,=:1

_. .
,,-

-- -
-
"
"
.. [j

- - ""
_ _ CI

--,. ,
••

-
.'
22.8.Mn
A ,."..dszrr/J<o fol/WI ml",l.." lWPheZ "&1"<'8)' lOrh latfo;z"j " Pl<:tw e IdbltJbt",
kr. nWOPOkOn kh"Ú1 ket idegenkulcs-mt'gSl.OÓÚSl is meg keU adnunk. kr. els6
rneJPllOI'iw megegyezik a CiOtegor'" úbla ~ idegenlrulcs-~I;b.IY:i1
al aapnet_U.~ra úbb U..... ld d$6dJq;c:s kula O5Zlop:it b.pcsol", a pletuu. tábla
U.er ld idegen Irulcs O&Z:!~hol.

A m.1:sodik i<kgenkuJcs-megszorfús a ~... teoor1eB úbbt C.. tO!ilorylO elSOdleges kula


QuJop:lt tlr:;;ll" a Piet""-!!B t1ibb CategorylD idegen kula OiSZlopáhol Emlékezzünk
vissza, hogy alapbtelrnc~b szeTim egy elSOdl"ges kula Cl'I1Jop értékének ~hod.­
gkor ''ag)';I rekord lörlésekor a \'ihoús vagy 1006 sikertelen lesz abban 3l esetben,
h~ li:teznek idegen kula rt'kordok tuel al al:ipértelme~l viselk~1 a felh:'5lná-
Iór\:Ik nem lenne m6dj:I. törölni eg}' b.leg6riát. h.a t:lnoUl.ak how képek

Ebben az aluJmad"n engedllik meg a felhasznilókn.ak.a b.tcg6ri1k IM~, nq


abban az esetben is. ha létező képclc tanoZlUk az adon k:negóriához. Hl! a fell~ó
tOrOl egy ilyen klIteg6lül. a meg:felellS k~k categorylO rul:i~git Suli értéko:
~lIitJllk Vi5.Wl, ezzel rden~. hogy nem tlltOZNk egyeden klIteg6ri1hoz j;tffi. Ahhoz.
hogy ell az idegenJruJc5..megszonús.siIJ h~ÚrollUk meg, ,;\I:lsszuk az I:';~ERT and
UPDATE SpecifIClOOn tulajdons;\got a fore'gn Key ReI:llionships p:1rbc:skd:ibb.klxl.n,
é.'! a Delete Rule (Tilriési sz:.t)1Jy) &!ékét No ACl1Of\ (~,ncs mll"elel) helyett áll,tsuk
set r-;ull ("'ull &!ékre ~nMs) értékre (Lúd a 22.9. ;\blit).

_.-
~
...- . _-
WI . ...
ED lftmg6rltf I<l~

-
m'-"""" 1Ioc=<l1lapc.w /tIIP
,Uszi>A1J lU' ~WWff/1

"""""m
A Comments tábla létrehoma
A fmyké-p1lbum awtll1zis.ilUk utol~ ubUj:I. a ~ _nta, amely egy-egy OWOPO!
fog taru.lm.awi a felhasm.iJók ;\11.31 az eg)'e1 képekhez ln ~k wn1J:ra_
A :~U tibI:t:t kÖ'l"elJrező hal 0!W0P0t uru.lm.azza:
• eo..ntlD -aUlom:tti!tuS IIOISUmolbö. iDt tipus(t els6dkge5lruks oszlop.
3mely eg}"CdiIeg azonosít,:t az egyes ~et.
22. 6rI • A ~ 11..,,, !eMnek etiSZft6M 1559

• Userld - un iQUeidenú fi e r típusú oszlop, amely egy felha:;~niI6hol (111);,


egy k~pet.
• PietureID - int tipusú 0Il7.lop. amely egy kt<phel b pcsol egy megjegyzt'St .
• SUbje<: t - n".rchl r (50) ,fpusú oszlop, amely a ''''''gJegyl~ t!irgysor1n~k
IárolWra =>1g:í1,
• Body - n"lIrchlt r (1001 [irusú O5Zlop , amely a megjegylb szövegének
tfirolWt:I szolgil.
• Cccm.en tMadeon - duu i .... ad3ttípusu oszlop, amely a megjegyzés l~lrehou-
50inak idciét ielzi.
A Co=>entl!l t!ibla minden OSllopjnj) kika pcsolt ~Uapotban kel! lennie al Allow Nulls

__ ...
jelöl6n~gyzetnek. A táblát az oszlopok lé1rehoo,isa utfin a 22.\0. ábra mUllUja.

~ "" ...... _-- ..- .... , ,

• --
• •

- -- --- - •

22.10.6tn

- .~
• AmilIm" <'ID' foIhm:ztuj16
~mI Fa «I' Itephez.
l n ebbe " lábltlba IlenU

Az ~Iopokon ki\'OI kéi ldegenku!c.s-megszorit!ist is fej kell \'e nnünk Az első


meg~zorit~ megegyezik a CU&Qoriu tibia egyetlen idegenkulcs-meg:szori!:isával ~
a Picture a ,:ibl:ihoz el6:s.t6r fel\'en megszoritással: az I18 pneLuaen tábla U8Uld
els&JJeges kulcs oszlopi, bpcsolja a C""""""t ~ tábla Ua e rID elsődleges kulcs
o:;;zlopáho.z.

A m.1sodik megszorft1s a Plcturea tábla Pictur eID els6dleges kulC$ oszlopit b(lC$Olja
a COll:rl'lent 8 t!ibla Pi ct u r eiD idegen kulcs o:;;:dopáho .z. Ez II megszotít:ís alapéflelmezés
szerint rlCfll engedélyezi a fellus.lI1..1IÓflak az olyan képek törJé~1. amelyekhez megjegy-
zések tartozn:r.k. Mi\'eI a felhasmil6nak nincslehei6sége a ~k srerkeszté:5ére,
Welye törlb&e a webes ftnyképaJbum.,.lk:r.lmaÚson keres:ttOl, c!b'ZeN au,OIT\;llilrusan
törölni ~ k~z tartozó megj<.~ket a kép törlésekor. Ennek megvalósit:W.hoz
~UílSUk ennek al idegenkulcs-megszorit:ísnak a Dclete Rulc rulajd0ns5.gát C:as;;ade
tn~kre (l!isd a 22.11. ~bcl').

~I ~ ponmállftrehonuk a telieS adatb.l.zis-szerke;:etei a fényké:palbum-alkalmaús-


hoz. A tervezési foJramamak egretJen l«pése \'3n Mtra. ffitgpedig az albimaus
feJhasutfil6i felalet; modelljének megaJk<:dsa_
560 Iv. mz· Webn futóttlun k6SdtMe IZ ASP.NET ~

--'"'--

22.11 . in
IW /o1rlJlnle "ID'~. minden
hozzd 1hrl<)Zó ~é< ls
awo"UI/ikuvJ>J /tJrlQdrk

Modellek felvázolása az alkalmazás


felhasználói felületéhez
A tervez6i folyamat utols6l<'pl-se az alkalmazás ja\'asolt felha57.rú.l6i fclOleté-nek
fcl~;\zol~, A fdha.sw!i16i felillel aZ alkalma:ds kills6 megjo:lt."O~; e7.en k~l
haszrcilja ~ ~égfdhaszrcil6 a rendszert. W,f>;dkalma:dso!< esetl'ben II felha5ll1álói
felOlel3 ,vebhdy okblai"..k halmaza

Mi,'cl a végfelhru;ználók egy alkalmazás énl'k& annak haszrcilhat6ságiban lnérik le.


fontos:umak biztositás:.. hogy az alkaln\..lzls felhas;:njlói felOl",,, könnyen ~ncklnthető
legyen. Amikor II felhaszrcilói felül"'et pr6biilom kit:d.1lni, gyakran vi5.szatl'rek a ten.eztii
folpmat koo'lbbi részeiben leirt haszn:ílat; esetekhe~ ~ azt kl'rdezem magamtól. hogy
.Md}'"n vez<'rI6kre ~ t.>\rendezésre van w1ks<'g ezcn a weboldalon ahhoz, hogy az adon
m(j"\'clelt.'t könnyen dvégezl.esse a felhasználó?"'

Modellek", azért ké!;2Ítilnk, hogy rögzítsük az Öllcteinket a felha5ll11lói felillend


kapcsolatban, hogy fclm6'jilk egy javasolt felllllszn:'ilói felület IlaSZfÚlh.atódgit, illetve
hogy biZlOSitsuk, hogy mi is és a megrendelő is ugyanarra gondolunk az alkalmazás
Itinl'zetl1 blogilópt ilIetŐ<!!l, A modeIleIrnek nem kell múköd6ktpe:s weboldaiaknak
1clUlillk -.sok tc",elÓ papir 6; cerulll hafH:!1.1lat.1val k~iti el az alkalmaz.1sok
fclhaszn1lói felületét, Egy m.1sik lehetőség az. ba helyettesítő ASP.NET oIdaJalcl! 110zunk
lét .... , amelyek nem múköd6képe;ek, de Lanalmazz.1k a felh.SZI1.1lói felilletet felépítő
vcz<'rl6k",.

A fen}'k(,p:ilbom-alkalma:ds webhelyén a követkelÓ weboldllakr:l lesz sriiko;tg,

• Eg).·lIo>llap- Ezen aZ oldalon a né\lelen felhaszn116k s1,ámára egy Logm


hivatkoú51 kell megjeleníteni. lIZ a.wr>CJ:>ít6v:l1 rendelkező felhasm116k sz.1fll~r:I.
pedig leha6vé ken terml egy fe10lgycJeti oldalra való ugclS!. ahol kezelltt.1ik
22. /in • Af6nyk4pebm+"'rnw6s tIMnet el6lltile 1561

a fényképalbumukat. Ezen kívül II honlapnak fel kell sorolnb a rendszer összes


felhaszn~l6jit egy oly:m hiv,llkoű:;sl1 együn, 3melyen keresztül elérhetik
a fényk{-palburnukal.
• tlflnyktYpalb,.", oIdakl- A fénykqx.lbum oldala felsorolja az ado« felllaSZnliló
kategóriáit és képeit. A kq,ek lisL1ja t:m:drnazza 3 kl'pet, arlrulk felir.llár.
kategóriáját b felt<)ltl'5tnek időpomjlt. Ezen kívül a fénykqx.lbumot megtekint6
(jt<JgJtó kategóri~k alllpj:1n szíJrheti a képeket. Egy adolt fénykl'pre kaltimv:.
a fdhaS7.n~ló a fénykl'p rfszletes oldallra jut.
• tlJbr)'kép r(}szletcs oldala_Itt a felhasználónak 1~U'li3 kell 9 képet, annak
felirnt.':t, kategóriljll, 3 feltöltés diturnát, a kép leidsit és a hozz:i \:Irtoz6
megjegyz6cket, Ezen kívül, ha 3zonoo>[IÓ".al rendclkel.6 felhas1.nálór61 "an $W,
akkor új ml.'gjegyzést is fel"ehet.
• tlfln)'képfe/iJgydcH oldal" - Az awnoslt6val rendelkező felluszn.116k
meglátogath31ják:l fénykép felügyeleti oldal~t, hogy új képeket töl~k fel
a fiókjukba, és hogy kezdjék a mcgl~6 képeket és kategórilkal.

Azt javaslom, hogy sz:injunk pjr perce{ ntrulny modell felVlizollsfir:l. a ja"asolt
wt"boldalak sürru1.ra, Nem l~eL1k jó vagy rossz felh:lSUlál6i felület, teh~t nyugodtan
kiproMlhatunk killönfélc tCfVeket és ötleteket. A modellek elk6zit6ckor prób;1ljuk
II végfelhaszn:\16 helyébe képzelni magunkat. és kérdezzük meg magunktól, hogy
rruként v:ll6,;it:m~nk meg a haszn.1lali eK'iekben leirt konkré! feladatokat. Törekedjünk
a!T:I., hogy a koribban 9LOfloo>ilQtI feladato!! minél egy~zerúbben elvégezhetők
legyenek a felha~m~l6i felületen.

A lelhasznál6i lelület minós&géfJek biztositása éfdekében kér;:ri ~ néhány,


a proje/!tlinket nem ismer6 embert, hogy &egítsenek a lelhaszn6l6i feliilet
értébrlésében. Oltessük 8ZIIket III önkéntese/!et a ~ elé, és olvassool: Isi
snimukra agy hasmálati lISSI", majd kéfdezziik ~ &al, oogy miténl vilgeznék
el a leladatot. Ha a használati esetek csak vázlalok egy ~on. III önkéntesek
elég. ha megmutati'l. hogy hova httintanának, vagy milyen muködést vámának
bizonyos miívelelek alvégzésekor.
Fígyelji;irW:; oda ré, hOQ'Y a lellasznál6!:; hOQ'Yan használják alelhaszn6l6i felületet
A lelület bizonyos reWli megzavarját vagy eltMítik a lelhasznfllókat? Nehézséget
<*OZ az önkét1tasebMk annak meghatMozá$a, hogy mit kef tenniük ellY !Idon
feladat elvégzéséllez? Elet a k(jc:so6:; segltségilnkra lesznek agy valóban jól
használható és agyértelmO IelhaszMl6i leliilet létrehozásában.

Amikor valódi meQf&llde!ó«;kel van dolgunk, tartSlJ; észben, hogy il tervezés


lolyamata tWtaltlban ciklikus jeleg(!. A modellek alkészltése UI'" visszaléfOnk
8 megrendel6kMl, IMlmutaquk nekik az elvár'sok lÍrtelmezéÚl és a modeIjeinket.
Enln a ponton a megremlel4k ZOId utat adhatnak nekünk a rendsler megvalósi\ásá.
nlll: m&gkeldésére, de nagyon val6s.zínú, hogy Iinomfoo logjtok az alvár&sokat, 65
ötleteik lesznek 8WIl kapcsolatb<wl, hogy miUnl alakítható ti ÍIIIV a leltasmálói
laliilHt. hogy jobban megfeleljen az alkalmaz'" el6re látható használilti módjértak.
562 1V. rMZ • w. . fotóllun káIZft6Se IZ ASP.HET ~

Összefoglalás
Ez az ÓI'2 az első abból ~ h.áromb61. 3melynek Sl'>l"án aZ 31~pokt61 hozunk létre
egy ,,:ebes f61yképalbum-alkalmazfu;t. Amikor OOletetl pro,cktbe keroOnk. az el56
lépés mindig a tervezés. A jöv6beli siker úloga ~ tervezés alaposs;\ga és min6s{,ge-
egy el"'gtelenül megterveZetI alk3hlllltls szime biztos, hogy sikertelen lesz.

A szoflYerrejleszlésben a terveIbi folyamat általában dklikusan ismétlt'Sdik, éi Mrom


lq,kb61 áll:

l . 1\ tervezési elv.áciwk begríl~é~ a megrt."ndel6t6J.


2. Adatok t.árol:ísAt végzi'! alkalmatlsok esetében a tervezéosl elv~clsokban Jelrt
adatok tárolWhoz szük5éges adat~i$ma Jrodlotls:o.
J. A .... ebalkalmazás rnodell",mek dk6l:z1tése.

Ebben a leck&cn figyelmilnket a pro;ekthcz szíl~ adaMzisszer1<:eret Iélrehozisira


ÖSSZpOllLositotlUk. 1\ kor:ibbó adaMti<pél<tikban egyetlen t:íWt urtaJmaz6 adatb.\zisok
kezelé;& nbtilk meg, de a fényk~lbum-alkalmazás adaMzisa több, összekapcsolt
t:íbl~b6I ~ll. Ebben az 6cl.ban litruk, hogyan fejezhet& ki az egy-egy, aZ egy~öbb és
a több-több adatb:'izis-kapc!iOlatok, valamint hogy miké1ll haszn~lh:ltunk idegenkulo.
megszoríWokat a hivatkozási tpstg bittosí\.ás..á""k érdek&en.

Az 6ra végén a felha.'iZn:í16i felOlet modelljének dljMól és el6nyeir61 volt 5z6. Mim.1n
befejeztilk a tervezést, készen állunk a flmyképalbum-alk21mazás felépítésére.

Kérdezz-felelek
K': A PiC/IIres llj/Júl Cau:g(1)'ID oszlopá"ak AI/oU! Null jclőMn~(!te miht t,<:m
bektlpaolva? Mil jeleni az, ha II PiClUres tábla ®.k rekordJánál II Calcgo1)'1D
oszlop htfke /Iillll. ér megengedi eZI az Itkgcnlm/cs-mes=rilá.I.'
V: A rendszer tervezési elvárásai közöl.1 szerepelt, hogy a felhaszn:il6k lallegórükba
sorolh:l5llák az egy"" kq,ek<-1. Ez alI jelenti. hogy egy adon k~ t:>rtozJt.~t
egy bizonyo:; kateg6riához, de :ll is lehet. hogy nem tartozik egyetlen kateg6riá-
ho~ sem. H~ II Picture~ !.illi egyik rekordji~1 a C"'tegorylO oszlopban NuU
érték szerepel, akkor a k~ nem tartozik egyruen kateg6ri~hoz~.
Ez gyakran használt megoIdb, amikor egy egy·t6bb kapcsolat .több" tábl1jjnak
reko«lpi lehet, hogy az .egy" úbla egyik rekorojM>oz sem k:.(lQOlódnak. Ezén
a Null énékeket megengedi az k1egenkulcs-meg$2OfÍÚs.
K: Amikor afolhaszn/Uófolrolt ~ képet. fOuibbi informáciViNlt ls láro/III szeret-
nék. példa", azt, hog)' a kép másfclhasználók számám ls ""'S,I'ki,,thcllH:.
Fclloc!Jelcm 50ját C[!Yf!(1i oszlopa/mal a Picl .. res IlJblába'
22. 6ni • AHnyk"p1Iun-IbIrnIz6I terrinet Il6I:zfI:h. l 56l

V; Ha tudjuk, hogyan vehdjük fel sa~t os<:k>p:l.inkat, és olyan adalokat is rögzrleni


akarunk, amelyek nem s7.erepelnek u ~Italam F",asoh ad3tmodellben, akkor
nyugodtan felvehdönk 100':ibbi OSzlopokaL (Tem\észdesen további vezérl6kd
is hozzá kell adnunk a k.,p feJtöltb;(...e szolgáló felha5zruil6i fel\l!cthez.)
MindazordJtal én a~ j;lva~, hog)' el6ször poruos:;m ÚIO' v.,gezz(Jk ela fény-
k{,palbum-aJkalma:cls l(:trehoz1sáI, ahogy a könyvben s>:erepel, él; Oólk az alkal-
mazás elké:szílc:!5e él; kipr6bttlása után t(:rjünk vissza a tefVezésl moka5zhoz és
b6vilS!lk az elvádsokat, hogy szerepel;enek azok;l. kiegészít6 információk is,
amelyeke!: tárolni krvánunk,

Ismét16 kérdések
l . Ml a szoftverl"ejlesztés tervezési folramaúnak Idrom lépése?
2. .A szofrverfejlC'lnés tervezési Sl.3kasza ~lt:at.1ban ism(:tl6d6 folramat." Iga? vagy
hamis?
3. Mi a használati est.'!, és hogyan ".,giti a tervezésI folyamalOl?
4 . Tegy!lk fel , hogy Van kl'! táblink :lZ Elnilloyees úbla els6dleges kulcs os:dopa
legyen EmployeelD, a Depa:rtments úbl~é pedig Depa:rtlllCntlD. Ha egy-több
kapo;olatOl1 szereménk létrehozni a DepartJRenu és ElBployeea tábla között,
mil tenn&lk?
5. Hogy:.n biztosítja az idcgcnlrulC$-megszorft:1s a hivatkoz1lsi l-psfget?

l. A szoft\"erfejl~ztés terve?ési folyamat!inak h~rom lépése:ól. köve!:kez6: :ól. te,',e-


zési elv!ir!isok begy\l"Jlf!se a megrendel6l6l, ad:l1okal tároló ajkaImazás esetében
egy oly..n adatblzissénta létrehozása, amelyaJkalmas a tervezési el~':ir!isokoon
leírt adatok úrot.1sára, I'l-glll pedig a weOO.lka lma~s modelljeinck elkészítése
2. Igaz.
3, A haszrn\lati eset egy vagy két bekezdés. ameJyben eg)'s.zenTen megfogalmazzuk
egy adott feladlt elvégzés(:nek módját. A ltaSZJÚJati cselek mindennapi
nre!vezcneJ ~k le <'gy rendsz~ 5zolgáltatlsail. ~ segítségfinkre lehelnek
az ad:ub:l~ma l~rehozisa során, valamint annak bi~osításib"Jn, hogy
a felh_smálói fel!lld huzn:ilhatóle~·en.
4, Ennek ~ kapcsolamak 3 1~hozllához feJ ken venn!lnk egy Depa:rt_ntID
oszlopai: 3Z Employeea mbl!ib;!.. maid l~re kell hoznunk egy idt'genkulc$-meg-
5writást, ahol az elsődleges kulcs oszlop 3 DepaI"tlDente mbla Depart.... ntID
mez6je, az idegen kulcs oszlop pedig lIZ ~loyees tábla DepartmentlD
meZ6je.
564 1v. r6sz • WebIs folóalun k6s2ft6u IZ ASP.NET ~
5. Al. idegenkulcs-megsrorftás egy elsődleges kulcs <=Iopb6I es egy idegen kulcs
oszlopb6l1U. A hivatkozási ~~ aúlul bil:l05;tja, hogy g:u:mtálja, hogy
az idegen kulcs OSl.!<:>pblln szerepl6 crtl:k \"Jgy Nu!!, v::tgy egy az els6dlege:;; kulcs
O6Zloplxin szcrcpI6l!rtl!kre tll\J1at. ldegenkulcs-megsrorit.is meglác ~ hiba
ll'p fcl. es a mód05ítis sikertelen lesz, ha 32 idegen kulcs O&Zlop ének& olyan
crtl:krc pr6báljuk V:;ltmtatni. .mi nem uerepcl az e~le~ kulcs osUop l:nl:kei
köZÖ«, vagy ha egy elsődleges kulcs os.zJop l:nl:ke megv:ilto;zik. v::tgy a son
töröljük, es:lZ idegen kulcs oszlopban ahhoz tartozó &tékek Vltnnak

Gyakorlatok
Ehhel. az 6clhol. és a következ6 kett6höl. nir\C$Cnek to>"1ibbi gy:.korbtok.
A fl'nyképalbum lttrehoúsa a f6 felad:llunkl
23. ÓRA

A fényképalbum-alkalmazás
alapjainak felépítése
Á {eae lartalmabdJ.

• A webe; fényk<'paJburn-alkalrna:tiSl alkotó w(.-IJoklalak részletes vizsgálata


• Me:;teroldaJ létrehozása a fényk~lbum webhelye súndra
• Helyeueslt6 oldalak felvétele a webh... ly miWges oldalaiooz
• Az alkaJmaz!is ASP,r-Tf oldalai töbtlségffiek elk6zít6e
• A \\1':bhely közös eJcme.nek - többek köZÖlt egy webhety-navilPdós \'ezfrl6 és
egy beléptet6 verer\6 - howadáSll :I. nleSleroldalhoz

MOS!. hogy lúJeslúnk a tervezésen. kézren ~nunk a we\::>e5 fffiykép"~lbum·alk:llm:l.Zis


felépít(,she. De hogyan is állunk neki? Mell' weboldalabt hm-zuk létre el&lÖr:> Hogyan
kewhetjOk el mcgvalósitani ezt a projektel a leglJ:llékonyabban? Minden szo(tveraJka] -
1TIlI21I, elkés:dt6ekor segí~get ;elent, ha a feladatot kisebb, kezelhető, fUggeLlen da",·
bokra osztjuk, és ezt a taktilG'it Fogjuk követni ennek aZ alkalmaúsn"k a létrchoúsa
500in is. Ahel~'Clt. hogy beJCI.':igrWtk a kö.tep&e, és létrehoznánk az egy adon haszru\.-
lati eset elvl'gz6éhez ml~ges wcbokblak:lt , el6ször is h:llr:llép!lnk , és (clp; egé$lé_
ben \';:v;gáljuk meg a projektet. hogy elkészítSllnk egy t!imadási tervet.
!)66 1v. r6sz. WebM fOtÓIII:qn ~ IZ ASP.fET SegItS60MI

A wc:b:l.lkalmnások eseI&n a kezelhető. föggetlc:n darabokal általában v..eboldal~k


jelentik. Az el6ző 6riban awno:sílOllunk több olyan weboldall. amelyre szükstgOnk
lesz: egy ke7.d60ldal. egy beléptet6 oldal. egy oldal. amely fIM'"8ieleníti ~z adon
felhaszniÍló albumának kaleg6ri.iil és k/!pe;l, l:s Igy lov;1bb. A lecke v/;gére löbb ilyen
elkészült olc\:llunk Ics7..

Ahelyeu, hogy vakt:\lxm kiv:\laszunink. egy webokblt, és :12.,:\1 kezdenénk a fejlesztest,


nekem segíleni nokou. ha listil készítek a webhelyet alk0l:6 oldalakról. és lffi"ehorom
a \\"ebhely tt:nyleges ASP.NET oldalait. Ebben a kQr:li 5~k:as2ban ezeknek az oldalalmak
nem kell te1jeren mllköd6képesnck lenniük. A fejleszt6I ke2<l6ponljjnak kiv:\lasztlisáoon
:lCgÍt.séget jelent m:if pu5ZÚn az is, hogy v/;giggondoljuk a webhely okLa.J;,it, létrehozzuk
~ helyettesít6 oldaJak:u. és megénj(lk. hogy a fell\:jsznáJ6k hogyan fognak egyik olc\:llr6l
egy m:isikr.llqmi.

Ennek:az 6clnak a végére a webhely ASP.NET oldalainak till:Jbstge elkészül. és teljesen


m6kOd6kq,es i$l",,~. Azok a~ oldalak. amelyekre nem kerül 501" ebben az 6cloon,
a következ661egyben utol~ leck(>ben készülnek majd cl.

Az alkalmazás felosztása kezelhető feladatom


Ha mi'g soha nem dolgoztunk komolyabb mérertI s2Oftver:aJkalm"zi5on. lehet, hogy
túJtcngell<!k bennünk aZ érzelmek az el6nünk áll6 munkáv:'] kapcsolatlxl.n. TaJ~n egy
kicsll izgulunk, mivel ez ~ az els6lehet6s(>gilnk egy tel;esen m6köd6képes, V".oJ6di
ASP.NET alkalnu~s lffi"ehoz:ís1rn. Talán eg)' kicsit aggódunk ls. mivel nagy munka ~lJ
eJ6nünk, és ek-(>gz(>s(>re csak ez az 6clnk van meg a következ6. Ezen ~ ponton eg)·etlen
haralmas feladat V"dn előttünk, a fmyk(>palbum webhelyének létreho~:IiI.

A \'aI65lgoon. amikor oly.!n fdadaual kerülonk szembe. ami n)'orTl:lSZ16nak l~tslik,


énlcmes nt kisebb, ke7.elhet6bb feladatokr:t fcloszuni. Azok. ~kjk m!ir """gtl!f>"SZUlúk
:1 szof!ver:llkalmaúsok létrehoúS!inak folyarn..:lú! , tudjjk, hogy ez az igaN8 mi'g
ink~bb érvényes a szoftverfejleszté:s tc:rtn. Amikor egy Ixmyolul! lépést sok kicsi l(>pésre
osztok, én azt szokum a;intilni. hog).' d&ror csak egy I~ emelek ki, k c:Ivégzem
~ZI. mie16u tO\"ább folytatnám a feladatok felOSZÚ~L

A Jénykq,aJbum lffi"eho~sa' feladat p&lj.ul felosZlllóll6 olyan lépé:sekre, mint .a kezdő.


okbllétreho~\OI" . .a beléptel6 okIallétrehoz.h:a", ... fényképalbum oIdaJ1nak Iétre-
hoúsa". 6 igy tov:'ibb. Ezután az ASP.NET oIda1ak tulajdonképpeni létreho:clsának
megkczdé:se helren megpróMllwjuk a feladatot egy mbik szinten 1000"ább O<52Iani.
A _kezdo5oldallétre~' felada! példiul felosnha!6 az "lldvözl6 szöveg n>egjeleni!é;e-,
é:s a J""')'képalbummal rendelke0t6 felhasznál6k Ilstijjnak ffiCl!Ít'lenítése" feladatokra.
A Jényk~lbumfn:d rendelkez6 felhasználók IlStiilinak megjelenílése' feladal ml!g
tov;ibb 06Z!hat6, mondjuk az .,sq![btaSource vez&16 használata a felh.aszntiJók lisclj1nak
kin~erésérc az adatbi1lsl::ól." é:s a .GridView veztrl61l:l5Zntib\a a felhaszn'l16k lisl:íjának
I1'Iegjelenité5l-re egy hivatkmhsal 11 fe!használó albmnai",' felad:nokra. Ezen;>. ponton
awnban vaJ6Wníiieg meg.nt k~>e eslInk. men az elkl:szítend6 elemek listija
folyamatosan 00.

Ehelyet! osszunk fe! minden 1~1 ktSd>b Itpésekre. majd val6silSUk meg a kisebb
lépéseket. I'tld:inkoon ez aZI jelentent, hogya Jtnyktp:1lbum Il:treho:dsa" feladat
.a kezd60ldallétrehozása', .a beU'p1et6 oldalll:treho:dsa" 5tb. lépésekre bontha ut;1n
V"aJ6b:on ltue ls hozzuk a weboJdalabl. Nyilv1nY:.lló. hogy ezen a ponton ezek
az oldalak egy:lltal1n nem Ie!;znck még mílköd6k~k. de II ki~ ltpé5ek megva-
l6sít.1sa a 1000";\bbi Iép(-sek felsorol1s:l előtt segíLSt'giInkre lesz abban, hogy az eL6!rank
:UIó felad:.lokal kezel!let6 S2imcn I:"tsuk.

Amikor ASP.NEr alkalmazbolm hozunk létre. a megval6sít.1s :ihal.1oon a kő\'(.-tkező


mintát követi:

l. ""'cbhely mesteroldal~nak lttrehoz:l.sa


2. A webhelyhez ~zü~"" oIdabk megh:njroz.1sa
J. Ilelyene,M oIdallél:rehoLha minden szükséges olOOlhoz
~. Az e1késLítend6 weboIdal kijelölése és az oldal elv1clsainak ke2clhet61l'pésekre
bom~sa
5. Miután II 4. lépésben kiv1J3.'i7.l0tl 01001 clkt.<>1.ült, és teljes mtnékben működ6kt­
téljünk vi~~ II 4. lépésre. és v~laSS2unk egy m~sik oldalt. I:zt ismétclluk
pe:5.
addig, amig eJ nem kész\l! a wcbhcJy.

It 4, lépés ugyan in egyetlen I~kém szerepel, de a megvalÓ5it;lfl(1ó 01001 bonyolult,


sá~l61 filgg6en sz:l.mos kisebb lépésb61 épülhet fel. Ebben:u 6r1b:m el6ször az első
Idrom 1{>p('S<'n megyünk végig. Ez ut;1n több weboldalt is elkészjr(Jnk, II kÖ\"Ctkez6 fu
v(,gtre pedig a teljes p,"*ktet bef,*~zük.

EIJY adon oldal meqval6sftása során ninc::s&nek merev $llIbályok IIIT\I vonatkOlÓan.
hogy a weboIdaIITIe9Val6sltlbának m8QIIs s.zintű leladatát mikor ossruk egysrerúbb
lépésekre. tn által6ban azt az alap$llIbályt követem, hogy amm 1lIIY adon 19iadat
ije~ónet lálw. vagy túlsá!JDS<lll összeten ahIlOZ, hagy teljes egészében megértsük,
akkor kel kisebb lépésakra feloszt;tl\unk azt.

EgyszerG mesteroldal holláadása


Ahogy a 21. fejezetben már ,'Olt róla SZÓ, egy több oldalból álló ASP.Nhl "'ebhely
ltuehoclsakor els6l~k(-nt egy mesteroIdaJt ken lárehozni. Miut;1n a melilero1OOJ
II helrtn \"an, elkezdhetjük l~rcho1.fli ~ webhely egyes weboldalait. Ennek az első
mesleroklalruk nem kell tök"le!.esnek lennie, és késlíbb m6d0síLhatO ~ A lényeg ~z.
hogy rögtön az elejtn lét...,houunk egy mesleroldalt, mivel liOkkal egy~zen1bb
létrehozni egy új oldalt, amely örököl egy mesteroldall61, minI egy rneglév/l okblt úgy
bcillíl.::lni, hogy egy mesteroldalra t:Unaszkodjon. Erert els<'llo!'pésúnk egy rnest~dal
létrehozása len.

A me5terOldal Jtin(,zd.á 6; elrendezl>:s6 egyéni izl6;únk hamrozza ffi(."g, de mirKk.'I1ko!'p-


pen szerepelnie kell rajta k>gal.1bb egy ContentPI.a<:eHoldcr ve7.érl6nek. ét; hely"",k
egy SiLeM.a pPath . ..-:Ilamint egy LogmV.ew vezérl/! sclnúr.L. Ahogy:l. 23.1. ábrjn L1tll<u6,
az én mesteroldalam egy tdtomsoros tibl:iz:l.lb6l áll. Az eM sor két 06Zl0P0I: ölel fel. lila
a tdnere, &; a webhely nevét jeleniti meg. ft, rn!!sodik sor két oszlopból áll. ft, bal old.aJj
oszlopban lt:Sz majd a Sile,\1apl'alh veZérlő helye, egyel6re csak a ,.BrMdcn,mb ".iIlgo
Iwrv"Clde kctill a nlOr7S:LútvonaJ) szövegel lnam bele. A jobboldali oszlopban helyezke-
dik majd el a logiI1\~ew vezérl6, amely egy login (Bejelentkezés) ruVlltkoz;ist jelenít meg
a n61eJen, é!; egy személyes ilzellCl<.~ II azonosítóval rendelkC"l/l feJlLaSZniIók wmtira.
Egye~ nonban ll. ,Los;" hifonm.fim. will go Iwrv ' (lde keriil"",k maid a bejelenLke:tb-
sel kapcsobIos információk) szöveget inam bele. Az alsó sor. amely a fel.soOhöz ha"""lóan
ká oszlopot. egye..ít, a rncsIeroId::ol egyetlen ConLcnll'13ceHoldcr vezér1/IjéL tart:llnuua.

n .... " '"~, ... , . ~~ .... ,~ ,., ~.,~. • _")(

23.1. ibra
A ..."nM, a u'ebllCly
...eslf!rnlda/átull,
/éffchozlJsA<r1J .l!.<zdftlJ.

A '*vettesM weboldalak létrehozása


Miut.1n a meSleroldal a helyIIre kertIll, :I. kÖI"<-'!.kez61épb a webhely oldalainak
azo1lOl>ítása é!; l&-ehoziis:I ugy. hogy az el/lbb létrehol'.ott nk"Slerold:dt61 örököljenek.
"~ebhelyl1nkhöl'. a köl"etkez/! oklalak sl'.uk5éSesck

• Oefaul t. up" - A webhely kezd60klala.


• Login . .. spx - Ezen al'. oldalon ll-pltet llliIid be a felhaszn~16.a webhe!yre.
• ereateAccount . ..apx _ AZ oldal. amelyet megL1.LogatVll a vendégek
felh:lszru1l6i flÓkOl hozhatnak létre.
• PhotoAlbum.a9px - A fl'nykl'p~lbum oIcbla, amdy aZ adon fdhaszn.116
kateg6ri;lin~k és képeinek listáját jeleníti meg.
• PhotoDetall .up" - Az oldal. amely egyetlen fényképet jelenít meg, és
leh<:l:6:séget ad ~ megjegy1.bek megtekintésére és beirásjra.
• Defaul t .asp" (~ PhotoA<lnin mapp~b:.in) - Ebben a rwppáoon végel.h...-tik d
a feUlaszruil6k a fényképalbum kezelésevel kapcsolatos ml1veleteket.
A Default .aspx olcbllehet6vé teszi a fdh~57.n.116knak. hogy a ftnyképalbu·
mukba klIpeket "egyenek fel. illetve ambt szerkesszék vagy töröl~k.
• KanaileCaU!\joriea .aap" (a PhotoA<torin mappában) - A felhaszruil6k ewn
3z olddon b6víthetik. s~rkeszth<:lik és törölhetik ~ fénykl'palbum·k:l1eg6ri:iikat.

A fényképalbum felüg),eleti olcblaihoz elŐ'>ZÖr hozzunk létre egy PhotoAdmin fle\l\1


mapp;\t, majd vegyük fel ebbe ~ nl;lppába a Def .. ult. aspx és MMlaqeC .. tegor!ea ... apx
f1jlokat. Az Ö!5.SZes többi okIalnak a webhely gyöi<érrnapp:\jába kell kerillnie.

lehet, hoqy I webhely már rendeltelÍk egy Mtlllállo$ De f aul t. aspx oldallal.
Ahelyett, hogy megpr6bálllénk el6mi, hoqy I megIéVÓ De fau l t. allp" oldal
ft mestefokla1t61 öiW.öliön, gyorsabb és egyszeníbb, ilii tiiróljúk ezt a hetyettesrt6
oldalt, majd úirllétrehollllk illi egy mestefoklal kjylfllastt!s~III.

Ahogy korábban n>!ir volt rola 51.Ó. ezen a ponton nem fogMkozunk azz:.l. hogy
mcrköd6képc,;st tegyük ezeket az oldalakat. Kés6bb egyenként v;..szatl'rilnk hozzájuk,
I's megval6sítjuk a szOkstges sroIg1hat1sokat. 1\1o:;t CS3k az a célunk, hogy e~
egy feladatr.!. Ö&zpomosito;unk. f:n azonban 1K'1ll 5ZOktam teljesen üresen hagyni
ezeket az oklalakat. hanem ~11:lL1ban elhelyezem az oldal ne"á 3 unaltru részben.

1\1OSlanta túl vagyunk a fl'nyké-p3lbum·alkalnt:l~s 1l'~!reho~slinak eM három Il:~n.


Gr:l1ul~lunk! MOSl már kl'"SZCn állunk a webhely oldaJainak ltidolgoúslira

A felhasználói fiók oldalainak létrehozása


kl előző ór.1oon lárehoztuk:az ASPNETDB adatMzist, amely ~ felhaszruilói fiókok
kezdl'séért felelős 3datbhiS\~bI1k t:lrol~s:1r~ smlg!il. Ezeket :o (jbl:ika! autom.:uil<us<tn
l&rehOU:l az ASP.~I:"'. ha :az ASP.NET \l;1.-bsite Adminisu:uÍOIl Toolt haszruiljuk, és
meg:.djuk II hitelesít6i bd.llítáwkaL Egy a felh.asm~16i fi6kokat tdies mtnékben
úmogat6 webhdy mcgv:a16:s1t:í5akor azonban ezeknek a l~bI~knak a Il1rehozis:a CS3k
az els6ll!]*s. A webhelyhez legal~bb egy oly"~n oldalt hozú kell adnunk, amely
lehet6>·t teiZi a meglh6 fiókkal rendelkező felha5znl16knak, hogy újra belépjenek
~ webhd}·n:. kl alk:a!ma~s dvlirnsait61 függ6cn olyan weboldalakra is szüksl'g lellet,
amelyek lC'het6vl: teszik a l~togat6knak, hogy fdhaSl.n51ói t16kokat hozzanak létre, és
segít !\ekik 3Z elfelCJteu jelS2.:1V".. ik vl5SZanyeré:sl:ben is.
A webes f~nyképlllbum-alkalmal1isnak 31. el6z6 fejezetben Idrt ter"ezé~i eld~i nem
haúrozl1ik meg pontosan, hogr melr szolg;'iltatások lfimogatása s.zi1kséges. Konkrétan,
az elvjrnook 5z"';nt..az oldalnak támogatnia kell a fclhasznil6i fiókok:!.!". A haszn~laH
esetek arról besléJoek. hogy egy ké-pzcletbeli felhaszn.1ló It<tn>hoz egy li; fe1haSUlálói
fIÓkot a webhelyt.'I'l keresztül . de aZl nem emlitik, hogy a felhasz.rrlJÓnak kl'peSnek
kell lennie az elfelejtett jelszav:inak vi.!szaszerzbére. Ell'n:l. f~nyk~pal bum-:l.lkalma1.i5
nem fog jeLszóeml~keztet6 oldalt Lan:dmaznl. Mmdazon~ltal ez V"~lami oIp"mi. amit
szerintem érdemes ké:s6bb a sapt wcbhelyOnkön mcgval6sítani.

A fenykepalbum-alkalmaw ká, "felh:l5zn.116i fiókok kezelésére sroJg;'i16 weboldalt


tartalmaz majd:

• Cre<oteAccount .,"spx - Leheto-·~ tesz, egy I~togató súm:lra egy úl fIÓk


Járehotls!it.
• Login. up>< - lehl't6v~ teszi egy Itlez6 felhaszn~ló Sllitruird, hogy újra belépjt.'1l
a "'ebhelyre.

Ez a két oldal a 20. fejezetben megismert beléplet6 vez&l6ket fogj:! ItaSZIdlni .


Ha fel akarjuk i<lhnl u ezekn'll a vezérl6kn'll tanultak;Il, olvassuk el újra a 10. fejezetet.

Felhasználói fiók létrehozásának lehet6vé tétele • látogatók S2ámára


ACre"teAccount . aspx oldo.! rDq!V:I16slúslnak folyamata a kövelkez6lépésekre
OOnthaLÓ:

l. VegyOk fel az útmutatisl adó vagy fejl&slÖ\'Cget az oIdalr:a.


Z. Húzzuk az egérrel a Cre:ltell5erWlZ:I.rd vezl'rI<5t a Too/box paJetúr61 n oldal
tervez6 nezetébe.
3. Állítsuk be a Cre3teUser\Xí7.ard \"C7.érl6Iula~gail.

ms61épbként adjuk n oldalhoz a szOk.ségesnek éne!.t útmutató vagy feílécsZÖ\"eget.


Én úgy döntöttem,hogy a Create a Kew Acoounl (Új fclhaszmilói fiók létrehoz.1sa)
sZÖ\"eget leszem ~ tartalmi ren telejére, majd egy róvid űzenetet, ~melyben eJmagyacl-
zon,. hogy csak a fi6kkal rendelkeIÓ feltusznjlók tölthetnek fel képeket a webhelyre.
Mlllt~n fel\"t.'l.IOk a sZÖ'o·eget, amelyet meg akarunk jelenIteni n olcbJOfl, kel'e$SÜk meg
3 Toolbox Login rész8>en ~ CrealeUserWi.urd v"lérl<5t, és hÚ7.Z11k 3Z egé=1
a Cre,,~v.ccount . "ap>< okblra.

Végül ~llit.sl.lk t... a CreatcUserllCrlZ:l.rd "ez&l6 tlllajdonságait. lu is szabadon v:1laszlh3Lunk


3 LulajdonsigOclllitlsok közO!. Én aZ Amo Form:it Wizard (Autom:ltik", fonnizil;
vaclzsl6) Illlsznilat:\val kezd!em. (,s a Oassk (Kbs&;tikus) bd.llít:\l;l dl:mtottam. Ez ut:\n
egyC:tnreJ (Mi'gse) gombol akanam ft'l\'enni az okblr:a. ezért 3 DI~pl"yCane .. 1Button
23. . . . A " "!'P*"IHlIII.", ,t+,- I I !f,lI fl I 1511
tubjdoosigot True (1g:ol.)~,:1 CttncelDHtinationp4geuJU. tubfClons::lgot pedig
-/o.bult ...px.~ 1IJitOllam. Ezekk~:1 tubjdons;lgbe1llltásokk:al, hlI a felhaszn1ló
ilgy dönt, hogy nem akar IéIrehozni fo6kOl , akkor a CanceL gombrn k:llIiO,h:u, b ennek
hat:isirn visszat~rhct:l ,,'ebhely kezdGokbür.t,

Emltkeuilnk ~, hogy m.ui.1n:l felllólszn.116k I~rehomk egy fIÓkot, a Your


"ecount ha, been "UC •. . . fully cr. .ted (A fd.J:UZn;t!6i fiók lttn:hOZ.:U:a nq-
tOném) visszaig:uzol6 üzenetet ~lPk, \':lIlamim ~ Cominue (Folyui.15) 1IOffibot.
A ContinueD.. tinat.""P"geUrl ,ub~g adJa nrg, hogy a fiók It!.re'lOÚ5a u!jn
00..'1 jus.s:ln:Lk Ezt l:dlli.ha'juk a honlap URJ..jbe, ha akarjuk. mindawrúlu, ttISZenl
a felhasznil6kat a fiók Iélrehoz1sa utin kö;t.n1lenül amo al: oldalra ir.inyltllni, ahol
kezellle\ik a ftnyképalbumukat Eztn ~n ennek alulafdons:\gnak a ./PhotoAC!-
lI.in/o.rll."lt .1I.8pX M~kct adiam.

A 23.2. ibdn a Cr.."te.>:ceount .<1$1»< l~th;,,6 ~ bOn~ megjelenitve. S~n·


junk r.i otMny pm:et. hogy at OLda\J. kJpróWJl'lk:ot böngészOOkbm ts Ittrehouunk
no!.h1ny uj felhaszrú.16i fIÓkot.

~;F-·-e
•••
-.-
I

_._-
'

~. ,,- --
....

~_"""fOtI_
.->0 .. _o.ln_-"""""
_ _ • _ _ _. . . ""' ..... - . . . _ ..

'-'-'
--
"--
--
.--
232 ...
II CMuft:,,"-m.MpXokIaJ

Figyeljük mIQ, hogy I mesteroklabn INg mindig I 8tudcumb WiR go lIere H


a /.OgIn if{OfflI6IÍOII will {}fl hers SlÖVegek 1tthet6k, Ert termésmtisen ki fogjuk
jaVítIOI, mlut6n be'lIJtonuk a webhely navugiciój't. ft létrelloztuok egy '*'pt.t6
OkWt. A 1MSt1l' «' ..... ~ abban rejlik. hogy Dk I ~ ItIüIetl
.-mek kH6btlit hOZZirIL* aCIIat6k." ~ lll! mevtHSli*.. 8lDmmI rtllQj*n·
nek I mnll!Oldllt6l ÖrÖtI6 ASP.NET oM.....on.
Abaléptet6 oldal létrehozása
A Createl\.Ccount. . aspx okblhoz Il:I5OIll6an :I Log i n. aspx okbJ 1lK'8'"aIÓ!i-Iti~n<lk
rol~"allkl!:l is:l kÖVelkeZO: ltp6ekre OOnth.u6:

l . Adju k aZ úunutatásl adó vagy rcjlkllz6vt'gd az oldalhoz.


2. ltúuuk 3z egértel II Login vezM('X a Toolbo", pal<:tclr6l az oldal !e.veZO: ~~.
3. Állitsuk be II Login veztrl6 tulatdonsjgail.

AZ el$Ó ~~l:a Login t o til. S i ts (llqelentJcez& .. ""ebhelyre) S.ZOVega egysz.enl


r~ :><:bm a wulmi ~ let~L MlUt~n feh.euük:az oktIlon megjelcnltcni klvin!
5ZŐ'1'egct. II TooI~ paletta login .~ húuuk uegll.el .. login \~ uokbl
!c,.vezó Mzettbe.

Ahogy II Crt-:au:.lJ5er'll"Iz:mJ \ 'eZbW'j: eset8:len az d6z6 rl:szben, :a 3. ~ mo6t is azzal


kezdtem. hogy fdj:l.VÍlQIUm:1 login \'edr16 ~ az AUla fonnal Wlzard MtPI-
~'el. lsrntt a Oassic bdU[(jst dbnl\"a. Mn'el flÓkkal rrq nem rendelkező fdhasz-
nilók is juthatnak:a beléptct6 okblD. :1 Logtn vezérl6 Creat ..Uae rTe"e lub~g1-
Il'Ik a Creat e an Account (Felhaswl61 foólc l~hozisa). Create\Js erlJ rl Jula,.:lons:i-
g1nak ped.g a _IC re<ttel\.ccount . aspx méket adtam. Ez egy hiV"Jtkoz:lst helycz cl
II login vezérl6 aljin. amely'" kauintva ~ rdha.~1.n~I& Il:crehozhatnak egy fiókot.

A 23.3. ~n a LOQ i n .aspxokbllo1th':1.16:a ~ megjelenít,'e. Ahogy


II C..... tMccount .asp" okblnál, iti iS sz1njunk nélliny percei a múk6db kiprób<1~.
6: gy&6djiInk meg tób, hogy be tudunk ~ egy ~ez6 felhaszniló :ubu.val.

--
llIe O r. . . . . . . . . , . • • •

il'

23.3. "
F,o- ....lhofifOI~ .. tcgin.41Jn" oIddkm ~'U WPMI be ti II~"'"
Im

Bejelentkezési infonnációk felvétele • mesteroldalra


Motil. oogy Il:Ircllonuk a bd{:pll'l6 oldalt, t(orjúnk ViSIiZ3 a mesleroId31ho~, ~ II f<;I6:rész-
be vegyOk fel ~ t~jelenlke~ imOl'l1Ú<iÓk:lL Konkr('un <-gy Login\~!eW ,,~r\6I fogunk
luszn1lni. EmlékeUilnk vi!;.$U, hogy II login\~1C'W két SIbiont ~ AnonymousTemplale és
LoggedlnTempbte -1lI1U!nu.L Ha;1 webhelyre ~t0pt6 felhaszJú16 rendelkezik
alXlllOSÍlÓ\"l, akkor II LoggedlnTemplate ~k rroeg. mig ha" felhawd.1ó nem ~(
be. az Anonymou.sT~U,'

A né'I'telcn felhuznjl6k 5dm!ira jelenitsOnk meg egy hivalkOÚSl II be~c:t6 oldalra,


:ilbejelentkezett felha.szN16 knak pedig egy rövid Qrene\e\, egy hivatkO~$I. aho l kij<:-
lentkczhetnek. és egy IUV:llkozá.'>l. amely a,.", U oId:dra lr.:inyílp. <'iket, ahol kezelhetik
II mnyk~bumuka!. A. ka SólblOllrnn ~zerepk5l.o91n ts LOgout hiv:nk01J.soIc
a loginSbnu "e~ Joegi~~el adh:i16k meg. Err6I:il ,'C~ II 20 fejezetben
tanultunk. A veztrkl egy LOgin hi\l:ltkozht jelenit meg II né\1e1en, o!s egy LOgout
Iu,.. \koz;ist:il bejelentkezelI felhMWIók wnUl':l. Ahhoz. hogy II bejel('mkezcu r<'l ·
haszJÚlók WJNr.I ~k II hiv::ukoÜ${ II fenykq,album kc;u,lb&e, lJaWdljuk
II LoggedlnTemplalc Il yperUnIr. vezérl6jtt. o!s anl1ójk N.. vigllteUrllulatdonsi~\
;11htsuk II PhotoAdlll.I nl 0.[ au l t . 4SpX oId:ilr.:l

1. MenfUnk II ~eroIdalra. & U ~ hauunk. qo< LogmView ve~~


II TooIbox pólletLból az oldalnak. lIlTlI a réRére. an>d)1k jelenleg a Lo91n
t"to.--t1on ,"lll liO here UZeneteI taltaJmaZDo
2. Az Anon)'lTIOU!oTempbte SWIOnba 1~'Ilnk fel egy Login5lll.tu:i I'e~,
Ez jeleníti rrujd meg II Login 1u~.. tkOÜOt
3. A Login\r,",,-\ ~1I11,suk LoggedlnTemplale-re
4. A s:l.blonoo. IrjlIk be II WeleO!l\e Nek n.Őlegel, majd "együnli: (el e8~ LoginName
vez&l6l.
5. Miulln a 4. I~n feketlük a togm"'~rnc ve~<!rl6(, egy LoginSt:uus vez&t~ is
adjunk a sablonhox.
6. Miul<in az 5. ~ feh'dtÜk a LoginStalUS \~. egy Hn)Cl'Unk vezér\61: is
ad;unk II sablonhm.. Tu:t rulajdo::Jn.oág:irulJ a<Jjuk meg aKanalle Phot·, Albi.-
(Ftn}i<~Jbum kezd&) SZÖ\TgeI. tlllv10ueUrl rula~g:inak tnéke pedig
legyen I PhotOA&olnlDefault .a8px.

Ha mcmjiik a ~croIdah, 6s meglekimjük a w(.'bhely honbpj!il. akkor nem IcszOnk be-


jelentkezve. ezért egy a 23,~, :\br.\n l~that6hoz hU:lIlló k~yóc kell ~lnunk. Figyeljük
mI"g, hogyanukor nem V"~gyunk bejelentkezve, a Login hivatkoD!; UthaIÓ. V~J I>W~
;r;unk Jétn., egy új fd~16i fIÓkot. Mludn ezt nlq!tellük, 6szre fogjuk "enni. hogy a be-
,elentkeús felhasznjJ6j felülete rllC8'-Jhozon., b a !.ogin hiv:ltkoz1s hd)'t'I1 a Wel~
block, l"llwl.u.vJón<fv~ Uthat6 egy 1.o8Ou11"'''lkoclwd qn.iln (23,S. oIbra)
514 Iv. ,.. W"'lul6llunt" tIIIWASI'.HEf ....~~...
!!l!'~I.~"''--_____________

....... _....
1 _ _
-
,, _ _ _ , _

'
.
~
"
• - _'o
••
~-
f- _",.-~.:-~.o.lIIIe:
=:-,;;;:~~·
,.... .-...~·~-~·~:I
I _
I _
Tk
..... 00_
Online Photo Album Home
.;;.+ ~ . . . "'"
..0.-
n .4.11br1
ti ..."", .......... foIhasnwltMm /tJIotIIUjull """II " honlapot. ""'fIirimUt." LotI/n h/... /wds

...... -._- ...


0- • " - -- . ... •

- -. -
Online Photo Album Home

....
_....
23.5. 11br1
,IlrmA" "foIJtas':mdI6lwJe'mlllneo. qt). Od,06VII Jlttrwf. rMItJ",irrl "'" h"...kmtJ

A webes fényképalbum kezd601dalának létrehozása


MoM. hogy túl vagyunk ~ fdhaszn116i Mkok \\'eboIdal:tU1, a kö,..etkez6lélrehoz:md6
oldal a fmyk~lbum .... ebhelyblek kel.do5olcbla Ennek az oIdalnak:.oz a cl!llól. hogy
felsorolja a ""ebhelycn ltv6 ŐM7.e5 fmyk~lburnQl. b 1chel:6... /': t.::gye a l~togat6knak
egy adolt ~lbum g)'Of'S elérbtt. EmlneU/:m ugyan kor:ibban, hogy a Phot oA. l bum . ..px
okbh fogjuk qw adott fdhaszniló fénykqnlbumáb..m talMhat6 kq,ek megjelenhbl:n:
haWl.11nl. <k még nem mentOnk bele ennek megvaJ6:slt:l5l részlcteibe, El d&lÖf
bonyolult fdacbtnak [Únht'l. IIisZen honnan tudhatja az oldal. hogy melyik fellJ;t5w16
aJburn11jelenítse meg?

,., 9. fqe~ az oldalak közötti inf~lad:l5 kGlOnb0h6 rnódl"lIÓI volt m.


AZ ASP "lET "Ikalman<okhan legs)':Iknbban hlIWI.1h megOId1S" vi51<l"oiuoIb. am~
mU'Kbg sor kml, :urukor "felhasznil6 rgy Bunon "ezéor16R: kanm!. Ahogy azonb,1O
,,9. leckében drgy:oltuk, mis m6dj:;ai i5 Y:Ionnak:u: informkó6k ~1adh1nak. Gy~kr~n
I",
h.uWII megOIdii; pél<.Uul a /&érdez6 -'mlacrllmwli h.uW1~u. A Iekt-rdez6 karak-
tcrl~oc egy oly_m, nem kötelez6en rnegad:lrlcló k:lI'ak\erl1m:, amelyet .. webold.1l URL-
j(:nek v~g~heL fúlhertlnk Konkrttan. ha egy ...·ebhely ultl.-je t:lttalmu k&d6jclet (7).
~kkor a kérd6je1 ut1.n minden a lekérdez6Iarukter!:lnchoz t:lrtozik,

\..'~Ió:n1nűl~ látrunk mir oIy:on .... ebokbbkat. amelyek URL-je így nl!z ki

Egy adOIl felhann~ló ftnyktplllburninak megtekinl~hez tehát a PhotoAl


bu",. Upx?r D~F~Jhaszmfldld URL-t fogiuk h ..szn1In'. ahol a F.lhan·
mlJdld a relh .. s~n1ló egyedl azonosítója 3Z a,pneLUuor, t1.bI1b61
A Photo.'.lbwo ... px nu[~n ennek alekl!1'dez6 karakterl.incnak aL énekét
fagp megvi1.5gilni a felhUUl116hoz tanozó k~k melll"lenítésl:hct. (Ennek
rnódfit .. k1lvetk .. z6leck~ ~Uiik meg_>

TeMl azt akaf)IJk, hogy kezd60kblunk lTlt'fOII.'Ienitsen egy 1i.sú.!:lZ I06pn~L\i.~n


t1.bLtban ulálhalÓ ~ fclhasm:1l6f61 egy PhotcAlbum ...px?HI.FeJh. .rI14lJóId
hh'atkoUss:il együtt Ennek mcS'~lW.ít;\sihoz a kÖ\·etkez<'!lé~kel kell elvégezntlnk:

l. Vegyűk fel az utmutal:lsl adó 'Illgy fe~éc.szövc8et lIZ oldalra,


2, Adjunk egy oIy:on SqlDauSource ~'el&l6t al oldalhoz. :uncly \lU.suadj:l.
III aspnet_UUOH t;1.blfu:ut .szerep16 &&za ~hagyoo fell~161.
3. Adjunk egy GrKlVIew vezérl6t az oIdaJlMn, ~ k:ipc:;oljuk O»zelI. 2, l~
szereplő SqlDacaSourct' vezbtffi-eI
4, Állitsuk be tlgy. Grid\"tcW vezérltll, hogy wulmauon egy HyperLmk~,
amely egy a Photo.'. lhulo. upx oldalI'<! mucaló, ~del6en rOtnÚ:ec«
hi\';ilkoüw képez6d,k le. Blhez:lZ adon felhaszn:ilóhw canow Uuorld
onlop tnék~ kell :tcadni a lekérdez<'! karakterl:tncban.

Az l lépésnél61 az anlin. Photo Album li.,... (A webe$ fffiyképalbum honl.:lpja)


fejll'CSzÖ\,eget iJum be, \I;l!amint ntmi úunu~ a Iltogatók sz1m1r:a, ameI)"b6I
mrgr.udhatj1k. hog)'2n tekinthetik nq: egy meg\t'.~ fdh:lszniló albuINI, ts hogy
núktm kezdheuk d $Ifi! ktp.-ik feltöhbét

Az SqlDalBSoorce V02IIrICI ho'"'edis. és boállftása


A fényképalbum-alblnuüs kezd60ldala létrehoz:W.nak következ<'! ~ egy Sql-
DacaSouI\:<:"'eztrlő how~d:15;I. amely kinyeri az akuv fclh:lszru\J6i fl6Ir.okat AIKIgy
a 20. fejezetben t;1.1lO~ltuk. a felhaszn116i roókok az ASP.r..'ET Webslle Adm,llUU':Ition
Tool $e8Í~'el jeIöIhe!6k meg aktivkén! ''2g)' ínilklh·kM. Az inilktív vagy Juün
felh:l.sztdl6lr.nak nem ~ megjelenruük a kev",*bl albumlcdjaban.
Az elnhcti! feltw.zru16i fIÓkOk lisúl'in:.lk kinr~l~~ d&;zör is adrunk egy SqlD.al3-
Source ,~az okblhot, és:lZ okos cirnk~ kaltU1l~llflk a C<>n~1'l1lr. ~t.
source (Ad:lúOl'l'ás bcllliúsa) hj"alkoz:i5r~ A Gonf1gure lhe SeIeCI SlaWmenl k4>em~ÚI
különböro m!zetcktt fogunk UIn; a lenyfl6llSl,1rn.n (pél&ilLl
"",_&spn." J(embenh!.pUaers és ""'Jlspnet_U.... a).

A J'léze(" rulaidonk~ az ö:sszcIelldlb SELECT Iek&dez&k mhik elnn·e.ú:5e.


K~zeljOk ell*kUul. hogy ",Jn egy megIeIlftt'!5en bon)-oluh SQIrlekbrled:sünk.
amely löbb szaról"f~z~ bfUlmaz, 610bb úbUbOI nyer ki atbtobl. Ahdyett. hogy
mmden albJornnu,I Új...ím.ink eZ! :lZ SQJ...lektroez~. 1I1T11kor .stiikXgünk van d.
beaomagolll3lJuk egy nhetbe. EZll~n a Iekérdez6 egyszenlen a ~ze( meg!úv:i5ival
,'1'gn>hajuI316.

Az ASPNETDII ~cblW.zls löbbf"'le nézetei brtalmaz. amelyek megkÖf1nyiUk u aOOI -


b1tibn $zerepl6 adl10kkal ,.,.Ió
munk.1t. Ez j6lúr II wmunk.... n\l,-et az !<SPIiETDil
több tibl.31 urulmllZ. ts kisst orm6I:bnn! .-álh.lln:.lk a löbb tjb/jb6l adalokal kin)"en."í
!ek{,rdere;ek. Eteket a kOrillnYnYes lekkdezo!olckel egy nézetbe aopM05IIva azon..
ban kr."ábszth:u ..... k az SqIDauSource var:\zslój'lb61:r. no:zeleI. ts .uLaI doIgoVI:otunk.
mcgúszva II bonyoluli SQL-ul35'rtjsokal,

A webhely kczd60lcblihm a ""'Jlapn.tJtelllbenhipU. ..... nézet~1 fogjuk h35m~lnj.


amely az IIBpnetJ!embeuhip és az IIBPn .. t_U •• u IjbU.kból ad V~UI ad:llokat
Az aspn.t_U ..... dbb ~ k II rendszer Ue.rId ts UaerN..- adnait 1';l/uJmazza.
az ~ felhuWJói adatok (ptldiuJ hogya felll:lSZl\iló aktiv vagy lnakli\"~)
az •• pnetJl..... nMp tlbIiban uUJhalOk

l. A Gonf1gure tI~ ~Iect Statentem képnny6n U!hoUó leny06Jl5t<Ib6I ~bsszuk


a vw_&8pnetJte..beuhipU,..!rI ~ZClet
2. Az OI<zlopliSlilb6l ~k a UsuJd 61 ~ U••rNIlmI!' os:dopolw Il.'Iöljtlk kl,
3. KallinlSUnk a WHEIUt gombrn. (,!; vegy\lnk fcl k"'" 5ZÚn."íkifejezést egyel at Ia-
Awroved O6ZIopr.a. és egyrt.:lZ IaJ.ockedOut 06ZI0Pr.I Az Opernlor (Mú"det)
nundkeu~ le-gyen·. a Souroe (I'orr.\!i) pedig None ( S'no). &. 3d,uk meg
a l\")gziIetl TnI~ &léket az IMwroved 06dhagyon). tIJet\'e a "l~ .. (Ibrrus)
"""-.!ket 3z IaLc>ckedUut (~,,) wrm ..... f..z btnosiUni fogja, hogy C.5:Ik
a jÓlall3g)'ou, nem ki;cln fe~J6Ii: nerepetieflek II Il5lában
(l~ a 23_6, ~br1I).
4, KaltJn~lLnk az ORDER BY gomlxa, ts ~lli~uk be. hogy az eredmények.
rendezése: a uaern... oszlop al3pi:\n növekv6 sorrendben lör1én",n
23. tln • ANnyUp.r'\-IÜ..... , II.. ilki 1571

-_._-- ... __-_


_._-.'-- .... _. _._--- ...
-- -_.'--~

----- ;::=:::::l
--,~

_.,-
-- .--
-- - -
--
_._---- ... 1G;iJ

23,6, 6In
lo,o.afol a /ell ~r6ItIfOJnbt az Add WI/ERE a..wrepiJ~"

Az 1-'\, I~ eh~ u!Jn az eredményezeu 'iiELIIC't' lektrde~nek" ktJo.·eOcez6k~


pen keD kmbrue:

SCLZCT IUnrldl. [User"'''-]


PROti (vv~.8pnetJleoobtorahlpUuul
WllEI\l'! IIIIsAppro\r&dl n,Apprö\redl AND ((II!:ockedOutl • Us!:ockedOutll
OI\DER aY [u,erHa ... J

A kq:,em)-6n pedi8 oI)"d:smil kdll1tnunk, mint a 237. ~br.1n.

,-,-
_.......... ,_.-
-.-....-
- -
~-..

-'-
'""'-><,-: .... :--
--_._-~-
_. _ _ .

( . G!!iOl

23.7. in
tU" !iqlf)atn$Qo.rrl' .~ tu tJUU$ j6uJhDg)'oo, ""'" J/h"" foihauroáJó n'SSUla/l4uI".
6Jlil(}#,,1t ""
578 l v. rúz · W.... foI6IbIntnzftállZ/lSP.NET~

A fényképalbumokra mutató hivatkozások meyjolen!téso


egy GridView segftségével

Az SqlDataSource '-ezért6 bclUítása ut~n n utobólépb egy GrkMew vezérl6 feh"élele,


howbpcsol:ls:i oz SqIDataSou«:-e \'czérl6höz. és bdUiúsa, hogy egy HyperIlnkFicJd-
n>ez(,( t'llulmanon. El6ször huzzunk az egém::1 a Toolbox palcttár61 egy Grid\~ew
vezérl('( a kezd60ldal"':I Visual Web Dcveloperben. & <ltán bpa;oljuk össze:l Grid·
VIeW vezértOt az SqIOmaSource vezérl6vel, :I~ltal, hogyaGridView okos címk~ek
lenyf\6 listlj:!.b6I n SqlDat:lSourre vezérl6 azonosit~t v:\lamjuk ki.

Ezen a JXmton elv~ezhetjük. GridVICW bármelyik tul3jdon.s;\~nak igényeinknek meg-


fel"l6tesuesubbát. Nr nem írj!ik etŐ:l. tervezési elvárások, esctleg á"demes rendezési
& lapozási támog:uá51 il; bdllltaru a Grid\r,.,.." vezérl6höz. Ezen kívül ha-smilhatjuk az
Aula Forrnat Wizard sroI~lta(jst 3 GridVICW megje~nek lavításár... ""gy beJUlt-
haljuk az EmptyDat"or.xt nda)donságot. hogy ne zavaljuk ÖSS2e:l ftókokat még nem
ultlilmazó ...·ebI>elyet megUtogató fellta5vlálóbt. (EmlékeZlilnk vissza, hogy az
EmptyDataText tulajdons;ig énéke jelenik meg, ha a GridView vezérl6höz kapcsolt
adaúO!"T"h-vezértő nem ad vissza eredményt.)

Ha m:ir ugy néz ki a GridView, .tlOg)' szeretnénk, akkor az okQ!; címkéjében kattint·
sunk az Ed,t Columns hivatko~5ra:l. Fietds ~rbeszédablak megjdenítb(-hez. Ahhoz.,
hogy hiV1ltkoü51 jelenitsünk meg aZ egycs felhasználók fényképalbu!N:hoz, egy
Hyperunkfleld mezőt kell felvennünk. El&zör 37.0nban végezzük el. Use:rtd
BoundField eltávoliús:lt, amely jelenleg része:l. GridVICW bal alsó sarokban felsorolt
",.,zo5inek.

& uún "együnk fel egy új IlyperLinkFieldet. és mozgassu k azt az oszJoplista tetejére.
Végül a ~lyperl.inkFkld Text rulajdons:lginak adjuk a View Album (Album megte-
kimése) 6téket. a DataNa"lgateUrll'ield,. tulajdonság legyen U"erld, a Data·
N,,"igateUrlFormatString tulajdons:lg pedig PhotoAlbum.a"px710~{O!. A tulaj-
dons:lgt:rtéke knek ez ~ kombin1ciója egy hiperlli\'atkozlsl ad a GridView minden
~hoz, Vi ..... Album szöveggel. Amikor:l. Utogatók ezekre a hiV"~tkozások", kat-
tintanak, a PhotoAlhum. ftSpx1l0_YelhftunálóIdoldalnt jutnak. ahol a F"elhasz-
mf16ld a kiv~lasztOll felhasználói Bók egyedi aZOno:;ílója,

A 23.8. 1brin a f(-nyké-p:llbum·a lkalma~s kezd60ldala l~tható egy böngéS7.6ben


megjelenítve. Ez a ft:nykt:p:!lbum webl>ely h~rom felJtaSl.ll~lói fIÓkot t,malm;lz, Ji5un,
Sam és SeOl!. A Vieti Album hi\':ukozásra kal\lIlt\'lI a l1togat6k" PhotoAlbum.aspx
oldalra jutnak az adott felhaszn.116 awnOiSít6j:lnak ~tadis:lv:ll. H:I. pekUulJisun Vi_
Album hivatkoZJIs::lra kattint a litogató, ~kk or a PhotoAlbum.aspx?lO_Ofdeb883·
Oa34~H3a-8e2d+5061S308215f oldalra jut, scan Vi_ Albwa hiV1ltkoú"" pedig
:I. PhotoAlbum. aspx?lO_6b1835el_ 5 ~5 7 ~ 4ch- ~?7 8-af9 f 1 fkSc86 oldal", visti.
Online
_ to_"'*"'_""'" To_ .. - . g . - . .
aI:IO.nO. ......,. _
on !ho IH< ln Iho Ilot _ . I f _ ... . ... _
YO./\O _
ln ..-.."..., """ _
_ _ """""' _
-'~\IW _ . . - to Orr .,
""'" ~

23.B. jin
A ~/on mcg",I<llhmó
YWlh .. ...,
YW I" .. ..," mi,,,,,,,, tlkri,'. '1I!m klmn
fi'l1uJsz ..iJ/6 ""U,, <IZ w""m<lro
m,j/ilI6 hI"mkoz<lssll1 fX)""
Ahogy 112 el6z6 6ráboo már voh róla SZÓ. a f~ fiókobt egyedileg BlOnos[tja
a Usedd OSlIop, amelynak típusa un1quddenti fier. A unique identi~ier
nagyon nagy wmot jeIeot, amely gIobélisilO és időben is egyttdi. Ezt il nilgy Wmo!
áltillábiln hextld6cimMis formlJban jllklnftik meg, tehát minden mmjegye! 16 karakter
j o~ g és ,,~ll valamalyikáwl jelölve. A haxadecim61i5 jtizanhatos számfoodsrerbelil
f0flTl8 CsK egy m'sik. tömörebb formátum 811Y fIiII/Y mm 'brálolásn.

A kategóriák kezelése
A tervezési elv:!.dsok kÖZÖlt szerepelt. hogy:il. fcJhasznJl6kru1k lehet~ keU adni
k-~teg6rilIk léUehoz:lisán, szerk~Zt~ & tOrl~. A kateg6ri:lk célj3, hogy segí\Senek
a feU,asznjl6knak az albumuk rendszererestben. Lehet pékUul, hogy egy felhasm11ó
kf:t kategóri1t 3d a~ albumához, Badtok és Helyek néven. Az új képek fellöllésekor
megadhatja. hogy az adolt kq, melyik kateg6ri:\.b:I taJtoLW(l. Amikor Utogatók
egy ~dou felha.sut:l16 fényképalbu",:it né7.~'\ik. lehet6ségük lesz ~ képek kateg6riák
alapjin tönén(! szúrbére.

A PhotoAdmln ",appa k(:t weboldal:il., a Default ."sp)< és a Kana.qeCategories.asp><,


lehet6vé teszik a fényktp;.lbum tdjn kön! kerelését, ide énve a kateg6riik és képek
kezelésél is. Ezek U oldalak 3 \\"ebltely legösszetetlebb és legbonyolultabb oldalai.
eZ&-! haSV>O:s lehel, h3 a fényképalbum kezel6ének bonyolult {ebdalJit egyszenThb
{eladatok sol"OZ3t~ra bonljuk

l. Állí\.SUk be úgy az ASP.NET webhelyet, hogy a<ak a bejelerukezett felltaszn~l6k


nyithass!ik meg a Photo Admin mappáoon 1tv6 "·eboldal~kat.
2. Tegyilk lehet6-,·é új kategóriák felv(:tel(:t,
~ I v. réu • WIbn lOt6IIUn IJaDt h. 81: ASP.NEJ ~

3. Tegyük lehet6vé a felha5Wlóknak ~ l{,{eU\" kategóriik szcrke.szté~.


4. Tegyiik lehet:6vé, hogya felhll5znál6k töröltenek egy meglév6 k~teg6ri:ít.
5. AdiUnk módot ~ felhaszn1l6knak. hogy új képel töltsenek fei az albumuklxo.
6. Tegyiik leht:t6vé a felh.. sZIÚlóknak a k!'.phez tanozó inform1ciók (cim, lrir:\s
stb.) nerkesnésél.
1. AdiUnk lehetőséget a fdl\.OlsznáJ6knak a meglM ko/k törltsére

Ebben az óclban az t-t 1éJ*ssc1 fogunk foglalkozni, az S-7. lép& a következ6 6rám
I!l.lrad.

A névtelen fBIhasználók felügyeleti oldl>hoz való


hozzMérésénsk korlátozása

Mivel a Photo"","1n mappálxon utálható weboldalakat 3 bejelentkezett fdhaSZll~I6k


has.znál);lk a fényképalbumuk ke~d~re, footos. hogy kol1jtozzuk a névtelen fellusz-
nál6k hozz;'lf&6;ét az itt ul111\.01t6 oldabkhoz. Ahogy a 20. Ie<::ké!:>en m.1r volt róla SZÓ.
n ASP.NET webhelyek hozzáférési jogosults1gai az ASI'_"'ll \'tl!bsite Administration
TooIl'Cg'[S(,gfo.·el ~JIitllat6k!:>e. M05t IOItsilk be a Website Adminsitrat;on Tool es:>:kön
a Website IllCnil ASP.J\.TI Configuration par~ncsjn3k ki\"~lasnbival.

],,~ •. , .• ,." ... ". . --o

:-e •

0_
0_

...
0_-
0 __ - 0-

""' II c-o '"

ZH. an
Allil$1.k bil a hozzáférési }ofI,<m,ks6P;OOa'. hogy Q nb."U'ktl f,./1uJsrn<l1Qll
"" Mf08tllha«<lJl a ft'lilgye/nl oldali
23.6ta. A...,."'m ••, , li·· ... 1 '1 1. 1 . 1581

M- ASP.m, \t'~e AdmlOlMra!iQn Too! betöll6dbe ut1n bnintsunk ~ 5«umy, nujd


:u ACCeS:!; Rules ~bbkhan ~ Crea!e access rules hlv:llko~sra. A 23.9. ~br1n :'ilh~!6
módon v:ib""zuk ki ~ PhotoAlbulo n>:lp~t ~ bal o"l;olon !lI.i1iha!6115t:ib6I, v~la$s~.uk
1I~ AnonyffiOU$ U.sers (Nhlden felhaszn116k) és ~ Deny (Til!1s) v:ibSl!ögombok:u, t's
kattintsunk az OK gomoo. El: megakad:ily=. hogya jopulall.:m felh~sl,~16k
n1:t'glollogassak:u oldal!. Amennyiben ell .negpróWI)1k, ~ rend.szer :lUlOffi:l:ukus.tn
~ bdtptet6 oldalra ir:linyn,a al 6ket.

A bejolo"Ik0Z8tt foIhasznáI6k katog6rioIistáinak Iokéréso


A kalególÜk meg,telenil~nek, szerkesnb&\ek, [ör"ll::s{,nek és be:minblruk lel ..... 6vt
lc!1elthez elŐ'izÖI" fel ke;; vennIInk II PhotoA'''dnJMaMgeC... t@9orl ....... pxoldalra
e!:IY Sqltnt:lSource ,·e1.l:rI6I, an ... ly kiny.m ~ megfelel6 ~kordokal, tlI IN'!EItT, UPDATE
~ DELETE llwlt:isokal is tartalnuz. Néh;iny aprödgra oda kell fig)'elnllnlc ennek
:ll SqID:l.t:lSource \e~ a Ilozú:ld:is.kor.

M-eg)ik ilyen fil1:Oll1dg al tppen lx:jekntken:u fdlllUZn1l6 a2:Cln05it:iS;a A :at.,gorillll


tJWhan meguUlható a rrodszcr 6\szes felha.sznj!6,a 11t:t1lc!1rehozon tiU:reS lategórb.
A lU:""gllCatOl9orl ••• .ap~ oId11on azonban C5:1k az tppen bejelentkezett fdlu.sznj16
k~teg6rüÍl akarjuk megjcleniteni. A Categ-ori.e Llb(;t U.erld 052:l0pa llZOOOliÍ!j3., hogy
melyik felhasoWil6 mely kau:g6rijk:u horu 1.."11'\'. Ezbt nundör;.<.-ze annyit kell tennIInk ,
hogya SELECT uWiW WIlERE ~hoz t"gy szűrt'llr.ifejeztsc (\\lnk, hogy az C$lk
azok;,l II categ-ori •• rwekordobl adja~, lImel)'clcnek a U."rId osziop;l n-.egeg)'CZik
az ~ bejelentkezett fel~16 U.."rIO tn&t-.·eI.

Sajrt:05 az SqlD:t!<lSource ,-ezér16 , .. r:liDlój;I nem ad nlÓdot oIpn WHEllE zlntkkl'~nmé­


ler ll:trehoz;l,s;;ira. amclyno:.:k:ll tnéke mcgcgyelok az éppen bejelentkezett felluwcll6
lIW005it6j:h.. l, de all [cl1!:16\'! [eszi:ll szlmunkra, hog)' a Wl-lERE úradékp.muTléter
trtékc!1 egy al. oldalon t;&1:;lhaI6 vezérlő alapj.1n 111it.Suk be. E2;ffi feh-·eh(1.i1nk egy ~bel
,'e:rer!61 az olddrJ, ts :IInn:lk Text (Szöveg) !Ul~~gjl ~ bejelentkez~"lt felhasat.116
userld I'rttkm- ~lli!h:a!Juk, nu;d ennek:ll ~bel \'ez!rk'Snek az tnékét lusznilh.ujuk
a WHERE tir3dékp:u:l.lnc!1erben.

~nk !ddt egy .... beI ~zérl6t ~ ManageCa.tegoc le.,asp>< oldal wtalmi rés:di"Oe'Z,
;tUisuk ~ cimke JOruLaJCklt'Wg11 a uae. .. I<!Vahw bI:Hcn.-, l<'lfőljük II Text ruil~t,
ts iJlitsuk:ll ViBlble tuiljllons::1got. hlle éntkTe, hogy a cimke ne 1e8)-"eIl Ulhlltó
:II feIlI:lSZlÚ16~. Ez uIJn adjuk az ~ bejelen!kezett felhasznJJ6 u.. rId
trttkét a label \"ettr\(5nek, v:iltsunlc az okbl fcm~k(xl rész&e. és hozzuk lc!1re
a FageJ,oad esctnl-nykezd6t. (Ell:ll CI/ulmi rtszben dup!:1.n ka[umV'~ ls lc!1rehozlu!juk.)
A Membership oszt.1Jy több filggvro}1 is k'n.11 act ASP.l\'ET t:l,gsági srolg~lta\!is;lillOZ:
rendelkezik például CreateUner\). GetUner (), GetAlIUsern (). DeleteUser\ l stb.
fill!8'~nyekkeJ. A GetUaer I) filgJf.ény a~ <:ppen bejelerukezeu felh~s1.nál6r6l ad vism!
infOfflÚdókat. a ProviderUaerKey rubidonság pedig a felhasználó UBerld ért .. ké! adja
vissu. CA ProviderUserKey rulajdonságénl'lcre:l . ToString II filggn'~nyt kelJ
meghívni. mi~'el ez 31. 6ték egy egyedi nonos1l6. és karaktl.'rI1ncd kell :lbkltanunk
annak érdekében. hogy a Label Text rulajdonsligUxm t~rolha..<suk.) Ezt al btéket adjuk
a UsendV"l"e !..:Ibel vererl<'l Text. rulaidonság:inak

Ha kiflllejtjük I . -roSt ring (l tüggvénylllvást, ekko!" a Convers ion frOlll type


'Guid' tO type . Strln,,' ia not vsl id (A Guid String tipuSfll: 81akitása
nem si~lHiilt) hi~tet kapjuk az oldal betiiltésekof.

MO!\I. hogy mir '"an egy Label vezérlook u oldalon, amely az;,ppen bejelemkezett
felhasználó UBerld 6t"ké! tartalmaua, ~lhatjuk n SqlDataSoorce vezérlő 11\111
16rehoZO!t WHERE ziradékot. FJ6ször húZzuk az egérn-I az SqllhtaSource vezérl61:
a Toolbox palettár61 a t('rvez6 oézedJe. és ~JJíll;Uk az 10 tulajdonsá~t:l categ<>rieB-
DataSourc:e btékre. Ez után inditsuk el a "ez&16 '"arli~t. a Configure the select
SUtement képemyoo a lenY'16 lisclb6l \"1l.a5szuk a Categorie.. \!ib/jt. és jelöljük be
:I C"tegory-JP. U5e .. ld és N""", oszlopokat. K:lnintsunk az ORDER BY gombra. és
\"1!3I&uk az eredmo::'fIynek a N""", oszlop alapján tÖ!l.o!'n6 ~

... -.---
_
-- _-__....- .... _.--....
.... _.. ... ~---
~----­
~

._-
::_~

---
-- -
'--- 23.10. 6In
I ~.1,,1i fol "v' W1IERé
zámdékszlin5l. h<:tD'UIlIi
- -r,'? ,= ti /x'Jekmlieult fi'lhap:"á/6

"""egdrúil jda,jetIeIl "'<"8

Mivel Iehet6vo!' kelJ tennünk a felhallzná16knak a kateg6nJik be!;zúrlisjt. szerke5ztését


és törlését. kattintsunk n Adv:onced gombra. és kapcsoljuk be a Generate INSERT.
UPDATE. :Ind DELETE. Stalemen15 jelöll'lnégylCle-t. A Use Optimislic CoocurrenC)'
jelöl6négy7.etet nem kell bekapcsol nunk. Ez ut~n vegyOnk fe! egy WHERE ziradékp;lra-
méten. hogy cs:lk az /'ppen bejelentkezett feJhastnál6k kategóriáit kapjuk meg. Ehhez
kauintsunk " WHERE gombra, és aZ Add WHERE Clause p1rbeszMablakban adjunk egy
par:un6en a userId oszlophoz. Az Operator legyen - . a Source pedig a UBel"IdValue
vezéri6 (]1sd ~ 23.10. ~brlit) .
FoIyt:I~uk a cateoorle&Datasouree var.izsl6 ki\ölt~. A "/Ögén a SELECT utllSírurt:l.k
Igy keU kin/Öznie:

SRLECT [CatlOl/olYlDI, [U.erI<lI, INa.e1


FROM Icat~orie~1
WHERE t [uaerIdl o tU.erId)
ORDER BY [N_)

M{'g előttünk ~lJ egy fontos beálJíru az SqlDataSoun::e vezérl6vel kapcsolatban. Amikor
egy szllrókifejezés<5e1 vagy egy WSERT, UPDA"l'E vagy O!LE'I'! utllSlt!issal dolgozunk,
amely tan.,lnuz uniQUeldenti fier oszlopo!. akkor sajolt keZllleg kelJ módosit:l.Ilunk
az. SqIDauSource parnlllétergylljteményél:. A catOlqor !e.. oataSoruee SqIDataSourc.:
vezl'rl6nél a 23.1 péld.1lJ3n l~that6 kódol: kelll~munk. (Vegyük rtgyelembe, hogy sok
<asp,SqlDataSOUrce> clmkével kezd6d6 tula~g kinurndt a tömörség kedvéén.)

1, <asp,Sq1DataSource IO.'cstlOl/orieBnataSOurce· run.t~·.erver' ... >


2, <Deletepara.eter.>
3, <asp,Parameter N...... ~ 'C ate\lorytD· TyP41o'Int32' I>
4, </Daleteparameteu>
S, <updateparameters>
6, <up,parameter Na.....'U .. erld' Typ",·Object· I>
1, <asp,Par ...... ter N...... ~·N/llIOII· Type"Strlnv' I>
8, <asp,Parameter Name"Categ-oryID' "I"ypeu'Int32' I>
9, </UPd.!Iteparameten>
10, <sel= t Pacamet"cs>
ll, <a6P,COlltrolPanmeter Contro lI[h'u."rIcWalue · Nameo'ua"rld'
• hopertyN....... ·Te><t· Type.'Object' I>
12, </selectPar_ters>
}3, <InaertPar&m8tera>
I', <aBp'PUatMter N"""' . ·UsftCld' '!'ypeo'Object' />
tS, <asp' Parameter Naae.'N4m8· Type.'Strin\\,' I>
16, </InsertPn_t"C8~
17, </a8p,SqlDataSourc8>

A 6., II. és 14. sorban SZen:PI6 Uaerld <asp, Par"""'t er> és <asp,ControlPArameter>
elemek Type ruJajdoosigin:lk értéke Object. A uniqueidentifier éttt'kek esetében
teljesen el kell t~volít;J.nunk a Type tulajdonságot. Ez azt jelenti, hogy ntind ~ 6., mind a
14. sort it: keU Imunk a kÖ>\·etkez6,.e, <asp, Parameter name~ ' U.erIQ' I> . A J I. sort
pedig így kell nv.'xlosítanunk: <asp, Controlpar""",ter ConuolIIF 'UaerldValue'
_~·Userld' PropertyName""Text· l>.

Ameortyiben ellelejtjiJ:; elttivolftaní a 6. ViIg'f I~. ,oroan srerep16 paramétere( Type


tu~jdot\dgát. " egy értéket próbAIlri lrissltení vagy beszúrní az oldalon, hibatila·
netet kapunk: I~licit convereion fo .... <1<I.t .. tYP<! BqLvari .. nt to
uniqueidenti fier i8 not 111101>/00. Uae the CONVEI!T function to nm
584 )V. ráz· Webnfvt6lb.lnkWIIIIlASP.NET..ytaivé....

this query (A rejlett átaiakltá$ III "Ql_variant. adattIpusróI a unique-


identi Her adanrpUSfll nem eogedélylllen. Használja a CONVERT fiiggvényt
t!fIfl&I: alekánlezésnel: aluttalásáhol. ). Ha elfelejtjiik e!!ávoI~ani 1 'lYPfI parlllllétert
B 11 . sorb6l, III SqlDalaSource vel1!ri6 nem a ván eredmlinyt fogja YisSlllaltli.

Annak érdekében. hogy az oldal az dv:1r.i5<llnknak megfelel6en és hiba ""'Ikül


működjön. fonlos odtflgyelnl ~1l1I ~ k(1 részletre, hogy ~Z éppen bejelentkezCII
felh3sznál6 Ll.. rId énékét egy LaIx>I vezérl6 segítségével keU kifejezni. él; hogy sapt
kezílle8 el ke!! eltávolítani 3 Type tulajdonságot az SqIThll:lSourcc vezérlő LlserId
p:lramétereiból.

Új kateg6ria felvétele
A ManageCatfl9ori ..s ... spx oldal megL1logatásakor a felh35zn:l16knak leheh~sé8ük
ke!!. hogy legyen fénykl'palburnuk k:neg6ri.1inak megrekintbl're, szerkesztésére, törié-
stre és be!;zúr.i~",. A DetailsVlew lu.szn!iladval mindezek a műveletek 1TlCS"316sit-
haJ6k. de a Detai\sVteW egyszerre <;.$Ik egy rekord rneglekint6ét 1es7.! IeheImé. Ideális
esetben a felhasználó megtekinlheti az összes kategóriát, amit létreholou. A GridView
ad egy felületet a kaleg6ri~k kiimtáltira, de nem teszi lehet6\'l' a felh.u1.n:l16knak uj
rekord feh,ételét. Mh'el sem a Details\~ew, sem a Gridview \'ezéT16 nem elegend6
önllU~ban, ezen n old11on mindken6t luszn11ni fogjuk. A Det:lil5\'iew leszi majd
lehetmé uj k:Jteg6lük fel\'étdét, a GridVi(.,\\ pedig II meglév6 kategóriák megjelen!tl'-
5ét. S,lerkesnkét k lörléséJ. E\>bt,n a n.'szben me8"izsg~l;uk a DetailsViot."'W hoz:cla~­
sának és bdllítisának módi:!!, :I Kategórl/jk "'f'iJ/ckin/ést>, s'zerlzc5;ztése lis /6rlése dma
részben pedig II GridView relv(1e1e lesz II téma.

Annak 6"dekélx>n. hogy II felhaszn:ll6k (jj k:lIeg6riikal vehew:nek fel, adjunk egy
DetailsVteW ..ezér1& aZ oldalhoz, az ID luJajdomi~,pt ;\,lIílSuk,. dVCateqorleaInaert
értékre. t:lJ'$itsu k a eategodesDlltaSouree SqIThltaSource vezl'r16höz, és jelöljilk lx>
n En.~ble In""ning jelöl6négyzelel az okos drnkl'ben. A [)eJailsView alapénelmezb
szerinI <:S:lk oIws!ut6 rnódOOn jelenik meg, és egyetlen rekord én:ékét jeleníti meg
a honi klpcwl! SqlOauSource \'ezérI6b6l. Az oldalI megl1togat6 felhasználó új
rekordO( a1. Insert (Besziir.is) sombra kanin"'a \'ehet re!, amely benliró módt.. ~Ili!ia
a l)etailsVlew vezéri6t. Mi,'eI ennél az oklaln:ll a DetailsVlew CSlk az új .... kordok
felvételének cél~b61 szerepel. an akarjuk. hogy 11land&m besz(jró módban legyen,
hogy,. relhas.zn:llónak ne keUiffi,. New (Új) hiwtkozásm kattinunia. Ehhez ~llilSUk
a DetaU .. View vezérlő Def~ultMode tUJajdonsáfPl Insert énékre.

A Det:ailsView besziiró módja két TexlBoll vezl'rl6t jelenít meg: eg)'C( a Userld és egyel
a Name oszlophoz. Mmdazon.illal nem akarjuk, hogy :. feU~~szn:l16 v;iL!.ssz:I, ki a U"erId
én:ék«., hanem,. Userld 6Wkénd a bejelentkezett feUlasmill6 sapt Userld l'fIl'kl'nek
kcll1cnnie. Ezén CI keU ~volítmunk II Usecld mez& a DelailsVjew beszúró módj:íból.
Ezen kívül, mivel a DetailsVIt'W m,ndig l~that61esz, I':s mindig bcszúró módban jclcnik
meg, nincs S7-Ükség Cancel gombrJ.

A DrtIilsView vczl..-l6 okOl< dmkéjében kattintsunk ~Z Edit fields hJ\'3lkoúsra a I'ields


p:íJbes2édablak megjelenítéséhez. Annak i!-rdckében, hog)" ch1\"olílSuk a Usecld meZŐ!
a beszúri.~i feh1k1r1'51. jeJölfiík ki" bal alsó sarokban lév6 me~Wban II U.. erld
Boundl'idd elemet, I':s cg}' az eg)"b"n töröljük II mcz/l(. A Cancel gomb ell"Cltéséhcz
kauinlSUnk a New, Insert, Cancel parancsmez6re, és töröljOk .. Cancel'l'ext tulajdonság
~néká

Ezen" ponton kq:.em)"OOk 3 23.11. ábr:l.hm ha:;on16:.m néz ki. KilJÖflÖoien flln'Clil1nk od,
a kövctkez&re: az oldalon t:Il:iJható cg}' UsecldValue label \"ezérlő. amelynek Text
tulajd<;>r'WJfI aZ éppen bejelentkezett felhas-wi16 Userld értéke. II categocieB'
oauSou .. ce SqlDataSoorce \"ezéri6. amely visszaadja a bejelemkc7.et1 felhasználó
katcg6ri1it, é:s INSERT, UP!:V.TE é:s DELETE-t::i.moJfltá5t nyújt, valamint II dvCategode8~
Insert DetaiIsV.ew vez6i6, amely beszúfÓ módban llthat6 egyellen Name mezővel.

23.11. 6bnt

- .''''''
• Az oIdnlon /QMlhaló
J)oofaikl1,'''" ,fm"!rl(f
támog"'ja" bcn,ítilit

Még egy fontOlIlépés V"~n Mtra. Most. h.. ~Iunk új kateg6~t felvenni, akkor
ezt a h.i~1 kltpjuk: Cannot insert the value NULL into column 'Userld ' CA Userld
mez6ben nem ..dhat6 meg NUI.l bték). Ennek az az oka, hogy eltivoJítonuk a Userld
mez61 a Detail>;VJeW vezl..-l6b6l, elén az Insen gombrn v:I.l6 kattint.1skor az adatb1zi$
INSERT mil\"elete sikend"n lesz. men .. z új kategória Usecld énéke hi1nrzik Ennek
kijavftás!ihoz létre kell hoznunk egy escménykezel6t a l)etails\rJeW vezérl6 ItellÜn-
sectinq cseményéhez. Ebben az es<.'1TIl-nykezel6ben programból :l.lIithatjuk he
~ UIl .... I<.I btékét az éppen l>ejelentkezelt fclhasznll6 UserI<.I énéklire.
581 Iv. r6R. W.... lul6llunt" .. IIIIZASf'.NET.~I ...

Ennek al UCilotn)"'=lőoek:a 1~~h02 dMunk:a KanaqeC... teQOriu ... px


oldal kód .ém!.e. a bal feb6lmyiló li5I~bóI ~'1l:a.suuk a DeuilsV"oew dvcnegorlu-
I n.ert demet. :a jobb (dIiÓ kny1ló l~bóI proog al l t..:Ins .. rt ing ~yt.
Et Ulin az ~}'kezdóbe lrjuk be 11 kOvelkez6 kód5cwt.

Ez bdllilja a Us.rld o!'no!'kel. amely bekerill az adub!i:wba al épPffi bejelemkezell


fell\3sznál6 egyedi aW1lO!Sílója kj!nl

A KIllUlqeC... teqOfies. aepx wlboIdal l8lje. ~6dja I 2J.2. jMldMlan IlIrtptol.


IZ ""' kes6bbi rHmben.

EUeI az eg)'ftIen kOCIsonal iTItN ilÚr fd ruwnk vftlIti kateg{ritbt. M06t nluOk meg
az oldali a ~ A PhotoAdooooin/Def.ult .... spx OiCbI megbllOgalÚak~
úgy vclte!únk fd egy uj kal~ U fppcn bcjdernkezcu fd~. hogy beirJuk
:a kaieg6n3 Ile\'tt. ts :aZ lruen hiv:alkoúsn bruntunk. Jelenleg nem idl;'nnd( meg
a meglév6lulególük 32 oldalon. de ha a Vi5u~l1X"eb DeveJoperbell leklrujilk meg
:a C... tegorlel ~b1a ad:!.\3it. akkor liwljuk u ú;oon;1n felven kaleg6riikaL

•" - .- et • •
Ali

23.1 Ut...
fI}.... górla fol! tft:1Ihet
~frjuJlbe .. ,,"'"
_W. is ~lfi'llJ1j",
az I~ Ir... .,.kum,..

0-'

TIM: O•••• PIlI ... AlI

23.13. "
A C VÓi51db11l
tJdataj,..,... ;,...6.....
/áthm6Ld ..il.....
a .... "1!Ó'Í<U'
A B.12_ ~bdn a Pbo~o.t.dain/o..tault .up" oldal Uth:u6" böngéz6be'" a 23, 13, ~bra
pedig" Cateqori•• ubi" t lnalrnál mUlalp 3 \OOal Web DeVeIOPerben, miut.fn JlSUn
ö( kalegórtil'~ fel

A MIItl6lje Photo AlbuJo ~'" kittmM' Ie~. PhotoM.-


a.ln/o.fault. uv" OkIaIrt jut..nety JIII Mg nem renOebzik f1IIlISlnMÓi
lelikttel. Ez art jalnll, hogy I kiPr6bMnhOZ AtM WIleg UI beIrrUlt • KanaljI"
Cateqorlet .a.p" OkW eimét I ~ CÍ'nIIribI. wfl'( I PhotoA<ie.inl
Default .4'PX OICIIIInt lel UI VemiInk '9V' Man4ljecategori4. "'PX oldan
mutat6 hivll10zisL Amikor I kiM:ttaz6 6tibIn ösm", PhotoMlllnfo.-
fault. Uv" OIdIIt, ~ 4 hiYltkoz6sl. Manaljec .. t8\jorlea .... px oldan,
de art ak_ most il magtehetjiik, hogy lelQyorsltsti I kateg6ri6k keztlh',.,.k
tesrte\4$6L

A Categori. . t;Ibb nl igtn~ii, hogy nunden rekonl "'.... o:QJop4ban $~Iten


&t&. EZéT! h:iI meglJlogaljuk 3 Hana\lflC .. teqorl" .aep" okbit, b ,méiJt.11)cl.lunlunk
az lnsen. g<:>mbn., hogy beúYúnk ~ kat~neveI, hiballzendet kapunk. amely közli
velünk, hogy a N4/IIe oszlop I'nt<k.. nem Jehet Null.

~k a helyu.1no:k a ~sk.. egy RequU"edFleldValitbtion "ezérl6t keU IwzniJ·


nunk a Deail:; ....lew ~IÓ fdületbl. A 16. ~ Uuuk, I'log}' a Deta.JsView bes;;niró
felülete ",l:>Ionmez&kel.subh:nó I<$TC. a 12. re,e.tt'lben pedig ~atlk az l-rvblyes.
~ ..1Ien6rz6 \~zbl6ket, többek közöct a itequJredl"!eld\"<ilidalor \'C"ZtriÓI, amely
ellcroŐid, hogy qw:ado;xl \'«l,'l6t1ek adoa-e a felhasmiló énéket.. Annak biztosf\l5;t
~tben, hog)' a felllasvdló mindenkl'ppen beiJjOn qw M'>'et!lZ oj katqJOm mmira,
v~k el a kÖ\·etkez6 \q>beket:

1. AlakílSllk ~I a Name mezŐ!. Bouoofield dpusülÓl Tempble Field típusúv:1 úgy.


hogya Fielcb p!lrbeszMJ.blakban II Conven IIIIS tieid ima a Tcmplalefidd
hivalkoz;isra kaTlimunk
2. T......-ez6 no!.tt'lben a .'eú-rl6 okos etmkt;t:bc" blunlSUnk az Edll Ternplalcs
AA':I.tkoilil':l, b v:1Jasszuk az In.5<"rtIlemTernpl.lle tntket a "ame Ablonmez6
.,."".
3. Az InsenltemTernptal .....be "együnk fel egy Requlredfield\'alidllOl" .. ererl6t.
4. Á1lllW-k a Requ,rec!Fk'ldV:l.lidator Dl_VI .. y tulajclonsigál Dynaalc tnl'kre.
Control TOv .. lid4t" l\llajdoo.'\igál az Ill'iCnltemTemplate TexlHox '~l~~nek

Error""_",,_ lula~~1 pedig a '(QU .... n proviM" n_


ID !n"'k~re, Val id4tionGroup tuJajdons:\gát Cne<;loryln .... rt tnékn::,
for th.
cate\jOry CA k::tl~hol kOlel«6 nevet rnc-g;.dni) szm'egn"!, CA l)eulls\'jew
tdntr.színtt61 fiIgg6en lehet. hog)' a pore< ,lor lulajdons1got a piros bClllidVÓI
jOI>b:m Uth:I.IÓ színre keU .illítanunkJ
S. FqezzOk be:t sablon szm~:ll: okOl! dmk&en:ll: End Templ:tle Edilmg
hi'":tlkoÜ$r:t k:tumlv;l
6. KlIuintsunk u Edn Fidds hiv;ukozlsr.l :t lXuil$Voew okOl) dmk~, ~
álli\.$Uk II New, lnsen. C:l.ncel p:tr:mcsmez6 Val1d<tt:ionGroup t\ll:tjdon~vt
c ... teqoryrnsert ~n~kre

Abp6tel~ ~nl al (lrUp elküldbekor :ll: oldalon lén'! dstto'sdlen6n6 "elhkl


ellenőni. hogy at 11tab mcgflg)'eh .. e~ ~"'m)'eS atbtobl I:uulmn-e. Ez a ,~Ike­
dé; nernki'o""1n:>IOI! lellet. ha oI)"an okbll~I dolgozunk. ~meIY k~ külön felh:lSZlÚlói
felOlenel rendelkeZIk. ~ rrundkeut'5oek sa~l ellm6n(S Iogildr.l v;ln sm~, A mi
oIcblunlrnak ~ ~ kOlOn felhanrdl6i felllkle lesz; egy:oz új kaleg6ri~k felv~el~he:z,
egy mbik pedig a me81~"ő ka«"86ri:lk kihisihoz, nerkeszl~ b lörI~hez.

Abpértelmel~ SU'rinl lu :ll: Add a New D.legO!)' (Új kaleg6ria felv~cle) felll<l.5Zl1ál6í
felületre feh'ett elleOOn6 velkl6k akkor ~ m(Jk~ l~k, ha a felhllm11ó egy
meglé-'i\ kneg6rd1 nerkeszt. S~ at ASPJ"t."T rn6d<x 3d a~ ellen6rz6 ,..,~
~ ~ egy;odou gombh<n ,,,16 bpcsolb1l'l1. A 4 ~ 6. Ilptsbefl hllm11t
Val idationGroup tubjdonsig egr cl~..,~()( hoz létre. ~ en a
C!IQPOItO! egy Buuon "e;e&l6llÖz bpcsolja Mmden azonos Val1dationGroup
t\lb~gbtE-kkel rendclkellJ elJen6nö vel&16 C5OpOfIhoz t:tnoron:.k mm;l, ~
minden be:!lIilOlI val idatlonGroup tulajdondss:al rendelkez6 Huuan veu:rlő csak
nokat al ellen6l'7.6 ,..,zé;rl&et indítja d, amikor a fellusznil6 r.lk-Jninl, amelyeknek
ugprutl:t ValidationGroup tulaidonsiga A 4. 11'p6ben egy C... t .... oryllUlert ~"Ú
C5OPOfI()( honmk léue. amelynek eg)'eden tlgp a kqullalField\':tlicbtor, npid
a DetlíL'lVoew lnsen gombját ehhez. II C§OJXW\ho~ tarsitjuk a 6, ~

MH.llln dvtge1:lÚk eteket a ltpbeket, mentsOk al ASPSET oldalt. maid lekinl5Ük meg
a bongész6nkben H~ moo;t az Insert gombn lcuumunk anélkül, hogy megadn:lnk
eg)' ne\'e\ az úl kalegóna 5Z:im:íI'l1, akkor egy (ÍtmuClIÓ 01.enetet kelJ jjlnunk, ahogy
3 23. 14. .ibmn;" 1:ittl'lt6.

--. -
H O _ y .... " , _' . CaI_iM

23.14."
Ha '" folhMZ"'W ~ ""'ft
-,..d.d .....~ ,pá""'....
ú"",,1lJJd ~ jtkoru, mt!
Z3.6A·A~ltm ' . . . . 'I""'_'rffh ! 15811

Kategóriák megtel<intése, "" ...ztése és törtáse


Miutin helytre kenl!! a DeCllbView, amely 1ehet6\'! ~ az új koIt~jk feh'!celét,
mir csok annyi van Idlr.l, hogy fel\'rgyilnk qn' Grid\".ew vez&\6l, amely a feLhasznlló
meglhő k;itegóri1it fogp rnegj<:lenileni, ,-aJamint lehet6vé fog;.. tenni azok fri»ilbtt
é tOrlé5& II feltuunál6nak

Ennek meS'':tIósíd~ho~ ""gyOnk (el egy GridVicw ve.térl6t II OcuilsView ~l~, !:I.~l$uk
a c .. tegor1eaoauSource SqU)..",Souro: ,"Cz&lőhOz, é 10 ruta~g:1ru.k adjuk
a qvCategor Le. &téket_ MIvel e;!; a GridView minden uteg6rdt meg fog ideníteni. b
lehet6\'f .es;tj a felt~l6nak ezen ka.egóIük szerkemlsét é ~, az okos
cimk8x-n Upcwl,uk be u Eru.ble Paging ( Lapoús ~yezbe), u. ErulbIe Sorting
(R.,oo.,zk engedél~'ez<!:se), u Eruble o.,leting (Törlé m8~lye~) k a~ Enable
Edittng (SzcrkesztE-li engedt!}'crbe) jl'10l6négyZetetekct.

A ,1ItOezési, lapvMi" törl6s! ~tek m...6dh.ldott TII6n ttr'I!6kSZIink még,


hogy II ~ 6rib.n u6 volt róla, hogy egy katev6Nt \iiil!s b .. lTMuden hozzj
tlrtOlÓ k6p II ~tt kategóriát bPII, KonkniUtbban. hl '9y Idott bteg6na
:ategoryID 6rtib mondjuk 23," .1eIIasmMó törli a Uttg606t.1kkor menden
01'(l1li kép .set~, aho!. CotegoryID ~ 23 volt, ill irt'k NuI!esz.

Alapénelmezb 5Zerint a GridVlew ~leníti a houi IcafX.'SOlt SqlDatlSouro: '"Cztrl6


összes o:szIopi., teMf a CategoryID & UaerID oszlopokat is. Mt azonban nem akarjuk
lehet6:,·é .enni a feUlaSZn:11ó WrNn qn';odon kateg6rd~ anoW UaerJD6t~k ~~
keszt~, é a~ SIncs igazin okunk, hogy megmuussuk a Cateqory I D &ttkét. Ezért
a Grid\r.ew okos cimkéjlbu. kanintsUnk az Edit CoIumns hi\'lltkoclsr.3. é t.h<oHtsuk et
a Cateo;JoryJC 6; URerIC BouudField mez6ket.

Amikor a fetl~1ó 3 GOOVlew ve~ szerkeszti. hib:! fog fdlépnl. h:l nem ad meg
tnékct a k;iltgóri:lnév $l.1ndra Annak burositis;1r.o, hogy a f~ megadi:I ez!
az érttket, el kell ,:tgeznOnk 3 Grid\·jew szerkeszt" felliletének fe:il/'eSUbbtt. oly mó-
don, hogy 3 1'\;lme BoundFidd mez(,( TempblerlCld melÓ\~ abk"í'Juk. é egy l!equired-
rleldValidatort adunk hozzá. Ez u~n 3 Requlred~~teId\'alid:olor ViOlidatonGroup
tub;cJon.s.ig.mak v-~I:lrnil)-"""fl e~1 ért~ke1 (mondjuk ClltagoryEdle) kelllldnunk,
a Grid\~IC'\· parallOimez6jéoek Valld11tionGroup IUlajdonság:ít pedtg WntbJ u~
az ért&le kell állítanunk.

Ahogy kor.'ibban, az új IoaIeg6rla.frll~der&zben tanuk, amikor a Det.1illiview ,."zb\6f


has;miljuk ('gy új kaleg6ru. beszú~ra, programból kell mepdnunk az q,pcn
bejelentkezeti fdl~16 uaerId bt('k&. Mivel eldvolítonuk a UaerId BoundField
mezŐ( ~ Gr1dView vezér!6bőI. & m;vel n Sql1}~taSOurce '·eztrl6" \1pdIIteCD<!OJIIInd
tub)dons;18~ egy l'~ke1 ~r a U. .r1d. oszlop $Úm.1r:1. <'ll az l'rtl'ke1 progrdmbOl
kell1ll<'8lIdnunk. amikor 3 GridVICW V<'zérl6n kcresuol Frislítilnk <'gy rekordot.
Ezt huonlÓlm oldjuk meg, nunt 3 Det3i15Vicw csct!ben.

EI&:tOr houunk !&re egy csc.,o&.ykczek1t a Grid\~..,.... RowUpdatlng acnxnythcz.


Ebbe az cscml'nykezek'lbc h)uk l),. 3 km'<'lkc!6 k6<bon.:
".N.wValuul 'uaer101') • M_rah1p.GetUurl). Provlo1.Uurltey

A ~n.ogeCategoriea .a.px teljes fOlTlsk6dj.1. 3 ;ckmlcgi .1U~rxdban II 23,2. pi'l<üblm


llth:l\juk. A -1-6. Korok ~ h.ge.,LoOO.o1 cscml'nykctdG{ nmt:upk, :Ihol at ~ bejelent-
t"
kacu fdhuuóló User tn~tt egy userlcNdu,· !.abd ".,zbIo'.íbrn (jrolJUk. hogy al
az &t&et ma)d at SqID:laSourao v~tri(i ' ..dW6;1ban ~k. A 8-11. sorok
II t:loet;&,ls\".e.... ,.~~ lte.lnnn.lng cscmtnykczd6jtt mul:l.ljlk, li 1}-16. 5orok pedig
li GridVIC."W ~t1ng t'!iemtnykezel6jtt. amely.." az ,mb!! hoztunk Iéi"". Mindké!.
esemé-nykczel6 az /"ppen tJ..;cltntk<,zeu felha$U1~J6 UlerId l'n tké!. adI" mcg beszúrisl
és w:rkesztési dlbóI.

l: Part lel Cle . . Photcl.dlolQ...)lolnageCategorle.


2, I~rlt. sy.t ... W.b.Ul.Page

"
4: I'rot..:t .. d !!Ub pegeJ.<>O,d!ByVal .ender A. Obje.:t, Byvat e As
.. Syst_.EventArga) KlUldle. !te.Load
5, UaerldValue.T<!xt ~
.. ~r.hlp.o.tU.er(I.PravI~rU. .rltey.~trlngll

,,
6: Ind $ub

a, Prot.cted Sub dYCetegorl.aln •• rt_It . . lnaertlngllyval .ender ~


.. Objec:t, ByVal .....
.. sy.tem.web.UI. webControh. oeUIlavlewInUrtEventArga) lIandl . .
.. dvC' .. t~oriutn.en. ItfllO.In•• rtlng
9, 'A ua.rId ,lrt"k.t a~ éppen bejalaotkezett telllenn'ló
.. azono.itój"ra "IHtjulr.
10, e. Value. ('Uaerld" • M~ral\1p. ::etUa",r! I. ProvlderUa .. rltay
ll, End SUb
",
lJ: I'rot.eted Sub ~ategoriesJ<>wUpdatl"9(ByVal aMId"r Aa Object,
.. 8YVIl.l e ~ Syat_.web.uI. ",abControl_ .Gl'idvi...updatelrventArgal
.. Handlea gvCategori ••. R~tlng
U, 'A :Jurld értélr.et az éppen bejelentkelln falhan"'16
.. aaono.1t6jAra Allítjuk
l!>, e.Ntr-.NlI.lu"at"Ua.rId'l • "-beul\1p.GfltU. .r!).ProvidarU..,rltay
16, ~ sub
11, End Claa.

Ezen a pornoo tov:tbb folyt.:uI1;ltjuk a GridView tula,donsig:llnak (estresz3~!. Ahogy


azm sonn fel\'ett többi \'ez!rkintl. az Auto l'orm;l( WiZllf<l v:arizslót I=dljuk. és
a O·~ie be.1llit.1sl \-;llamJUk A Grid\"oew -,tyDetaText rub~g1hoz a You
currently do not have any I:'"u .gories (Jelenleg ninCS('TlCk új kateg6ri~k) s2iWeget
adjuk meg. Ezen kh'l1l. mi\'eI az oIdabnk':nli tO rekord meg;elenItése túl !tosszún:lk
tilnik, a GridVi..,w paqeSize tul~jdons:lgát 5-re álHtjuk.

Gratulálunk! Elvtgcwlk a kategóriák felvé1:elthez. 5reO;ewcbéhez, mcgtekintésthez!il


töci~he~ mi~ge~ múködb mcgval6sI~! Ideje. hogy kipr6báljuk ezeket az új
swlgil1<lusokat. Próbáljunk meg {ch'enni ~h:lny új kateg6riit. majd szerkes:aeni.
tOrölni, r\,ndezni b v.:g;glapomi ezeket az úiO<!rt:l.n Il:treho.zoll kaieg6rUk~l Azt is
figyeljuk meg, hogy a meg;elenllctl btegóriák fe1ha~znál6filgg6ek. lb kijelentkezOnk.
majd egy másik feU\a~I6k61i bejelentkezve vi=ttrOnk::t """aqeea teqories.aa px
oldalra, akkor nem fogjuk láUli az Imé'nilétrehozOl1 k:l1eg6riikal. A 2315. ~br:o egy
meglh6 kategória ~zerkesztbét mutatja.

- - e '.. ? ; i

_ .... 1 0 0 _

23.15. 6bra
A fi.~hn=uiW.
rncgt.llltOZ/a/Mlj6k
a ~rId/. ,«<"It

Összefoglalás
Ebhen az ór.\oon elkezdtilk a webe! f~nykqx.lbum-3lkalma~s fejlesztését. EI&zőr
ÖSS.zd1líioounk egy Ilst:lt a projekthez 'wksége5 oldalakról, amelyben egy ~eroldal
!il hat !ov:1bbi old.al szerepelt, majd létrehozluk ennek a hal oldalnak a f1~jai1.

A helyetteslt6 oldalak 1(1rehoz:i.o;a uLin neki álltunk a különbölÓ oldabk mesva\&;'-


tl$:Ínak. A munJdt a felhaszn~l6i Rök oIdalail'":il kezdn1k (Cua teAccount .up" k
L.og i n.aspx). amely lehetŐ\·t IC5tik. hog)' a felhaszn116 új R6kOl hozzon létre k
bejell'lltke= az oldalra. Ez ut:in l&ehoZ1Uk a wchhely kezd6oldal~l, amelyen
szerepelt a rendszer ÖMZeS jI'N~hag)-'OI\, nem kil~n felhasznlil6j:l , ts neve melleu
egy hivatkot.h a fényktpalbumára
V~I II fályktpalbum feJagyeleti webol<;blain kerotilnk dolgowi. amelyeket megláto.
gatVll a fclh:l5w~l6k kezelhetik az albumuk kategóriáit és képei\. Ebben" leckében
csak a kllteg6rülk szerkesZIkét, fell'~el~ é5 too6ét Jneg\'lIIÓI>íI6 swlg1lcllásokal adtuk
II wei>helyhez. A következi! I's egyben utolsó órában a PhotoAdmin/Delault.asp><
olda!!al fowlOk dolgozni. amely lehet6"é teszi a felhaszn~l6knak" képek fell'é!elé!,
szerkesztését 6; törlését, 6; megoldjuk, hogy:l.z adoo fclh<tswáló fenykép;llbunúlYdn
!al~lhat6 képek megjelenílhet6k legyenek. ts hogy II'KWgyzéseket fllzhessOnk
egy adotl képhez,

Ehhez az 6rúllOz ne", lartazn~k sen, is",étlő kérdésdl, sem g)'(jwrlarok.

Kérdezz-felelek
[(: "kczdóoltlulrm U!eIlUlSZl1aló IX)' Gridi jew t'eZ,Jrlót lal, amely felscrolja
a rmuJszcr!cllJ(~,áló{1 Nemjog ez ullsw ki.!zelhl:lelletmtJ r>állll. ha
a rendswmelt löbb lItem mgy lőbb sza: !ellJasntfilója I<'SZ?
V: A kezd60ldal felillclffiek megtet\ezésekor VlII6ban nem szimoltunk fényk(:pal-
bumok !<Úul""L Ha úgy gondoljuk, hogy webhelyünkön 50 vagy több felhaszná-
lói fiók lew~ érocmes mcgkÖl1nyíleni a webhely albumJiscijinak megjelenítését.
Mcg"alÓ6íthamnk egy k('n~oIgiltatást. ahol a fclhauniló beímat v:lbmílycn
SZÖ\'eget, "'" ('fre a rendsz(>r vissul3dp awkat a felh:osználókat, akiknek a Ueer-
NatQe lul3jdonsága t:Inahna7,Z:1 a n>eg;ldotl SZÖVCgt.1
Egy m:isrk lehet6stg, ha 1000~bbi infollIllid6kat adunk meg a dbl~ban , például,
hogy IIliny képet larutlmazna.k az egyes fe!használók albumai, él; hogy mikor
történt az utoLsó kép fehölt~. Az dren típusú infOl'TTdció segíti a l!itogat6t
annak meghar~roúsában, hogy egy adotl album fris>.i1h.e mo:stan:íban, íIIctve
hogy tllltalmaz-.e képeket. AhtIOt.. hogy ez a kíeg0nJt6 ínform:id6 ~zen.'PCljo..'1l
az egyes felhasználóknát az SqIDat~Source "ezérl6 SelectCOIIW04fld tubidons.1-
gát " következ6képpen keU beillítanunk,

SELECT Userld. U.~rName,


(SEI,.EC'l' CO!JNT I ' )
AS Ib<prl
fFOl! Picturea AS II
WHERE IU.erld ' u.UserI"l) AS PictureCount.
ISELECT M.XlllplOlOdedOnl AS &><prl
FROM Pictures AS p
WHf,1Ui: 111serld ~ u.U~erld)) AS LastllpdateOn
FROM vw-"spnetJ!elDbeuh!PIIB~r s AS u
WHERE IUApproved _ UhApproved) AnD Ih).oc~edOut Usl,ockedOut)
ORDER BY U.erna..

Ez" 1IiltolUl1s megvalÓl>íth:u6 a foms nézetbt.'1l "'~gy az SqlDalaSource varnzslón


keresztül oly m6clon, hogy az S(2L-lekérdezé:5 k"zi ~d:tsát 1Ii12$ztjuk.
23. 6n • A ~.rn-+"""'lIIpjlNk te"""", I S93
K: Azt ért""J. htJgJr miért kell progmmlXil megadmmk azéppe1J bejelemkeU!lJ
felhasználó UserlD htékL't. um/eor új Ju" eg6n'áJ wu.1nkfel a Ma.JageCare-
gorles.asp;{ oldalaIJ. de aZI /JCm ~en. hog)' <'ZI az InfonnáclÓl m/érl hdl
'~/J/, am/kor a ka(eg6rltlkal a GridF/cu ' ,rez{'fII'fIJ kerl=rlllfrissiljrlk.
A mikor $ZL'J'teszfl1"k l'gJ' rekordot, fj UserlO már be Vim állil<"". és ezt /Jem
akaryllk megL'fÍllozJami. teluit miért lIclll'gJ>:lltaIáIJ beál/iJan(> ,Vetn eléB. ha
a szemeszlés/Jé/ csak a Name oszlopotfrlss(tjrJk egyadOlI kflwg<)rlá/JáI. és
a Us. ...1D OSZlopoll'/{l' az l'/{Iirffi Idhag;juk a fl%sból?
v: Amikor a Man"!Ölecat egori"e . u p>: oldalon létrcho.nuk az SqlD:l!aSollrce
vc 1.ér\6(, a7DJ a C. t ....,o~ro. ueerld és Name 0S1.l0p0k tnékelt adattuk vi= .
Amikor az SqlDauSoun:e vezérl6ben bekapcsoljuk az I NSERT, UPDATE ts DELE'I"E
ul.aSítások létrt>hoz:1sil. akkor az automatikusan úgy hozza létre az UPDATE és
lNSERT Ut:1síúsokat, hogy a fris.sítés. illewc be:szür.í.s IIUnden nem els6dlege:s
kulOi ovJopra érYén}"CS legyen. Ebben az c;",d""t ezek a userld és a NatDe.
A kérdés uoob:ln jogos, a Uentd értéket nem keU fris.5ítcn; , amikor Oi3k a Na -
oszlopot frissit jük a GridVICW .segítségével. llcl.IJíthatjuk sa~lt kezl11eg
az SqIDal!l$ource ve zérl6 UpdateC~nd és UpdateParamet .. re tulajdonsigait,
hogy az UPOATE Ul.aSít:i!; ooak a Na/IIft oszlopot fris.síl5e. 6; ebbe!'l az e:;etben
nem kell programból bclllit:1nunk a GridVlCW RowUpd.o.ting e;cn~nykel.dőjében
a User l d értl'ket.
Ha en az utat v:1.la52tjuk , akkor el kdl távolítanunk a U8erlD ~n"k"n: és
p:il1ln>éteré!"e mut:1\6 hiv:ukozht , al SqIDat;;lSource vet6iő UpdateC",,-nd
t\lla;donság11 a kö",:tkezőkl:ppen bel1lítva:
UPDATE [Categcriaa l SET
[ _ l • 8Na11e
WIIE:11E [CategorylD I • ~aot ..... oryID

Az SqIDat:1Soun::e vezérlő <UDdatePa r amet"r e> r6ltb61 aZ <asp , Par"""'t e r


N...,...~ • Userld' /> .son. is ehávolithaljuk.
24. ÓRA

Képek feltöltése és megjelenítése,


illetve megjegyzések írása

• Képt'~jl feltölt~ a fdhaS7.n:íIÓ szimbógfpér6J a webkiswlg;lló folprenili7.ertbe


• A fo':nykép.o.lbum meglév6 képeinek su.'fk<:SZl!se c!s t6ri6e
• Az adea fellla5Zlli16 fmykq,..lbumilxm u!J.Ih:lló &szes kq, n~lenilést:
• Az adon ktphez lanozó ~ések I!1egIelenItése
• Annak mqrta16sith::ro, hogy CSlk.a bqdrntkeU'll fd~ frba5s:il\:lok
rrr~ o:gy képhel
• A f&1)-kq:.album-alkalmazás wclJhelyszerkeU'lMek meghadroz1s:i. ls
morzsaútvorul rnqgeleni!.ése a ~Ion ker=ül

l'l!n)'képlllbum-alk~lmazá5unk fejlesztése 161 h~lad_ Az eJ6z6 6r1ban létrehoztuk


a felhasznil6i rlÓkok okbbit, '" webhety ke7.dOokbI:it. és elkezdtuk 11 ffnyktpalbum
felügyeleti <:>kb.1",i" '1;116 munlclt. amelynek 5Or.in lehet6vé: temlk a felhaszJdlóknak
albumuk Itat~inak felvételEf, ~bI:1 b t~.
596 1V. rMZ' WfIbes fotóallun kiIZft6Se IZ ASP.NET ~

Ebben a7. utolsó 6r:'ioon még jó sok munka van el6mlnk. EI~ör i!; be kelJ fejeznunk
a fényktpc:k kezeIbére nolgil6 reSZt, és lehet/ké kell t('nnUnk a felhaszn.i16knak,
hogy új képekt1 töllScnek fel. és a meg!év6ket kezeljék a PhotoAdmin/Oefault. "spx
okialon kere>.ZlIlI. Ez ut:U1 el kell kl:szítenUnk a Photo.lllbwo.asp>< él; a PhotoDe~
tail. upx oldalakat. A PhotoAlbum."spx sort>lja rel aZ adon fdluw:nll6 fénykép-
albumJjnak összes képét. a PhotoOet"il,aspx pedig megjeleníti az adolt képel él;
a houj tartozó megjegyzéseket.

Ennek az órának a \'égérc befejezz(lk a w~ fényk~lbum-alkalmaz1is Iélreoozjsál.


Természetesen kés6bb újabb szoIgálucisokat adhatunk houj. b az ro \égén meg is
nézünk nflúny b6vilbi lehet&éget. amelyekt.1 igény szerint önállóan megor.Il6sithalUnk
fomykepalbum·alkalm:uisunkoon.

A fényképalbum felügyeleti oldalainak befejezése


Az előző 6r:\oon elkbzítettük a kateg6riakezel6 oldalt (Photo... dminl~na\l"­
Cateuori..s .aspx). ahol a fclhaszn~16k kezelhctik az albunuikhoz tartoz6
kateg6ri.ikat. A PhotoAdlllin/Oef"ul t . ""px oldal 1l\Cgv:.16sítá$:l még el6ttllnk áll;
ennek az oldaln:lk a 'Cgít.ségtveltölthemek ""'Jd fel a felh.aS2n~l6k új ktpc:ket, és
kezelhetik a meglév6ket.

Amikor nlCg\'alósíIOtluk a kateg6ri~k kezelését. e160lzör egy SqID:llaSource \'Czérl6t


vettúnk rel. amely VI.\$7.;1300 az éppen bejelentkezett (eUI:l5ZIÚIó összes kaleg6rcipt.
A felha:izn.i16ho7. tanom kategóriák a Categories t:ibla U.. erlc1 05Z1~n keresztül
voltak kiválll5zthat6k. Annak &dekében, hogy meg tudjuk adni a f.,lhaszrúl6 U.erM
t'rtékél. aZ SqIThltaSource SELecT uusl1..is.iban. esy uaerldV&!ue nevil Label vezi'flőt
adtunk az. oldalhoz, és 3 Page_Load eseménykelel6ben bcillítottuk annak Ten
tulat<\ons.ig.1t.

A kateg6ti1khoz hasonlóan a kt'pek ls felhaszrol6függ6ek, eZén e!&zör;s adjunk


egy SqIThltaSour<:C VezérlŐl a Photo ....dmin/Default .aapx oldalhoz. Ez a "elbl6 nyeri
maJd ki azokat az oszlopokat a Piceurea tábláb61. arncJyeknek a Userld oszJopértt'ke
megero",zik 32 éppen bejelentkezen fdhaswiló U.erlc1 értéké-vel. Ennek eh'égzéséhez
köves5iik 3 következ6l~ket,

l. Vegyünk fel eg)' Label \"eltrlOt az oldal.,.. Törölj\lk a Text tulajdons.ig értt'ká,
majd a vtdbletu13tdons.ign:lk adjuk a True. az ID tulajdonságnak pedig
a UaerldValue t'rtl'ket.
2. A PhotoAdmin/Default ... spx oldal fombkM ~ adjuk hom a következő
k6dsort a P"lle_Loac1 esemt'nykezeI6h61.:
U... rI""alue .Text • Melllbenhip.G<ltUserC). Provid"rU8erKey. ToString ()
24. óra • K'eK fIIIt6It6M n magj,l,ulth , kve rnegie!n'lh,l( iiu 1597

3. Adjunk egy SqIDa!aSource \'ezl!.rl6t az oldalhoz. Az SqlDataSource vezérlő ID


lubjdonsigán:Jk adjuk II plctureso...taSource énl!.ket.
4. A Configure the Dat:! Souree ~1)(:lrd Configure the Selea Statement ablak::!.ban
jelöljük ki II leny~6 listib61 a PictureB tibl~t, és aZ oszlophstából wlaSS.luk
a C5illagot IIZ ~ oszlop vlss7.aad.ásához.
5. Kattintsun k az ORDER BY gombr:i. és :lllítsuk be, hogy az eredrn.:!n~·ck rendezése
az UpdatttdOn mez6 alapján történjen. csökkerK! sorrendben. Ezáltal eleve
rendezctten jek"1lik meg 3Z erromény a legutóbb feltöltÖIt kl!.ppel kel:<l6d6e-n.
6. Ugy.m6gy. ahogya kateg6riik SqIDataSource vezérh'ljénél tettük aZ el6z6
6riban. kattintsunk II WllERl! gombra. és vegyünk fel egy szúr6kirejez~
a Usel"ld oozIopr~ Csak azokat" rekordok:.! akarjuk kiolvasni. :unelreknek
"Userld oozlopénéke megegye:tik a UserldV.. lue vezérlő btékéveL
7. Kattintsunk aZ Adv:mcetl gombrn. és kapcsoljuk be a Genemle INSERT,
l:POATE. and DElEfE M31emenl:! jclöl6négyzetft.

Emlékezzünk viS!i7.a,IJQg)' amikor unlqueldentifiar tipusú oszlopokat használunk


aZ SqIOataSource var:i7.'ii6n keremül . a kkor SlIpt kezűleg kelJ megadnunk II vez&16
paraml'tereit. Kookréun, a fOl'l"ás ~ZClben el kell t::ivoli\.."lnunk II picturesDataSource
SqlOataSoum: par.lméterei közül II Type="Object" tulajdonslgoka!. ahogy ezt az el6z6
órában a "acegoriesDat ..Source adaúoff'b <:5C'Iébet1 is tettilk

A picturesDataSource SqlDataSource bcl.llit1$:1 utin készen ~Jjunk az ú, képek


fehöhbére és a meglév/Sk kezeléslff szolg:í16 m(ivek'tek megv316sít:l~ra.


Uj képek feltöltése. fényképalbumba
Alkalmazisunkban a felhaszn.á16k <;Sak olyan f&1yképeket tölthetnek rel ~z albumukba,
amelyek a $:Ijlt szimít6gépíikön ul:íl1l'1tók. Amikor:l felhaszrúlók f&1ykq,albumuk
felügyeleti oIdalin egy új kép feltöltését ~bsztják. leh<-16séget kelJ ""kik adnunk, hogy
kivilasszanak egy képel. a szimít6gépOkn'íI, és megadj;mak ahhoz egy dmet, egy lcír:ht
és egy katcg6riit. Miutin kivilasztollik II kl'pet . rnegadtjk a dmet, a lcir:lst l!s
a klnegórot, majd aZ Insert gombra kattintooak. a képfJjl (:ut.:limát.fol kelll(JI"",/
a webklSZoigál6r:a, ahol egy m:l5ol~! t.:Irol6di k a képről. Ezcr1 kívül egy új rekord kerül
a Pictu~e5 ~blilba a felhasználó ~lt:tl megadou dmmel, leir:lssal és kateg6ri:lval együn.

Mimin megtörtérn a k/"pfájl nlerné;e a webkiszoJg.áló fájlrendszerébe. bárki megtekint-


heti a k/"pet. aki hozz:ifér a w.:."bki5zo1gáI6hoz. A 24. L ibci.n ez az elv láthat6_ Tartsuk
észben, hogy a feMltŐl! képfájj menlése a webk.iszolgliló filjlrendszerébe történik.
egy megadott ma~ba a "'ebhelr(-'\ lároló gl'p merevlemez~. :-Il'hiny fényk{,palbum-
alkalmazás a f"'töhölI r~il bin:lris tarulm!it magáoon az aootb;!izislxm tirol,ia , a mi alkal_
m.lzásunk ClZ'" ozemben a fájlrendszen fogja hasmálni.
581 1V. NR' W. . . JUtÓiIMn k6tJl I IlASl.NET MífII"uI*

~ 1.,bM v4g1ni4 • 'MIH"''''ii,ás ~~ ii .tIbIIIIIy teszllII6sItor


• sz6mItóoéPfri. j6rssza Jl'IIIlCI ii leIIISZn6I6 ~ IIIIIlII "'.~~
lilik 1 ll9I'8Pét, wt .." "il t.ltllltal ~ I kirilasttDn k6p1ijlnlk II .tuiis
mIP9""" • wablWj mapp6jibf 'IJiÓ rn6scIlf I ál jIIenb.
Mlul.in a fd~16 ki,-~WzlOU qJY r~ih a sd.mil6gépk6l, beirta a kq, d~, lelrhil
b k:lleg6ltij;lt, fll:I.td az Insert go.nbr~ k:auintou,:lZ ASP.NIT oldalnak két kOlőrulló
~ kell clv(:gcmie

I. I'd kdJ 'T,mi az. UI rekordol a Pi ,tut•• t.1b1~b:!.. Ez a rekord l~roIj:1 a k~ dmét.
leí~t b btcgóri.1~t
2. A fdtöllölt k~ a "ebklSZOlpl6 f~jlrendszcrebe kdJ ment"ni.

R<)1.~ mqp.smerjOk a~t az okobl. all'dyric mi::lU ezt a két ~ mlndcnkt.'PJl'm


ebben a $Of'rt'flOCIbm kdl dv~zni. A IO'.-~bbi:oklxin a kd lépés 'usg:l~y b megvlIl6sI.
l1sa eg)'mhlóI filggetknaJ t6!tb1het- A k~ez6 tbzbel , I6mKlUUk a be$zúr6
r.. lilldet. ma,.J II kéP.f6j1 foUóIléw és nren/~dmd részben ~, host- nuktru
~tht"t6 ki ugy, hogy a r.. lIlMZfÚlok kl... ~I35Zthassanak egy f~jll a wmu6gtpOkről.
~ hogy mik(:nt tönétuk a fehOhÓlI kq, ment&... a .... ebkW;olg:lló f~jl~.

fil -=::
=,=,=,=.=,= '_
:1==--.-..-
~"'u"ii'
- , !' ii
V.
1111.111
o

24.1. ""
Amirlllx Q friJl(wm/J16Jt
AI .... - . . . . _ _ [eúaJtt'''H ~ lIIPfY
.ttl " ~ ...... a }i'n)"""""bumlJo, Q IfIpflljl
~ I 'I.."
a u:et>Iri.<zoI.El6m krol/
r

M,..16n II'lkadenmk:mn:ok a n!szleter.,..l rOR!;;JlklW\', Ioo!n- flUkmtlöltlletilnk fd


q)" k~;ijlt a fd~1ó wmíl~r6I b hog)"an TnII'f\lheIJÜk azt, el6.uor is
k~k cl a k~ fdlöll~ szolgáló fclillctel. an8lnil, hogy a fdtöltesi eMrbok
miaU aggódn.1nk. Ennek meg\'al6sításjhoz a Det.,iJsVicw veZ<'rl61 fogjuk haszn..oilni ,
amelynek Dehul UIode rulajdons:1g.1.t rnaert·re 1i1lí!juk, csakúgy, min! az előző
let'kében az új kategóriák felv&elérc swlgil6 felület esetében.

EI6SWr il; vegyünk fel egy DelallsYoew vezér161 az oldal .... ID tula~g.1.ruIk adjuk
:I. dvPictureln"ert értéket. és a OetaHsY""" vez~ okOl!; dmkéjEnck IcnyM l~iib61
válasszuk a pictureaDataSource vezérlOt. Ez utin 3 lloI!faultMode rulajdonságot
~lHlSUk az ln .... rt értékre, hogy a DelailsVicw vezéM .1Uandóan beszútó m6(]ban
legyen.

Ezen a ponton:l. OetailsVk,,,, vez&l6nek öl mez6t keU megjelenítenie: u.end,


CategoryID, Titte, lloI!.cription k UpdatedOn. Mi,'CI az UpdatadOn O6ZIopnak
az a szen.-pe a Pictur"" adath1zi5cibl.1ban, hogy W:rolja a ktp fcltöltbének dárumi! és
id6pontj:i!. nem ak3rjuk megengedni. hogy a relll:l$Zll.116 vigye be ezt az értéket. Ehelyett
ezt az énékel :a aktuili$ d:ólum... b id6re ak:arjuk :lUít:tni, amikor a felll:\5ZlÚl6 az Insert
gOrnbr.I k:aninl. Ehhez programból fogjuk bdUítm;31. tJpdatedOn !Inéket a Oet:oilsVie",
veZ<'r16 lt_ln"ening e:;eménykeze\6jébeT1. Al. okOli cimkében leldl k:minlSUnk
az Edi! Fields IX'rdnaml, és tivolílSUk el aZ Upda t edOn l3ou!ldField rncl6l. A U.... dd
BoundFieId mez61 i$ löröljilk. men nem ak3rjuk megengedni a felhaszn..oiJ6nak, hogy
Uaerld &léket adjon meg in _ ezt az tnéket programb6l fogjuk aZ éPP<"n bejelentkezetI
reJh3sw316 ueertd értékt<e ~nilani. ahogy ezt az el6z6 ódlxln teltűk az új k:aLeg6riik
felvételekor.

Ezen a ponIon aZ oIdalrutk a 24.2. :1br:íhoz hasonlóan kell kinéznie, A GridVicw oill:ll
az e16z6 6clban ...... e az oldalra rd\'elt kawgóri1k a Det:lilsV;cw feletI jelennek meg.

_, _ _ o
2402, tibni
úJ It.'pe/t ez..... " Dt:I"I/sI'ku'I~J
/or:m;Z/U/ r6111wtóIl fr'
600 Iv. t6u • WIbes lOtÓIb.m k6SZIt6Se III ASP.HET ~...
Amikor ~ felhaS2.lliiló megl:hog:'lIj:. ez! az oldalI, és \.leír egy cimet, egy leir.ht és
egy k:lIeg6ri3azonosltÓl, majd az [n:;en gombra kanin!, vÍ5IiUlcs:l.Lolis bizt06ília, hogy
a J:>etallsView SqII):l.LaSüurce vezérl6jével egyilurmlködve megki.5éreIJe !:><=Umi az új
rekordot a Ph:tu .. ea tál)l:\.b:I. Mind:izon:\.ltal programból kell megadnunk k& adatOl
ahhoz, hogy ez az egyi\!lm1lködb. sikeres legyen: n éppen bejelentkezett felhaszn~16
USeTId én(;k&, valamint az aklU~1i5 dj!UmOl és id61: az UpdatedOn énék szám1r.i.

Ahogy az el6z6 ócloon 1:Iook, a DetailsView Itf!lO..lnuerting <.'S(.-ménye n ItISER'l'


ut25ithnak az ad:ub:izisra ~":I16 ki:ldisa el6tt indul el. Ez az esern&J.y ad lehetősége!
3 beszUr:md6 értékek programból !örtén6 meg;ldására. Az ASP.NET oldal foni.k6d
részL-ben hozzunk teMt I&re egy eseménykezel6t a dvPic:tu .. ealnse .. t [)e!ailsView
vezérlő Item.Inae .. ting eseml"flyéhez, ffi3jd írjuk be a kövelkezl'l két k6ds0n:

•. VIllu ... ('u."rld"1 Hembeuhip.GetU ...... ll . ProviderO"erKey


e.Vllluea("l1f>datedOn"1 _ Date'I"I,.....NOW

Az e1s6 kódoor 3 U...,rId O&zlopba bes.zúrandó értéket II felhasznjl6 Uaer l d énék~


állítp, a nclsodik sor lll.x!ig az UpdatedOn O$zlopba besz;úr:md6 érték<.1 az akruálil;
d:"itumra és ,d6re áUítja

Miut;in eZ :I kód a Ilelyére kcriih. betölthetjúk a PhotoAdmin! oe raul t . a.p,. oldalt


:I böngész6nk\.le, és új rekordokat vehelOnk rel a Plcture8 t::ibl:\.b:I. Ez a felület
m\1ködik ugyan, de sok kívánnivalót hagy maga után. EIÓSZÖf is, nem tesz; lehet6vt'
a felhaszmil6nak a megfelelő k~ feltöllést!., csak beS2úr egy új rekordot 3 pictur"8
3datl>:lzi5t~bl~b:l FelhasználhatÓ$5gi szempomból ujabb rO:S.S2 pon!. hogy ha
:I felhaszni16 egy Iweg6riához akar IMsílJni egy képel. akkor ismernie kell a kateg6ria
CategorylD énékél. Végül, mivel ninocnek ellen6rz6 vezérlók, ha a felhasználó
elfelejti, ""gy kihagyja 3 cím ~ 3 lcír:ls megW.1s;'il, a rend.qer ki"élCh ,,~It ki. mivel
ezek az 06zl0p0k nem fogadnak cll\uU énékeket. A kövctkez6k\.len meg fOSJuk oldani
mindezeket a hi:\.ny~gok:l.l.

Alapénelmezés szerinl 3 CategorylD Boundfield beszúró módban TextBox vezérl6ként


;elenik meg. Et w igényli, hogy a feUusznál6 a mcgfelel6 Cateo;rorylD értt'k~1 írja be.
ldút fclt&clezi, hogy 3 felh.:t.szn:íló '"31ahonnan ismeri II kategóriák azonosit6u. Egyél".
telmú, hogy jobb lenne egy leny06lisclban felklnlilni a felhasználórulk II IcttcgóriJk:tt.

Ahogy:l kor:\bbi 6ciklxtn l~ook.:I l)ct:li!sView "ezérl6 [)eszúró felOIe\"ének tcslre'>Zll -


bis;'iho7. egy Boondfield mezőt Ternplatcfic1d meZÓ\"é kell abkít:mi. Alakítsuk il; most
~t ~ CategoryID Boundfield mezőt sablonmez6vé a Ficlds p:lrbc.zéd.:t.blakoon, majd
II Dct:ti15Vicw okos címkéjéocn ,':\IaSS2uk az Edit TempJates parancsOl. illetve a Cate-
24. 6rt • ~ 1eItöItMI" mllli llll1ft'I I, iIItW ~ iliA 1601

goryID mezl5 In ... rtIt ..... e";:llat.. tulajo:lo~glh. Eten a ponton:l CategoryW
mező IneertI tftlTelQPlate tulajdonsjS" egy TclCt!J,oX vezo."rll5! 1:Irt.~lm:lz_ Töröljük ezt
~ TClCtllox vcztrll5!. ts húzwnk ide heirene egy OJopDownUs! ,-ezérll5!, m:ojd az ID
tulajdo~g1Inak adluk a pietureCateqory értéka.

A picture(:ategory OropDownUs! vezéTIŐflek az éppen bejelemketeU felhaszn:ll6ra


vonatk<nÓQn kell mcgjelcnltcnic a k~lcg6ri~kat. A:t. clI5z151eckében a cat"llodeoData-
Sourc.. SqlD:I!~Source vcz61l5ll1rehoz~s:.kor megnézn1k, hogy ez hogyan l;,lla6 d,
Ahhoz. hogy ezt a mllltödésl a PhotoAdminlDefault .asp" oldalon l~ megv:dósil5Uk,
vegyünk fel eg)' SqlDauSource , ... zérll5! 3Z okbl ... ts heJyer,zük a dvPictuulnsert
DemlsVoew vezérlő elé, Ez u!.in :iUílSUk be ugy. hogy az ~dou fcJh.u7.n~l6hm. tartozó
CategoryIO ts Natt>@o;s2:lopokatadja vis.sz:l a Categori .. s tibljb6!. Emlékezzünk
vissza. hogy ez úgy valósítható meg. [JOg)' egy a U... rlcJVdu.. t;,bel vez('l'II5 tt1ékét
haszn:l16 WHERE z;1radtkO! veszOnk fel. (Ezen az oldalon a categori ... DataSourc..
veztr16 ese!tben nincs sz(lk5(:g lNSER'I'. UPDATE ts DRLETE utasít1sokra.l

Kössük a pictureCategoory DropDownlist ve2h115! ehhez aZ SqlDataSource vez&--


115hő<: ugy, hogy a OropDownlist ~vege a NaJne oszlop ~ a CategoryID o:'>lJOp
énéktt jeleni!5e meg (lúd a 24.3. 1br1it).

-,_... ...-
~_

24.3. ibra
A DropDou~JllsI toeúrl6
oJatfrJmfsllkbll
a ra/egorfesDalaSouraJ
,~adjuk "'''II

A pictureCategory Jenyíl6lLSla ad:lúorn1sinak be.1llit!isa utln a felll:iS2n:llól~rni fogja


3 k~tcg6ri1k liscljit. Ahhoz, hogy 3 rendsrer mcn!5e a ki~laszoou kJteg6ri~t. amíkor
:I fclll:iS2n:ll6 az [n5CI1 gombra katMl. be kell ~mtanunk az adatok ÖSStek.1pcso1:isát.
Ehhez utasítanunk kcU a Details\1ew vezérll5!, hogy a OropOownUSI. S.. le<:tedValue
mla;dorls:ig:il has2.nálja 3Z uionn:rn be:lrim rekord Categorytoénékeként. Ezt úgy
ttjük el, hogy a OropDownLi5t oko:'> cimktjébl5l az Edit Data Bindings hivatkozást
~lasZ!iuk. és:l SelectedYalue tula~got a CategoryID mezl5höz kJpcsoljuk
kétidnyú ad:l1kJr:aoIatul, ahogy ez a 24.4. ~bcln lolth:ltó.
602 Iv. rés;r. W.... fOI6IIbUm t''''' ' IZASP.NET~

-
-,.--"

c__

24.4.*,
A DroplJou.~'LisI SeIt!c'MIW""

= 'liU,jlkmsÓiJ .. " ~ CA/<'g('If)'fD


irT80éf jeWl

Mindltnképpen kapcsoljuk be I Two·way Oatabinding jalöl60égyzetlll a pi c·


tu .-eCateqor{ OBtaBindings párbttszádablakában (lásd a 24.4. 'brátf. Ha nem
kapcsoljuk ba art a bdHitht, akkor alalhasznlÍl6 jtaI kiválasztott kategória nem
kerűl be az adatbAlisnak vimakűlóött INSERT utasftásbs. és kivátalláp lal.

MOS( nhziik meg cn:l.z old"jt a böng{=6nkbc:n. Amikor megl:itogalluk az oldalt.


a lenyfl6 lisI:ioon:l.z éppen bcjclentkezelt felhasználó kalegóriáit kell l:itnunk.

-- Nona -- elem felvétele alenyfl6 listába


A f,;nykl:paJbum-allcJlmazb tervezési elv:ir1sainak egyike aZ voh, hogy a felhaszn:lló
ki''''lamh;I5SQn egy IcJIeg6ri;lt egy képhez. de ez "" II'8)'e" /;:61('/('%6. Ez alt jelenti,
hogya felhaszn:i16nak lehetőséget ken adni arrn is. hogy olyan ój képet töltsön fel,
amely nem unollk egyik kateg6ri:ihoz sem. (Az ilyen képek Categor{ID 05l.1opiUxtn
Null ~l'k fog szerepelni. ) Jelenleg a pictur...:;at <>gol"y DropDownliSl vezérl6 a fel·
haszn:lJ6 megl&v6 kaleg6ri~lt jeleníti meg, 6; 3 felhaszn:\l6nak ki kell v:ila=nia
közülük egyet.. De mi van akkor, ha:l felha5zn:i16nak niflQienek k:neg6ri1i? Vagy ha
vannak is kateg6riák. hogyan vlla.whatja azt a felhasználó, hogy:l. fel!Öllötl kép
ne t:lrtozzon kaleg6ri1hoz?

Amire nükl;ég\ink ""fl, az egy lov:ibbi elem a lenyíJ6lis!:1oon, egy ol~"an elem, amely
legfelül jelenik meg -- NOne -- (Nincs) fe!or.mal. Ennek az elemnek köszönhetően
mindig 1= legalább egy elem a lenyil6listioon. ~g akkor is. ha a fellUlszn:\16 nem
hOZOl! Iéire egyetlen bleg6ri:1t sem. IOv1bW a feU\aSzn:1!6 kl~lasztJUltiJ en
a None lehetőséget ann:l.k jel~e, hogy ~ feltöltött kép nem lartotik egyetlen
kalegóri:1lX1 sem.

Ahogy II 11 . ledcében Cirgyalluk, ~ len)'116 lisCik demt.'i megadh,uók SI:l.likusan, vagy


dinamikusan, az I t ...... tulajdon:dggal. Jelenleg az értékek ".,egadiisa dinamikus. men
a DropDownUst vezérIÓI: egy SqIOauSource vezérl6hö1.lcJpcsoltuk. Minoozoruiltal
I'

az elemeket meg:ulJullUk 5llIltkusan és dl/Unuku~n .. Megha8)1uk ~ DropOownl.i5l.


"e~ az SqllliuSoorce vezérló..e1 .... Ió ~rnl:iSit, de hozz:bdunk egy lo,'ibbi
Nona elem...'t oly nlÓdOn, hogy wtikusan mell~dluk ~ZI az l t _ lulajdoru;;lgon
ken:~7.lűl.

1>1en;Onk ~ pictu..-eCateQory DropOownti!l "ezhl6 t t _ tubjdoo$1g;1~, 6


k:lItl1llSlInk:ll !drom ponll':l 3 Listltem collection [dIlQo' ~rbo::sW:;bbbk n.qgelernlbf.
heL III \'C8fOnk fel 1'8)- új e~ II Truet rubjdoostgán:l.k,...,k ~ N<>na tTta,,:{,
65 lt:altint5unk az OK gOmbr:I (Ihd II 245_ :1br.1ol)


-- ---
Z4.5 . ...
!toN _ <'km frI'tffl'Ie .. 0r0pD0t1'1OJJsI
" 1G"i:'
,~ 1/NnS llyíljr......myM»

I'Oggt.'tIt:nOJ au61. hogy mik611 :1J1iljuk be ~ Valu", luliljdomJgot. meg keU kffeVlünk
II (0",1$ nézetben az imém felveti l.intt_pékUn)1. amelynek ..... Iahogy Igy kelJ
klnévue
~ .. p'DrwOt>wnt'.t ~v. "p;.,' turee.. t...,oryO """"t,', ,rver'
Dat.Soure.lo.·c.t~rl ..Dat.Source·
Dala~t'leld,'na.e'
o.taValua,leld.'C.. tegoryID'
Sal..etlt<!Vdu... ' <\I Bindl"C.te<;JoryID' I b ' ~
<aBp,Lhtlt_ 8elactfld,'Tnl.. " Vahlfl."'n'k ",,· None -<I •• p,LhtIt..,.
<la.p,Dr~L!.t>

lu az <a1Ip:Liet Itell!) elelTlben .zen.,pJ6 ~rt~k a l.i5I.ltem CoIJertiOn Editor


~lbeu:éd:lbbkl»n mepton tnéktOl függ nujd.lb töröltük nI:lI lub~gol.
akkor az <asp:LbtIt..,. nem rendelkezik nujd ll"'3'ldou Value mb)doru:181P1;
<a&p: Listlt_ Sela, ted, "Tnle'~- - Hone "«aBp , Listitea>.

Ett61 függetlenill módo5il;lnunk kell 3l < •• p, Lilt Ita.> elemet, ann:l.k value
tUlajdorudgil az üres k;i!"~kt~-r!~ncra ~1Ii1;V'~,

tM ~. Value tIAtdOndOOt II <liSP' LI. Tt8la> ~ ator I kapott


liBm I ~"t ~étfO\ilI V.IIH' ~'"' lIIUn6ft.
Ez II ob . . . . hogy krir6un ""Illull ...... Value~O" beMlt6sL
Ha megIdjrdt I lU' ~ •• bdlltísl, IÜ:OI' lIITIiIO:Or IIe1'11smM6 I
V" None
lehet6séget vMesztJI. az lIIiatbÚiS .:ateQoryID oszlopába NIl ~ kIIa."
mi
ezt ak • • Ha nem adjuk meg a ValU" •• btMltásI, akkor kMteI ~ 1111. llmikor
I fe1hasmM6 ugy pr6b" meg feltöltari agy uj kjpet. hogy nam t"hjl azt
agy megI6:V6 ka~

AJ. utolsó ~ a OropDownWt vezM6 ~tallOundlt_ rub~ginak"l'rlle


áltkTe oiJlítki. AlapbldmeZé5 nenN. amikor egy DropDownWt vutrl6t egy atbú"or-
r:is-,~ k;opcsolunJc. a len)1l61oo mcglb\'i k;otegórdi 1OrWne\&:, majd meglOr-
ténil.: az :ldnkapaol:U. 12 azonban lŐrÖI~ a 2·1.'j jbdn ULluló N<>ne elemet.
" -- Nonll ckm (\1:18)' az adalkapcsolis d6!1 FelvetI b.irmely lTds,k li~dem)
mcg6nésc hdekébm jlli\.S\lk az ~dO.lotaBoundtt_ tuL<jdon.s:IgoI1'CUII értékre.

A cfm és a laHS meged'dn" kÖtaIaZ6Vé tétele


" Plcturel t:;;íb!a nem engedi meg a "Juli tnékc:ket a Tit lll, illetve a DeKrlpt ion
oszlopban, ezbt abban az ~ ha a felllUZl1ll6 nem ad meg ért~d ezek egyik~
~ a IlIotaiM"1<"W ''e~, ki"éleI fog fdlfpnl. Ennek a probIémiru.k a ~­
hm el kell végeznOnk n emlitetl kél lT1C"l6 llt""mlro felületének ICSlrcsza!»s:ll. o!s
Rl'quua!field\'~liW\or vczérlőkct kell Felvenn ünk. UgpneZl a müvelct~'t v~ztOk el
n el6z6 6clban allJkjk blztoslUs:lT:l, hogy a fclhaszn:i16 mmdenképpen nle8~djon
egy!le\-'Cl egy új Gtcg6ri:o feJvéwlekor.

Ehhe?, ahogy az d6z6 ór.iban. eI6SZÖI' al.akil$Uk a -:'itle o!s a Delcript10n


BoundFtdd mez6ket TemplateFidd mez6kké. Ez ulln v:i1:aSSlUk az Edit Tempbl<"S
pIl/Olnc5(J( a DctailsVICVo' vererl6 okos dmk~, t's ;liUilSUk be a kél TemplateFlC1d
[ruet\!temTemplale rbút. Ehhez adjunk a sablonhoz egy RequiredFoddV,didator
vez&lőt, 6 illi\.S\lk bf, megfelelően a Cont" lTOVlI.lidate, Di,play. !rror.....a'1e
és Val i~at lonGroup lulajdoruJ.g3.it.

Ezeknek a RequirecW,..,Id\'alida.tor ''e~rl6knek a fel\'élele é5 bellhjj,sa ujj,n minden---


k~ .:illílSllk a Dctai~\"1CW \"CZér16 New, !n.sert, Cancd p:!.r:I.!lCSIl"Ioez6jénck
Va l idat ionGr(lup rul~j<.Ions;ig1i1 ~ két RequtredFieldValidator Val idat 1, nGtoup
érti:kével ~'ez6 bt&re. (Én a PictureAdd mékct llaSZNlIam.)

A DetaibtV_ WZ6rI6t igl!ny9o. mm! nvugodta'l tMbb alakithatfUl. A New.


Insen. Cancll p&r1llCSrnez6 szemsztésekor PéId6tj tOt-öIIetjiik. Cancel Text
tulajdonÚQOt. hOQY lIltévolitsuk I CIIICII 'lOmbot a beszúr6 lalülatr61, I Verir*S
$t!lustul~ beáRlt6s6vel V8I/'I1Z Auto Format WlZ8fd stQItMoWel pedig
• ~ illinomíthattri..
\o1a;( már egy telJeS mét1~ makOdőllépe5 fdilleWnk .... n :IZ új rekon;lokru.k
a Pictur.. I.:ibllba v~16 felvéle~hel!- A IWpf.Ijl ugyan nem töh6o:hk fel ~ weblusrolp-
lóra, de a dm, a lciru, V:,J"núfll ~ k:l.teg6ria meg>d:iSl, b az [nsen gombra \"JI6 k:l.nim.ás
vi55z:lc:lQtoIht okoz, & ennek eredm&tyektppen új rekord kerül " I.:ibUba. ~nk
ll'IOM eg)' PeKd ennek k1pra.alas:iral

M,után felvettünk nthJny új képel:, t~rjünk vis=!" \Il5u..a1 Web Oeveloper ~bbldba, b
tcltimsilk meg a Pic t ,r. . t'ibb t;ln:olnút. Minden képOa eg)':IOmlIk kell t;lnovlla_
A feltrntki sroIg:1It;I~ m(fkOdőll~ t~eIe u~n pvaso!t ezeknek a testtrckordokll:lk
a tőribe. nm'd nem t;lnozik howjuk feltö/tÖlt kép, rIlOSI awnb.:m ne agg6djunk ezek
'llJaII - a ~~ ~ ~eI~ & ~ felhaszn.116i felulel k'prób:1lisa.

A klpfíj _ és_
Ahho~ hogy UI képckC'l :odhas.wnk ~ fmykq:.albumhox. már "",k lehet&eget kell
~dnunk a fell\a5Zf\ilúk!uk, hog)' kivál.ass7:.Jll:Ik qw képet a sdnút~pükn"'ll, b
feltöltSék, illetv ... menl~k azt ~ webki5zolgil6 f~jlrends1.C.'rebe . Egy ktp feltöltbe
a felhaszn.116 ~úmit6gt.>pér6I a wel>kiszolgll6 f~ilrends.zL....:be viszonylag eg)'szero
rel~dato( jelent ~ Fdel'ploKl ASP '\U',=érl6nek kÖ6WnhC'!öm. Amikor ~ fcll\aSZJd1ó
m..'gI~to8at egy FileUpload vczC:I'I6\'eI eUatou oldalt. egy UÖ\'Cgmeu51 é$ egy Brow5e
(Tallóz.is) gombot 1~1. A Brow:se gombr:i ltanlntVll megnyIlik egy ~lbesztdabbk, ahol
~ fcllusmJJ6 k....:il:l$llh:otp ll. kidm r;;\~1 a szimít6gtp6('S1 (lásd" u6. :ibrat)

- -0 ' .. 'iI:1

_.
-
- : :...

24.1. iIn
A FlIoelJ:olodd t~
"~,,
.. 'v... ·w..... ........ llllt.. ti li!ASP.HET-J! IUl'"

MJUlln II fl.'lh:o~16 ki"llarnotl egy f~lll, és elkOklle az űrla pot, a f;l~ 1;m.,11T\:I
II ,,"ebklSrolgW)r:I keru!. Az ASP,NU oldal k6d res~XSI a feltOhön Up lanalm~t
egy ti ,,·eblu:swlg.ilón található IT\:Ippib:l. menl.1~jlik

EI6..,...,",~ fel egy új TempbteF"1dd muól a Deuib\rcw \ulJlax, amely


t=almu egy F"deL'pIoad \'eúrl6l. Ezt a kÖ\"'etkezO; ~ \qpd ....ps;í\":I1 tehetjük rrq

l. A DebilsView vezb1<'1 Ok05 clmké-jében k:1Illnl.5l.mk az Ed>l nl.'ltls luv:llkoúsr::l.,


hogy mcgnyissllk II f iekls pirUeszéd:lbl~kOl.,
2. \együnk fel egy úi TempbteFiekI mez6t. A bal fels6 sarokl),ln \'álaS5ZUk
a TempbleF"Idd~, 6; kalUfllSUnk az Add gombn
J. Helynlilk:u úi TempbteF"1dd melJ.'lla Caleg<X}' 5:;IbIonmczO; QIW, Ez uc1n
~JJílSuk :u ui TempbleFodd maő H.. _.-r...t rulafClondg:\t II P!cture bt8lre
4. A terve~ ~~be v~lbv" lcllUfllSUnk a Drtails\~rcw vezbló okO!!
cirnk~nek Edit Templale!; hil':nkozás::lrJ
5. McniOnk a Piau .... Te,uptlleFidd InsenhemTemplale eJe~hcz. 6; húzzuk
az egerrel a FiIeUplo;Id \~l&i(i; a Too/bo" paldl.áról II S:ólblonb:l.,
6. A FiIeUpkl;Id ve.u:n6 ID lub~lPk ;adtuk az i"""9eOpl, .. cl &léket..

Eu'" II k~l&sel a Deuils\'lew vezér16 be5zúró felllk:te mo.st m:;lr 12rtalmaz egy Úl
amelyU61 a felhaszrnil6 klválaszth:UFl ll. sz1mit6gépér61:u album:iho~ h07.ciadnl
501"1,
kivam képf.1llt.

A t·det:pIorKI '"e:l:érIő
amonuulru$ln (eköIti II luv:11;w;!0ll fijlt a felhau.n<ll6 sz:;jnút~
P&6I a ..~Iór.I.. dc a felloltön f.á~ merudélM!"l kódot keU ímllnk Amikor
felhaszrUl6k ~J121 feltoltöa tlrullT\:ll akam;lk menteni egy ,,-ebkiswlg:1lór1. a fejleszu'lk-
nek el kell dönteniük., hogyan !le\-ezzo!:k el a feltöltött f~jlok:u. A FikUplo;Id \'ererl6
FHeN_ tulajdons:\ga t:lrtahn.azza ug)'"Jn 3 felhasználó ~ltal fe\töllótl ktp 11<-'''(,[, dc ha
ezt a fijlllC\'C'l ha$2n.1ljuk, névfitközés lönénlJet, I la I*ldilll Jisun feltölt egy HyOOg • j pg
neV1l ktpet. ts azt a wri>kiswlg:1I6n MyOog. jpg rltv,," 1T"'mjak, mi t<'lrt.l"flik:. lu
'":Ibnuknr kb6bb sam IS feltOIt eg)' HyOOg .jpg nev1l ktpet?

A prob/6ldra az a megOICHS, hogy OO:I.osít(uk, hogy minden feltol\Öl\ kq, egrroi f.i~nb'­
vel rendelkezzen, Ezt ugy ga!".lnt~ltut1Uk. ha a felto11Ott ktper. Pjctllr6ID.jpg f.i~név\·eI
ment jUk, ~hol a PktureID a Pleturea tábla megfelelO rekordj.1ruk P1ctuutd
OS2lop6tfke, Mi,d a Pictur.lD oszlop elsOdleges kulcs. &:,!lI.nLllt:ln eg)-eW. eLélt
btztos:I.k IehC'lünk abban, hogy lIIir1dOl feltOkOa k~ ~ faiJno!:vvel fog renddkezrn

Ez egy fug65 k~ \"Cl felc hogyan h;!tlro=.Ik meg. hogy mi a fehöltöu k~ 12rtozó
rekord PIctureiD btéke ll. Pktur" t;1bI~b:l.n-' Meg kell \-;1munk. amig II rd<:ord
bekerill II Pictur.. úbl:l~ a feltöltöu ké-pC~~ ment6it' el6lt. mi,d a PleturelD &téh't
csak II rekordn:l.k a tábl~ba \':116 felvétele lltán fogjuk rudni, A Dct:alls\'iew vererl6
It_Ina rt..! ~ye ~~ 14I<1,,!nduI el. hogyarekord:u :Kb,hbl'qibUba került.
Ebben ;aZ e:.em('fI)~ lcktrdezhc.1jllk ;aZ :ubtl:4za!l, hogy megh'l1Jrouuk az adon
fdl~ legfrwebb PietureID &tl.-k&. ma,cl ('IlI'Oek:l f**,nek:/; ~V:/;I

'--I
mmthetfÜk" fdlolton fjjll A 2~,7. ábr.I ezt" munlufulyarrglOl TIJlUlja_

· I-" III~" It_h... ,,,,,,,.


;1110". ,"'~ ..
,~

'lp:Ial-", _ ..... .wo


~-

- - ---
" • :tI

.. -. -
mA' ,.,._ _ ....,.
• I I ... wloI~1 .. ou.1Ia
. - _ • ••<,",.. - .
~. """,,"-

.........
...... ....................... . -......--
_ _ ........ I IIsl la

-_._IIjI-
111_.' J'l_ _

~ :"~_.'~.;..r<... ! I ..

•• oa..-.o,p _


"
I' .'11,
u,..In·1P<l_
Ile

24.7."
('1 rNort/ .....JI" PI~I .. _I<lbUlOO, és c=- ,JI,l/l ~.."I4-"fi:WlI6It ~ "",,'ICH-
A (e!Iö!tOt! kép menlhéhez hasZIdI"ndQ fJi1nt-v megh:lIlfOzisihm ~ kell h'lIJ.rm·
nunk n 4>fl'en bcszűn rekord PictureID bttk&. Ezt megtehetjük úgy. hog)' u WoII
felh2wl:l1ó legruigyobb PictureID mtk& ~1;Uk & a Iogila mGkOd6llt.-pe;.
",hel:/; ,ktur.. tD 05ZI0P aUlom:l1.kus ~lJlOUSÚ 06Zl0p.:uni:/;ZI. PeIenli, hogy
minden ebbe:/; I-ÍIWb;. fel.'etl új rekord plctureID bt&e fl:Igyobb. nunl U d6z6
$ott Ml\"el" fdJuszni16 tpp:/;z .mml \"etl fd egy új sort:/; Pktur... UbUbca, ezt
a pktur.lD61"'keteg)-~ ~VlC'llllk, ~ at adon fdhasWlóhoz 1lI~
Iegna8)--obb pktureID éntket .'csszOk

Enn.-k mcgval65ltl,;Jhoz fel keU venn(lnk mtg cgy SqlDaIllSourcc \"czé116t az. oltblr:.
ÁllilSUk ennek az SqlDaLaSoura: \-ezérl{!n('k az. ID lulajdons:i~1 maxPkturl!IDDat.,
Soure,-" tn:"'kre. fs inditsuk el a \"ezérl6 Sdoo Dala Sourcc Wizard var:l:uI6j!l1. Amikor
a Conflgure lhe select SUlcmenl :/;blakhoz trilnk. "ál:/;S$Zuk II Specify a Cwtom SQL
5I:al~m {}I' ~~ P.--ocedure v~JlISZ16gombot. fs l<lIuimsunk a Next gombr:l., 1TIlI,cI 3
SELECT lapor! il1"k t,., 3 kÖ\-'etkez6 Jcktrdez6t

nIC MAXI cturl!IDI


r.CII r, _ •.••
IIIDII • _ •.<1 • IKJHrld
608 Iv... . W... In'f+m'. f 5 IZASP.NET""'/dI

12 a \egn:lgrobb Pic~url.lD ~no!:ket adp VI$SU 3 pictur ... úbüb6!a 'U .. rID pc",,·
~ mcg!uúroron rd~l6hoz. MJul<in bcirtuk ez!.:I lek&dez6l. k~lunuunk
:I N6J. g<:>mbra III meg keH adnunk a 'U..... IO ~er éTlo!:ka (Ibd a H8, ~br.Ii),
Ahogy a clOt~or1"9DatlOSou .. c:e" a plc:tU ..",.D4tlOSourc:e Sqll>..r.lOlSourc.. \'e~
est'I&en il; lenOk. pararnokerforr:hként \.Iw"zuk a COnUOI. bdlliuSl. m::Itd:l ControIIO
Jcny\l61llil;ÍbóI a UserJdVlOlue dmk{:t, (EnM keUiink \;s.s>:a. hogy a '-'".rldValue
Label \'czo!:rio"S Text IUbjdons:1ga az lpren bc;c1enlkczen felh:w:njló Unr ICI o!:t1éke.)

-_._---
"_" __ •__ 5___ "_M __"_
-- --,
- - --
24.8. Mo
A Uu!rldIWu"ci..... Thtt ml"jJotI
s.igának adj". hJ.o/nIl " .1Nr1d
{><Im""".... bfa.H

MJUun dké:mlh e~ az SqlDaClSourc.. veztrl6. Je tudjuk ktrdemi progr:imból ~ 1>ctJ.1b-


\"'"" \-ez616 ltem.lnserted CK'Inl:n)"kczcl6jo!:n kcresz:t(ll. AmikOf n:nddkczünk
a PkturfllO &tNckcl,:I feltöhöcl ~ a Fil ..t:pJood \ezér16 Save.a.. (í1tvc,.,..ll f'il8lJ'.....
n)'t'o'eI mcnthet;lk. A2 lt-.Jnserted e;clT1álykez.elll telje5 k~l 3 2~, I p&I:lban
UUul/Uk

Az rt_In.e .. ted ~1Z 5."


.1. ~. DatllView owtMyt
.Imisl~..,. Put i ..
hISm6IjI. Emek IZ OSZtMVnal • ~ bt! kell Imri. • kMlWlI k6cbon
Cb bwezetás 8W:

A PhotoAcSmin/Oefau I t • up" oldal k6drésza teljes evész'ben megtahlllat6


a 24.3. példábilll.

l, Protect-.i SUb dYPictureln_n_It_ln_rtelll8yVal . .nd........ Object.


_ ayval e Aa Sy.t_.Web.UI.WebControla.Detail"Vi_lna"rtetttvent"'~i.1
_ Handles dvPicturelna@ct.lt . . ln.ertvd
2. .~ al~r"a volt a ~akord ~.I~r4 . . , lOkknr .ent.~k lO ~
II If e .... rflK:t..utowa > a Then
4, .... !elbaa~~l~ t.~to~ó legna~ PIctureiD .ava.t4rozA..
5. Di.. r ... ulta .... DoItlOView
_ ~1 .... Picturell)O.. taSour< •• Ule<:t IDoItaSour"'Seh.::U.r~t •. lboptyl.
,, _ o..taVlew)

.,
7,

9,
nim plctureINustAMe<I Ae Int"ll"r _
_ C'l'Ype(ruulu(OI(O). Integer)

'fiivatkoda a Fil~l""d ve~éd6n


10, ni. i ....geUpload "" Fileupl""d •
- CTYpe(dvPlctur.rn... rt.PindControll·i .... geUP1""d·). Fileupl""dl
ll,
1., If lmageupload.KsBFile Then
LJ, tH. ba ... Oin·ctory"a string •
_ Serv1!!r .lI<!.pPath I • ~/Ugl""dedl .... g ... !· )
}4,
IS, l .... geUpl""d.SaveA.(ba.aDlrectory ,
_ PictuHOINustAdded " '. jpg')
H, Dld If
11, End H
18, Dld Sub

Az eseménykezdő a}. SO<"ban az eseménykezeJÓflek 1udou DtltdlBViewlnaerted


E:ventAl",,~ objektum I\ffectedR0w3 ruJajdonság:ffiak ellenŐl"lé'lével kezd6dik.
Ez a tulajdonság jel7j. J"IO!>Y Il~ny sort érintett a beszúr.\s. A beszúrás socln hioo I.<.
felléphClL'It: ebben az esetben nem ak:lrjuk menteni a feltöltött fájlt.

Feltl1.eJez\"c. hogy ......m legalább egy érintcn~. a kövelkez6lépésu éppen beszúrt


rekord PicturO!lD értékének mcghat:irod.5a. EZ! a Iogik:ít a ",",xPieture1DDlltaSO\lrce
Sqln:.taSource vezérlő ke7.eJi. nekünk csak meg kelllúvnunk a SELECT ut:lsit:isl.. és ki
kell nyernilnk az &léket_ Ehhez mcglúvjuk az SqlDat:lSource vezérlő select I) f\J.ggvé-
nyét, ahogy az aZ 5.llOIb::tn látható. Ez. a fUggvény egy DataVIew objektumot ad vissza.
amely tartalmazza a SELECT lek&dez611Ital vi:;sza.ac\ol;t adatokat. A vis.szaadon adaIOk-
oon egy adott sornak és oszlopnak az értékét
3 DataViewVdHozÓ(.'Iorlndex) IO.'lzloplndex) utasítál&l érlletjük el, ahol mind
a 8orlndex. mind:lz oszlOp!ndexwmozis:;l nuU:h-a! kezd6dik. r:.zt a vi.%Za:Idou
~ta.Vl ..... objektumot kapja értékill a ~e9ult~ valtoZÓ. A lU!ajdonkt'ppeni PictureID
tn.& a~ e!s6 SQl" alul vissz:oadol! cls6 oszlop\xln taJjlhat6. Ennek elérése a 7. sorban
II resul ts I O) (O) értl'k~nek kinyerésblcl és egész wmmi alaJátisjl":J.J tÖl"tblik

M,utin meghatiroZlUk a PictureID érték<-'I. k~szen állunk a fclli)o(tötl fijl rnenlésérc


ElÓSZÖf is vess2i1k ~ Fi!eUpJ03d vezérl6 progrnmhivatkozásj\ (JO. sor), =id mc~'6-
z6dOnk róla. 1"lO!>Y II felhasználó kiv~13Szton egy feJtöltendl'í fajk Ehhez a FileUplood
~ezérl6 HurU .. tulajdonsjg::1t ellenóriuilk. Amennyiben történt Ujlf('höh~s. akkor
meg kell hat:írowunk az elém! ut~t, ahov;! nK'flteni akarjuk a f1jh.

El6szöf ali keU meghat:íroznunk. hogy nw.:lyik =1'1'.100 mentsük a fjjlt. Wd>lw.:Jyilnk
esetcl>en mentsünk mm<k-n felha5málók által feltöltÖt"! képf:i~t az tJploadadl_ll".
mapp;lba. (Vegyük fel lllO/it ell 3 =ppát II pro;cklÜnkbe.) A webhelyen Ihó mappák
dé!t5j út",! "" Serve... ~pPolltl\(--.:>""'_"'yen Rlgg."ény ~t!Jtgb"d Iu.úroz!ut+
JUk meg. ""hogy ez: a 13. sorhln btható. Ez: "" filSll'"ény~' t'irWális ek'Mi 11/a/(p8dIlIl
{t/pl~lIrwIlI. . f) '"eSZ :&lapul. ~ \.~ a hou;i lal'OOZD j/zIliaf e4.'résI Ultll
(pfkUlIl: C, \11)' I:Io<:u-.ta\JIy w..t:.,t .., ,PI, )~<;>A.lbuPo\Uploaded~.'). A feltuJtöa
k~ mentbth« fizik:li dér6i utal kell dolgoznunk

Ez: IIlán ÖSiiZpoIlt05itsllnk a b... eDirectoty ~tkte. n Úiooru.n besZlln picturelD


t:ntkre ts a . jP'} kilerjcszttlire. ts nllmbOk .1 fellöhöu fájlt n eredmtn)'ÜI kapou.
össlclllzön elérési úlr~ a FileUpIood ved.'fI6 SaveAJI () fI1gg\'~nrt>'eI (15. sor).

A 15. sotban vakon menIjOl:; • rtltöltön képet I . ip\! kiteqMZlés l\as.m6lat6YaI.


teII6t fe/tételtnft. hogy • ltoItoltön tip JPfG tip. A Jf'EG gyaban hnZn6Il
~ájllorm6tum, js ezt • f«m6I1.mOt I\aszn6IiIlI'fat.omlMg az mm d9ÚU
tjnyképelOQ'p. A kÖYe\Uz15 részben megn6zziik rfIIId. hOII'(en ~ lll.
holl'( csat .JIEG ké!*.11Ihtswn 1Ih6ItenI.
AliItII,. holl'( tJZWÓIag JPEG \6ptk ~ korIMDlM az ~ mI9liI.
juk • ~ holl'( ma Ii!lusú WPfijIOlat: tÖItHnet III tGIF k6PtkIt.
bltUpeket stb.). &Ta. ~ n """"v urii6 "M\.~'6I az ór' v'o'n
talalató KirdtJrz.IeIeIM dma ~ lev RÓ •

• ';11

.~ ~~~ I .-
~

-
ZU....
... ~ ... ' hm....., qy.wp.... R-<I"'~. hfo*6bht!ti (tt/ • jhI)"''P '/bu...tba
Ha ft feltöltött fájlt egy a webkwolgál6n található mawába akarjuk menteni, akkor
~ ASP.NET alkiilmazásfl8k !rási iogosultságoUal bllltlldel:.mie ft megadott
mappáfa. Ha ezvt a jogosultsigok hiányomak, biztonsági kiYéteilép fel a SaveAs (I
függvény eiéfésekor a 24.1 példában.
A hasmMt operációs rendmrt6I függ, hogy mjlyen lépések Sliikségasek ahhol. hogy
Imi jogo$~t adjunk egy mappálll és ~ ASP,NEl alkalmazás által használt
fellasmálói liókra.

lia ez ~ kód a hdy{,re került., ~ felhasznil6k fellöllhetnek k/;peket ~ ~7..:ímMg/;pOkr61


~ wcbkisrolg;llór.<. M~ sz:lnjunk egy kis id6t aZ oldal Itipr6Wl.hilra a bóng6;z6nkben
(Ih(! a 24.9. álmt). Ki kell tudnunk \':ilaszt:.ni el!)' fájlt. kivál~m~ni egy kategóriát és
beírni egy cimet és egy leír:í$l.. Az [n:;ert gombra V"J16 k:ll1in~s visszaCS:l101o1st indit el,
amelynt'k socln új rekord keru1 a Picturea tibIába, 6; a feltöltő{! képel 3 webhely
UpIOlldedl ..... ge3 mapp.1j.'iba n>CT1tjÜk. Figyeljük meg. hogy ~ feltöltött kép f:::i.jlneve
megegyeZik a k/;phez tartozó Plctucell rekord PictureIO érték/;vel. A Pictures
tábl~ba a 24.9. ~br.in fcltöltÖlt képhez fel,'eu sor pic:tureIO értéke például 7 \"olt,
ezért II feltöltOO kép ml'ntl_ aZ UplOlldedI .... gea mappálxln 7. jPl! n~en tönénL

A nem kép tfpus(i fájlok feltöltésének letiltása


Jelenleg ~ fényképalbum-alkalma7.'ls fl('m ellenőrzi. hogy:l feJhasZIÚló kiv.'ilasnou-e
feltöltendő' f;ijlt, b ali :;em \"irj;l el. hogy a feltöJtÖlt kl'p JPEG képf:ljllegyen. (Tehát
a felhaszn116 fcltöltheml.' egy szövegf:ijh i.o;.) Viugiiljuk meg, hogyan írhat juk ek'5. hogy
a fI.'lh.aszn116 kidlassZOfl egy feM1tend6 f~i1t. és hogy ~ !ijl _jPl/ kiterjerobú 1eg)'CTl.

Annak biztO$it~dhoz. hogy ~ felhasznál6 kijelöl;ön egy f~jh a FileUplood \"ezétl6ben,


csak annyit kell tennünk, hogy felve5z0nk egy RequiredFieldValid::uo t \"ezétl6t
a Picture Templ3teField mezőhöz. b megfe1el6en be:íllitjuk annak tulajdo",;lg:lil.
Ahog}' a DetailsView TemplateFi ....d mez6ihez felven többi RequiredFieldValid.3tor
esetében, most ;$ mindenkl'pp ~lIitsUk a V"lidatonGroup rulajdönság()(" többiével
megegye7.6 énékre

A RequiredFicldValid.3tor h.157.mbtáV"JI biztO$ithatjuk. hogy II felll:lsmál6 feltöh.sön


wlamilyen filjlt. de hog)'an gar.uuálh:ujuk, hog}' JPEG fájlt töltsön fet b fl(' v:lJam,lyen
mis típusút? l~lis est'tbI.'n. amikor" fdhasznfil6 a Bro....:;e gOmlmI kattint, a fájlkid -
lasn6 p:irbeszl'dahlak <:Sak a • j PI! kiterjesztésll fl~okat jelenítl.'nl' meg, de a Fi1eUplood
"eléM nem j!lithat6 be igy. Ehelyett" f~jl kite<jeWbének nlCgllll~roz;is;jv:d meg kell
várnunk a f:ljl rl.'ltöl(é~.

Egy egyszcnl teszttellllltámzzuk rrlI.'g, hogy a fájl JPEG ktp-eo egy=1en eUen6rizzilk
" fájl kiterjesztését. Ha 3 f:ljl kiterjenl.ésc . jpg. akkor feltéteJezzOk, hogy I'rvl'n~'es
JPEG kép. Amennyiben nem eucl a kiterje:sztl:sst.-I rendelk",Zik, ~ kkor feltételezzük,
hogy nem bvénycsjPEG kl:p.
"2 .I v' ,~'~""''L-k,,"
_ ... _....-.m __ ,''. & .... , NET~
1:[.....- .. • ..
"!I"J'

~ nlrtmeQközelMstlllsznikri.lmIllldDntés8nt, lIOII'f II f'íl.wMya


JPEG k6jH. MiWI ~. "il ~ , o6oizzük.. IMI. ~
egy RiiYe9I'iI newo6( MyRea..-. t.xt~ 1ty~'UIM. jpg « Yi/toztMJI."
• f"'yUp"~"1IIrnaz6s\d; miris ~ I r.ItÖItéSt.

Ezt az ell(m6r2~ még az cl6lfkeU el~:mi, hogy úJ oort ,'ennénk fel a Pleturee
\lb/j,1xI Amennyiben ~ rehOhOt! kl'p nem kl:pfljl , a lX':UÚrO ut:l5íéi~ vÍ5Suvoniuk
Ehhez m6dosruu k 3 DetailsView "ed:rl6 It_Inaerti"", ~én}'kezeI6jtl
a 24 2. pllcUb:m l~that6 nl6don

t, f'rotected SUb dvPic~ur .. ln. .n_It_ln."rtln<J{ByV.l s ....... r "" <tIjk

,.,. -Handl. . dvPicturalnaert,ltII felt61tend6


_ &yval .. "" !lyn_.'o!eb.Ul.w.,bC'onlrc)8.t~t .. il"Vi_l"" .. rt~«I.tAr;~1
. .ln.ertinq
'tllen6riz~k. hogy k~fAjl ~.a -.qtortént
'u hO<JY frY<kJYM k"'fAjl-.
•• 01 .. cancelJnHT' .... 11<,.>\..."

"•• '"ivatkozA. II FileVpla.d ~.~rI6r ..

"0, Dia ;""\IeUplQ&d .... I'lIeVplO*! •


_ cryp.ldvPleturaln•• rt.PlndContrQ!1'Im.geUpload'I, F(leUpl9ad1

If Not i .... \I~Upl""d.Ha&FI1. Then


"
,",
n,
'Ninc. faltOltOtt t'jl
"&ned Ir _ r t .. 'l'rue
12, Bhu
n, 'Van f .. ltOltMt Ujl, a2'rt allen6riuúk, h<>oy at JPG Ujl'"
l(, It W>t l_gotUpl*,PllaN_,'!I::>Uppoor(J.En<1sNith{ " .JPG"] 1'hen
",
", "
~
~lI,,", .. rt .. True 'IIlviJlId u..~ f i l .. ,

~ "
p,
U,
n, If <:an<:elln_rt 'l'hen
,", '~ tudunk tov4bbl~1. vonjuk Vi •• 2• • ~~r'.t . . .
- i .. to",luunl< _ ev! Hgy ..... n .. t6 Qz_t"t
;n, a .C4IlC<01 .. True
», ~armotUplO<OdI"'\I,·M'''"\le. Viaibi.. .. True
n,
H, ~ "
",", 'A U...dD érték ~lllt' .. at .docU felhlln"'16 •• on.,.lt6:1'r •
n, ... Valuea("U.. rld'] .. Hemb.r.htp.Getu.ar{).Pravl""rtaer~ey
,",
29, 'Az Upl~dedOa ~rt.k be411ít4 ... az akt uAli. "'t~. ,. ld6ra
",
ll, ~ ~
e.V"I..-( "UpI""dedOn", .. o.taTiao._

Az. TtO!!lllln.ertlng oc •• ltnykezcIG a ~_:IOIban kezd6dik egy ,,~lllUlert neViJ helyi


\'111ozó ~\<ll. Ez a \'11tm6 jelzi. hog}- n'il!Za kdI-e ''OIUli a beRúr:bt. KeZ<lelben
az bt&e ,.1 ..., de a 9-11. sorb:In ~,,6 ellen6rze5ek ~r:I Trua iMékeI kaptu.
A 7. :-;orban ~ FileUpload "ez(;r!6re prog ... mbóJ hivatJmzunk (ugyanúgy, ~hogy
II 24.]. p(;lda 10. somoon tettük). (;s ellen6riu:iik a KaSFi le tul3jdonúg:1t, hogy
ellen6riu:ük, van-e feltöltÖIt fájl. Amennyiben nincs, ~ cane .. l Insert v~ltoWl '!'ru.
értl;kre :1.1litjuk, dc ha van fehöllöu f~jl. ~kkor lov:ibblépiink II kitCJjes:dést;nek
ellen6rzl-R'!"C (]~-16. 50f). A f~jl kjterjeszlkblek eUen6rztse az RndsWi thi I filW"(:ny
segllSé-gl:vell5nl':nik, a követkeZ<'5 forrniban:
K.inkter lánc. RndsWi th (,,"'sd: .. rd:t<!"rláneJ

Az EndsWith I) '!'rue &U,ket ~d vissza, lu .. Karakt erUne a megadott rt5ilirnkter-


~nCJ"'~ v~k. egy(:bk(;nl pedig FalRe ~ket bpunk. Az EndsWlthl) függvény
meghiv:i", elc'ín a f.jjl"",~ nagybetlJ"..., d.ltoztatjuk .. ToUpper () fi:lggvény meg/ú ..:l-
5'ÍvaL Erre azért van stiikstg. men a kar.>kterláJlC'ÖSSZehazonJi~s megkiilönböl:leti II kis-
(;s nagybetűket. EZ! a ~t úgy ker\lljük ki, hogy egys=-ú"en csupa nagybenhre
abkítlUk a f1jlfl<.'Ve!. rrojd megnézzilk, hogy:lZ II nagybetűs .JPG karnkt .. rláncn ,.t;gro.-
dik-e (l~. sor). Amennyiben a fdtöltöu f:ljl kiterjesné5e nem .JPG. a cancelrnsert
viltozó True értl-ket kap_

Amennyiben ~ 19. sor eléresckor ~ cancelInsert dhol6 értéke Tru .. , ~ be,zűr1Sl


visszavonjuk az ~Iadott (el neVli Detai1sviewrnaertEvent"rg-a objektum Caneel
tula~g~nak True értC:kre állil1sával (21. sor). I]a 3 beszűrns sikent'len. f11n'elmez-
t('"!rIünk kell a felhasznllót. hogy feltölt~ kisérl(."\e sikertelen volt. mp.el ~ feltöltött f:ijl
fl<.'"ffl wmjt érvényes ktpfájlnak. Az ASP.NEr oldal HTML r~hez hou:1:ldunk egy
I.:lbel \"ez&l6l. amdyn('k aZ azonwitöj:I eannotUploadr..ageMenage, éi Text tulaj-
donMiga elmagyarnzza II problémáI. lia a beszűr1s sikertelen. ennek a ubcl vezérl/S.
nek a Vi sibIa tubjdons;ig;ít True (;rtékre ~JJitjuk 3 ~jékoztat6 (Izenet rnegjelenité:ll'-
hez (22. sor).

It. 26--30. sorban uHlhat6 az a kód. amely prog,..~mb6J bcllJitja 3 U.erld 6;


az UploadedOn &tékeket. Emlékezzünk vissZa. hogy ezeket 3 k6dsorobt mir
rneS"ÍZ5giltuk 3Z ro kor1bbi résZében.

..
>
_Oc_

'''''' ..... -
24.10.6In
A[eIltan",JId
"8)' sz6wtútijll
próbált [<:1/611",,;
614 Iv. mz· W... kAIWUn kW ' I wASP.tETwoJlléy6ve1

Miut;ln ez a kód a helyére került, lu. a felhaszn.1ló megklsc';rel feltölteni egy érvén}1elen
kilerjesztéssel rendelkező f~pt. a bes2(jr:is ncm töoénik meg, és a képemy6n cgy a prob-
,fuó ."
\t.roá\ e\m~W!...n.ID \l1.f.'\'«:\ 'Fk\\i.\<. me~ 1.0\, \\). 'i.bnt). II. be:sr.ú..u ~u.,,~!UI<
haús:l.rn nem kertil új SOf a pictures t;lbUoo, és nem tönénik meg a fellöltöu fájl
menté:5e ~ wcbkiszolgál6 r;íjl~be.

Meglév6 képek megtekintése. szerkesztése és törtése


MOSI. hogy megoldottu.k az új ké-pek fellölt6;(:t és mentbét. a fblykfpalbum felilgyelet.i
oIdll;\nak elktwtNhe7, az utolsó lépés a GndVi<.'W vez&16 felvétele. amely Ieh(,t6vé
teszi a fellusmálóknak a meglév6 kl~ rrocstekintés<:!, ~ew6ét és lörl6(~
A kl:pt:k IIStáj1n;ok megjelenilNn: egy GmMew vezéT\6t fogunk használni, hasonlwn
ahhoz. ahogy e.ll az el6z.6 óra ~/eg6riák "Icgu*lmése, szerkt=léw lis /6rlése drml
~'T'lll'UÜk. EI&izör is veg)'ilnk fel egy GridVIe"o' vezérl61 a clvPicturelnaert
Dct.ail.Vlt:w \'ezl!rl6 udn, kapcsoljuk a p;ctuURDataSourCR SqIDataSource vezérl6h6z.
lD IUlatoons'lgának adjuk a gvPicturRR ér1éket. és kapcsoljuk be az Enab!e Paging,
En:Ible Soning. I':n.~ble Editing éi F.nable Deleting jelöl6négyzeteket.

Szánjunk egy kis id6t a Grid\rte\>o mez6inek I'Cfldbc:rlIkisá,.....: t;lvolítsuk el II feleslegese-


ket. éi formizzuk meg a megm:,;arnd6k:l.l. A Gó,Mew oko.s ctmkéjélx'T'l kaIMIM.ll1k
n Mit CoIl1JIIrui hh'atkozjsra a FICIds p.'irbesz&bblak n"'8JClenílNhez. és t;lvo!itouk el
a PlcturelDés URerl D Boundfield mez6l<et. Ez ut;ln a catll<;lorylD mez6 lfead",r'I'ext
rulaid<Jns;\ginak adjuk 3 Cate<Jory Méket. az \1ploadedOn BoundField mező
Ifeaderrext tulajdonuga pedig legyen Date A.dded.

Most pr6h1ljuk ki az oldalI a böngbz6nkben. és prowljunk meg szerkeszteni egy


",eglb/'i kEpet. Az Edit hiV:ltkoúsr~ val6 kattintJs 5ike~ megjeleniu a son szer-
kes.ll6 módban, de ha megpr6b:'l!juk menteni az értékeket, kiv&ellép fel Cannot
insert the value NULL into' "1,,..., 'UaerID' (A CserlO owJopba nem szúrh:u6 be
NULL érték) hiba(lzenenel, Ennek az az oka. hol:O' a Gr\dView aiaIti SqIOataSourre
~'ezl!rl6 UPOATE uwsltJs:\nak S4ÍÍk5ége van ene az éft{>kre.

UgyaneZZl'1 a kihl\'.1ssa! már 5zembekeriihunk. amikor az el6ző órában a GridVie'" ka-


leg6rdi,,:d dolgoztunk. Emlékezziink vissza. hogy ezt:l probl{>mál ugy oldottuk meg.
hogy programból jllitouuk be ezt az értéket a GridView RowUpÓ<Itin\1 esemt:'Ilykezel/'i-
Ifben MOS! i5 alkalfmlzll:1tjuk ugyanezt a a logikát. l~ozzuk ll~re a Row!1pdatin\1 ese-
ménykezd61: a \1VPieturea GridView veztr16h6z. és í'1uk be 3 kö'etkez6 k6ct.on,
M~rp~ip.G~~08er().Provldero.erKey

MOS!, hogy ez az öCménykezel/'i" IlCly(;re kctüh, a rneglév6 képeken eszközöl!


\'álto1.\3Lások sikeresen menlhcl.6k az "datbhisba.
24. tn-Upek"'t' ......,;' .fl, -..w~.llk ..... 1615

i\hog)' uokbl clGz;6 Detads\"", b; Gnd\~1eW \'eztrll'li Odébm, 3 ktl'r·etke~ Iqlb


3 megr11:lDd6 6oundF,dd rnez(ik Templ:l1e~ieId mez6kkf ~lakíúsa 3 szerkesaö" fclüle-
tük teslreszalJáo;4n.ak crdektbcfl_ A T1tle b ~ OetIcript.ion me~Cl Rtq"i~FIcld·
\'~lid:llor ''ezl!r16kkcl kell fcl)ólYÍlanunk, ~ CategotyID mezőnek pedog egy DropDown-
LIS! ",,:rerlÓl: kcllltl,l;Zlljlnl.:! J dvl'ictureInsert OrullbVIl.... "ezi:rl(;l""z ha,;nnl<'lan
Az LJpd.otedOn mct{oc CSitk oIvllsh:llóv:\ kell tc:nnOnk, mi.'eI nem S7.:1b:od ~rdni
3 fcl~k ~ 1lleg\<ÍItoaa!oW:t egy adon fá~ fclltlltCsekor.

Amn Jm'Ü1. hogy 11 mcgk....-ó BoundFlrid rne1,6l.;~ ~OOU Tnnpl.ueFocld mez6kké


lIbkulUk, fcl kcll ,=nOnk egy mez61:, amely ~eniu rna,.J mag:ll 11 kt"pCt. A k/Y.'elke-
z6 részekben meg"r'lzsg1Iruk, hogy miktnt \,(rgczh~IÜk CI ('zek~ 3 fclw.:uok.31

t\oribb.1n ebben 3lcckébcn, 11 képek feltölté:sfre uoIgll6 rclulet 1nC1I'1I1ó$i1 1osa !IOrMl
Unuk, hogy3n jelenitllClJÜk meg a f"e-lhaszNló ;ilullétmlozott breg6rü1ut eg)'Ien)iIó
Ii.sUban, hogy könnycl~ teg)"1lk egy bleg6n:l kl~ az új ~z. A mcgI.:..,,-ó
ktpdcet ~16 GridVieII.' vezbl6ben ugy:mell n C'I\'~ llbrjuk 31blll1:1Zni 11 kepek
C5:1k o"'aSll~(6 móthm való mcgtekinl~kor ts C!I}' adon kép szerkernésckor ill. A csak
oIvash.:H6 DropDu""LIS! ts 11 _~ern6 rn6tIban Iév<l DropDownlost vezérl6k köziJU
a ktllöntRg csak annyi, hogy ~mikor egy ",kord csak oIVllSl",,6, a DropDownllil
t!nabled tulai<Jonso'íg:\rutk bdllitisa Pal ...

Ehhez ri6ször-1.5;i1 kell abkit:.lnunk a CategoryID BoundF.eId mez6t Templ~teFIcld


mez6o,~_ Ez oon le kell cseranünk az IlemTempl':l\e ts EditllemTempble UbeI ts
Texl80x vezérl6it Orop[looo."LIS! "cztrl6kre. Az ItemTempble DropI)ov"TlUst \'eztrl6-
;ében az ID rubtdondgnak adjuk ~ pictureReadOnlyCatevori •• trt~kel, Enabl,od
lub~g;it po=dig .:i.U'lSuk Fal .. ;;"I'kre,,u f.ditltemTemplate OropDownU$I. \'t'zh·
l(5jének ID trttke It8}'Cn plctureEditC.t.egorlel, Mindktt DropDownUSI veurl6
a ,-ategorifl.Dal... SOurce adatforris-\'ez6i61 fogja ha~lni, ami n adotl fell1~SZlú16
k:l.leg6rilil adj.:! viSSz;I, ~ N _ k Cat~orylD ~ bt('ktt:l. DropOownllsl; '!'ost
k V.. l"'ul:o~g:dkml R1e8telenílve, Ezen kívül 3<>1M:tMValue tul:l.)dons<igukal
a "ategoryID trtt:khez kcll kOtnünk k(rtlr.:inyú :l.Wlkapcsol:l.l haszn.;ibt.í\'1I1

A None elemel ugy IlJdiuk fel,·ertni a Orop[looo.n4s\ \'f2érI6kbe, hogy Appe r>d.
Det ..80uodIt_ lub~8"tkat True btl'k", :1lhIJUk. majd felveszünk egy (jj
I,.i.tlt_ e1emc.1 ~ ~hC'm CoIlcct,OfI Edilor p:I~blakN.n_ Az uj I,.latlt_
fel"{'1t'le utin ne felej!sOk el ~ forr.:ls nézetben killOn relvenn; ~ Val". ,. l!rt~kCl:l. ktt
DropOownU$I. vcz6-l6 ",asp, I,.I.tIt_~ elt:tné-be

_\IHlUn e"·~Zl.i.lk ezeke! a v1ItOZl3WobI, prób:iJJUk ki:l. ~lbt1sob( a bOngé-


sWnkben. AJ.:)g)'. 2111 ~brtn U;thalÓ. 3 felhaszn:l16 képeinek Iwja egy kilta~t
Orop[looo.·nWt "ezl~rlÓ'.. eI Jelenik meg a =tk oI,':I.5Iut6 rekordokho.z. Az ~ 'ZCf'
61. 1v.t6Il • YHbeIIucNllom u. 'tili II ASP.HET 406g1"
kt'W~1 ~kordldl a rclhasndl6 mes tudp ,·~ItozuLni a k~ k3tegórd~1 A kq,ek
m6do6oW:;unak menrbe lIIúkOthk. II;, mcgaJunk egy én8<er..:I. kép dme ts \eicls,;r.
5zamár~. ts m'm)"e5 dltumtidli ~~ hasndlunk az UpdatedOn meztlbm.

u,. ,130!10$
10'" ZI ....

24.11 ....
Az 'IiJ'II5 ~ Ittllqprtaja m"8"*imllet6 " /c")'ÍM /"ulb,,,,

A cfm " I lerIiS rnegad6shk köbt1az6v6 tétaIa


A Ph"tur... t.ibb 'ritla és D,..criptlon oszlopu nrm engedik mes a l'Oull tntk.. k....,
~ a felhasndJónak k.öte1eb5 nqadma e;u,kha &tékcl<eI., alJÚko<" szmct'W
qn> képet. Anrlak bi.1J.ositkOra. hogy a (elhaszn.Ol6 mind=.kq,pen ~dton &ta....,
cl kdl vlgeVlimk az ~leu kft mn6 ~ rdOkltnci< 1~bú:11, és fd kell
'=nOnk egy ReqmredFoeldValid21or v-eztn6l, ahogy ezt a dvpictureha,,'t
Detlti15\"oew ,~zérili esetében isletlük. az 6r.I kor:lbbi n:szében

Ml\'el a RequtredFoddV:did:nor vettrl6k fel\,ftelo!:t ndr I~rg)-.. Ituk nund ebben. mind
n e16z15 6rilxln. nem íquk Ic reszl.... escn az ehhez 5Zilk~ga I-épo!:seker.. MlIldene$(.1rc
Ogye!jOnk <xb ri. hogy mIndkft vez&l6 esetl-ben adjunk valamilyen Méker.
a Vdld.loUonGrQI,Jp tul3jdons:18n~k (én a Pleture1dlt fnéket v:llasttollam).
FOggedenOl attól. hogy mil)"en V.ltdatonGroup Mtker. v:l.lasztunk, mindenktppen
~lIitsuk a GndVkw Olmm:mdFieId mez15jtnck. vol id.otionGroup tul.:.~g:jl is
ug)-'lInalr.l az áttkre.

A De.eription ...... 11IlÓ EditllernTtmpIBte ~ valóll"U1b s<rin


kicsit ~Oltan.n. TulBo. ---.s t.nmét. d l l. hogy. TWlJttHoM
~.MultiLln.. ~riIIalIottam... Coluano ~
. 25, . _ , . ~ pNg. 4 ,"6ket .n.n.
24. (n • KjpIklllltBN 61 nq' , fi • ~ "lIPP'! I ' .... 1111

II GridvteW veltrl6l1pMteóOot BoundFicld mez6je a kép feltöll~k ~tundt és


lde~ jclenítJ mes !Iz Up4atedOn Boundfield tlPU$Ö mez6, ez~n ~mikor szerkeszlhe-
16Y~ l('!;Sl;(Ik a Grid\~teW egyik sor.1il, aZ tlpdatedOn esy $z&.egm<'z6t jelenI! meg,
amelyben a felhuzn.11ó szerke:mhe!i az UpdatedOn tntkd_ Mindal.on;ilul aZt akafJUk,
hogy a fdhuzn;;\16 ne fris.sW- ezt az btl:ket. II fénykép fdtöllbe után ennek
az bttknek SVIW nem 5Z<lood rTOeg\'állozma

Ahhoz. hofn- eZl a rneült ufflc<=lhetetkn'* tegyük. az UpdatedOn BoundFodd mez6t


TemplaleFlCld tlpusCIYt keU v:tltoZl:uni, at &htllemTemplale sablonban Ibti TeXlBox
vez~6( pedig egy Label \'l'7.érl6re kellleaerelnllnk, amel}'J1ek. Text tulajotlonso\8~1
n Upc!atedOn oszlop énékéhez bpcsolluk ki!tir:lnyíi ad alk:t pcsola1(31 Ennek JllCsva-
l6sltá~ooz v~zzOk el a kO\etkez6lfpésckd,

l . II GridVI<:9o' okos ctmkql:ben buinlWnk u Edu CoIulJUI5 hh.. tk0ÚSf"3


2. II FICIds ~bbkban )elöljilk ki az Updat.edOn Boundfield mez6t, és
kaltint5unk a eon\'ef1 this 6eId into a Templa~FIC'Id hi,.. tkottsra.
3. II 1('n'l'z6 no!.ume \issul&-.'l' b1llr\lSllnk a GM"'e.... okos timk{jlbell az EdlI
Templ:ttcs hiV;r.tkodilr.l. és je\6ljOk kl u UpdatedOn mez<5 Ed,t)(emTemplate eIemét.
4. Töröljük a TclttBolt vezérlői. és vcgy\lnk fel egy L;obe) '·ezérl6t
5. Kattintsunk a Label vezM6 okos ctmkéjébcOI az Edil Data llinding.'l hlv:ukoilira. és
kÖMÜk Öf;/;te a ~t rulajdonságot az 1Jpl000(ledOo! 05zlop ~kb'd, kéur:ln)'Ú
atblk:tpl3QU5( 1~1v:a.

MJUt1n d\~.ZIlIk eztkd a lépkeket, próWI,...k ki az allbll a ~ Amikor


egy 9x EdIt somb!ll1l k:lltmlunk, a ~eszthd6 9x UplOlldedOn mez6j&1ek MINI
szövegként, és nem SZÖ\·egrneWkén\ kelj rnegielenílenie az értl:kd_

A megfalsl6 kép megjelenltése


A IJVPicture. GridVIew vcz&16 kiirja a Plctur•• albtbbisr4bb WU~I. és ~·é
I~ a f~lOo:;ak n albunúban uUJh;u6 kq,ek kezelésd. Ez a 5ZOIg:1JIlIW így
c:lrgerxlo5. de jó lenne mtgiclenileni a képek lda.tnyfteu ,·lJtozatál a lia ~~ soniban
(!hl a 2~ II ~trlt), Ez egy lmageF.eld mez6 haszn1La~vaJ bt.el6 d, 111108)- 3 18. feje-
tttben tirg)":liruk, n JnugeFoeId egy oIpn ki/:pd jelenll meg, amelynek URL-je ré:Rben
vag}' tdresen egy a GridView "ag}' DetaibVicw \'cT.trl6höz kapcsolt albtlJjziso:o;zlopon
alapszik. Ezt a küvctket6 kl:! tulajdonsis bd!lit~s:tval hjOk ej:

• Da-t.r-veUrlP"ield - Annak az ad:,ulJjzisosZJopn:lk a neve. amelynek


u btlike rnegle\enik INIjd a kép URi-;l:ben .
• o".utNgeUrlPo .... tString - II kE-p lJRl..je_ II O<tt"r-geUrll'"leld rubjdon-
sigban megtllltlroZCU atbd»U"05Z1np &tl:k~ a (O J k&kbl 5ZÖrlllItruk be
".Iv." ow... I\!4Ó1bmk60iltl li:ASP.NETnJt 1.1111

Uo;suk, hogyan mOködik együtt el ~ két tul~,.JoosiI8' 'együnk fft egy InugeFtdd
l1'IU6I ~ gvPl."ture. Grid\-;e... \ezbl6be. f:s .1l~15llk ~ o.t"~<;le\JrlPleld
rub~ a PicturelD, II o.tel_<;l.orlf"öt"a/ltstrin<;l rulajdondgot pedig
~ IUplO<lOdedl"'lIe."OJ. jw ht"k~ tUsd II 24 12. oi.bd.!l.

--
·I~
-...·w
---- ....... 24.12. MIn
IIV"'''''' "Xl' l~riJ-mo
AIJíJsI.* ".
'. .. CI'Id11ft.l' ~. Is
ti lodnJdoru4tlaIl

AZ. Inu.geF...,k1 meg fog ,eknileni egy k,<pe!. II Grid\'le'II' mil1den eg)'t'S sor.Ihoz.
Eg)' adotl sorhOll2n<n6 ktv URJ..je 'UpI<)fld .. dt_II"" f PÍ<.'tl1reW. iw I(':\~.
ami n a bdy és f1jlnév. ahov:! :. feltilllOlI f~lllIlClIl6e Ionomt. A 24 B ~bcln
S*ldiul az első rekom- A n lee ."n&et - p!ctureID Méke 11. e~n n lm.:lge-
Field II kOn.1keUl k6ddá képel.6d.k le,

A k~ l1l;l·~ ll, jpg. AmikOf' fdtől!öueT\ Ul:r. képet II ",'ebhel)~. a~ 11. jP9 nb'cn
kC'fiJ1t az Uplo..dedI~e. kOnptirb:l

.,.
--
..
" ... •• _>IY
....... 01 _ _
............ _ ~
"fl1'200S
11IO.fl,," 24.l3.MIn

-
••..... c lim'Ol ..*fi'I
"R)' J""""Fi<'kI ~
"" .. Crldlitol .a61clltr.
hállitJuJJ".
a ,u"Y' "'It
A BouOOFtdd melI5hOZ h;uQnlóan abpéndm",zb ~m .. szerkdzthet6 GOO\'_
ltn:lgcField mcz6jL-nek kki.·pezl!se is:i szerkewllelo:'i sor TenBoJt mczőjckbll \Öf1enik,
~rllt."ybcn:i o.tjlINg<'1jrlFldd én"ke jelenik mcg Ennek rncgaludilyWSóI trdcké-
ben jllilsuk az [mag(-'[~dd R.o.dOnly tulajdon~g.'ll True énl'krt'

Aki kÖYetl al ewm6I'i«e' I I . az6mIt6g6p«t, is kJpr6báIta allmlglfilkl mez6t.


~ Utwne. hogy al tg'fIS lOrOÜIO.! lIr10zó képek teljes "'albln
j' ..... rntg. r.hiI No "'" egy negyon mIIIII ... min k.... Ikkor al uóv
I GridV_ rtcdb61 A 24.13, 6trin ' """, mo • • kép'" séglloo k'wont.
allmageflllcl mtl'6ben l6W kéPIknK uw- MnI6 Sl4lesséQet '1lIIY iTiIQ"dgol
aO:IIa!lI'ik mti! I ontrolStyb ~ Width is H"igh' r~
M be6llft6sávlll.
Ha II Cont ro 1St y II Ildajdonságn. mond II Width, mind II He tgllt rflrtuIajdon-
s6g6t be6lli1/llk- Ikkor III ÖSSZliS kip 1'!\IQISd(Ia á SléIassége iIIndÓ Illu.
Ennek • ~ az I MtoinyI, Ilogy egyes k6pek lItOmM JIIiInhItnek
rntg. Ez. pooobl6t'lI al olyan ~!ip lal,1metyW. silM ,igbt .. maps'4p-
nak 1fÍn'(I!twI .. I W1dth" I\< :ht ~ megadott.,ff 'ÚQ-
+

m'9 M , ' " riIYt6l. Ha csak II Width, '1lIIY C$IIO;. '.1ght ~


~ be, " • • , k6pnat IIlOOOIIaI: II RUiU'ot (vagy II magluiQIf, oa
1KItomItiku... otv-n mag ....'sIol t'IIIIY ~) kapnak, amely 1TlI9OOl1
az eredeti srilesség-magasság Irinyl

A Grid\·in" I:ltl:ilm:;o;z egy i"leIcI:c (Töri0!:5) gornbo:x. :imd~Te klninl\"lI ~ P1ctur_ tibb
megfdelo:'l rckont,:a lörO!het(l. dc ~renkor nc.'m tórtmik meg ma~nak ~ képfi~nak
az drr.·oIí!hl " wcbklSlOlpló Dpn:ndszeri:lXil. Anukor egy reU\asznJl6" Ddc1c gombr:t
!cotUnt. \"~{uI;c; IÖftl'nik." rendszer lilii,,, megfc1e16 rekO<dot. é; ehndul
"Grid\~""" RowOorleted esemo!nye, A how &Irtom képfiil törléséhez k.1rt' kell homunk
egy t'5<.-m€:nykcZt'lo5t a GridVic.-w Rown..leted ~yéllCl. b od:! kelll>eimunk
" töoié.9; el... ~ kódol.

H.1irlb 1kInd.gy lijIt II wtblillolg6l6l'i''''''''ébóI, aklDr.tittl ~


• FU". De1eu leUrllsi_úel ~ IIhoIIl eléré i_úr. too"'td61jj1
' . , liliUi -"ré$i tiqa. A File 0SlliIY hISm6Iat6tOOl Q.ok bt I ~iMtUz06 k6dsort
" 1onisl6d ...,..:

A RowOeleted e.<;em~nykeld6 felvflc1c uWn Irjuk be a kÖ\"etkcl6 tJjrom..ar kódol,


cl..- b.s .... DirlOCtory "" '~dnll S.rV~'.""l ,t.
tl/p1011de<!1...
,$ ",
DI.. flleN_ "" Itrinq bueDire.-::,ory. e.J{"Y.I"Pi, _urerD', , '.jpg'
File.DeleUlf 1 , , _ '
Az els6 sor meg5ZCTZi az UpLoadedl .... g ..s n ... pp;! fizlk31 eléresl úti~t, ts ll'M!~k
a 24 .1 1*10:1:1 13. sor:ival A második sor IétrellOua 3 'örlend6 f~11 lelje:; r\e\...... &sze..
fűzve a ~, ~DJrectory k:m&kl("fbJK"« a töröb. sor PictureID tn~kb'd ts a . jpg
kile<je<>tksd. A hamudik ~n n~ a UJ ,öntse a PIL •• DeL.t.'flletl...... 1
mcgh~val.

A teljes fon6ok6d
V~gre ......llahif:l befejezttik a f61ykfpalbum felll8)"t'leIi rbzét - grlI'uljlunk!
A PhotoA&oin/Ilflfault .••p" oldal ld"", fordsk~[ a 24.3 I*küban IJth.""k.

1, raport. Iy.t... oat.


2, IIIIPCIn. Sy_t• . 10
;,

.,
4 . partlal Claa.
5:

7,
Pho~~ln-oet.ult
11lbeoriU Syn. . . W.b.UI.Page

Prouct~ SUb ""'OeJ-'liIyV.l .. ...s.r A.- Object,


_ lIyVal • Aa Syat_.rv.ntArl1s; HaTO'U", Koo.t.o.d
8: U.erI~alu •. ~.t •

_ H~r.hip.GetU.er().Provl~rU •• rKey.ToStrlnqll
9, c.nnot\lploadl .... Oell<1u .. \l<>.Vülbl e • F.. h"
l o, End i!I\lb
ll,
U, pr<tected i!I\lb dvC.tev<>ri. . I ..... rt_It.al ..... rtilll1dlyVal
_ .erder Aa Obje<:t, BvV"l • Aa
_ Syst_.IIeb. Ul . W..tcOtltroh . Deta! bVi_In."nl"vent~.)
_ Handl ... dvCategorl •• ln •• rt.It_In..,rt!ng
13, 'A U.erID ~rt~k be'll!t's<o .z adott felhasz~ló azono.ítój'ra
lt, •. V.. lue.(·U.erI~·) _ ~r.hlp.GetU.er(I.ProvlderU.erKey
lS, End SUb
16,
lJ, Protect"" i!I\lb gveategooriesJttlw(1pdAtilll1IByval Hf>CSer A.- otrjf!Cr.
_ lIyVaI • Aa Sy&t • • lOeb.Ul.w..beontrol •• ~ridVlewUpd4te!NentArv.~
- KandI . . gye.tegorle•. RowIJpd.otllll1
18, '1. U... rID 'nék bH1l1t ..... u .doU felhann.tM ..".,.,.ttójára
19 . ..NewValue.I·U.ert~·1 • ~r&hlp.GatU ... r(1 .Provide[U.er~ey
20 , tnd sul>
21,
22, ProtKted SUb dvPlcturel ...ert_lt_ln...ruld{ByVal ...,.. Aa
_ Object. lIyVal .....
_ syn_.Ifeb.Ul. WebCoatrol •. [)eulhViewl..... rtecttvent......\j.J
_ Kan,n •• dvPicturefna.-rt. H..:I~tted
23, 'Ka a rekor~ be81~r'aa aiker •• valt. ~tj~k a kfpet
24 , Ir e.Affect~ow. > o ~n
2~. 'A felha.tnáló legnaqyobb PIcturelO 'rt'k'nek ~hat'[oz'aa
26, ou. n"ult' A. o.o.t aVi ....
• C1)npe1 . . . Pictur.IDData~roe.Seleet(
_ o.o.taSou[( eSelect.>.rv-t •. lIII:!ty). [>;ot.Vi_)
il

0\_ plct~relDJ~at~ A8 lntl9~r


_ ~lre.ult'IO)IO) Integeri

'1I1vt.tt. ...b • FIl.upload ""'24.-16.-'1


Dl. illlOgeUpload A8 '1 l elJpload • CType(
_ dvPlctu.-e1n.e.-t,l'lndCcntroll · ~load·l, 1'1leUploadl
",
n, It i.ageUpl""d,lI... ril. 'rt.-
34, DU. booaeDir..,tory "" lncrlng
_ S.. rv.. r .ICilPP.th ( ' ,/Uplo.(t••n_lI"s/·.
",
H, tlllOlle\JplOlld.s..veA8lba. .Dlnctory ,
_ plctur.IDoJuatAdded, ' .jpg')
11 , End 11
ll, End II
1', l!nd SUl>
40,
41, Protected SUb dvPictur.ln."rt_lt..-ln."rtln9IByV.l &ender A$
_ Object , \lyVa l .. ""
_ Syat_, Web. UT . w..bCotItrola. Detal hVI_ln.",rtEv..,tArv')
_ ~ndla. dvPictur"In..rt.lt~naerrlng
4l, 811en6rlzzUk, bogy a t .. ltOltO" kfptájl ~~ .. .egtorttRt,
43, .~ hogy érv~e. k4pf'JI-a
U, Dt.. canceUnMrt A. IIoolean • Fala..

""""
41,
•HI v.tkozá. a FI h'Upl""d vezérl" ...
Dl .. ilu!re>lJpload "" rlleUpload CTypooI

48,
,", If Not ~l"",d,I!a.'lle 'nlen
S0, ' Nlnce f"ltOltOtt f&jl
",
52, EI."
cane .. llnaert • True

", 'Van f"ltOltett Ujl, ..1len6.-h11lk, bogy 'z


JPG fÁjl-.
H Not ~1"",d.'Il~.TOOppUI1.!nibWltb( · .JPC·1 1ben
""
55, .u>calI .... rt Trua 'Inv.lId l!DIl\Ie Uhll

"~ "
56,
",
58, ~
59, If ancelln ... rt Then
60, . _ t"""'nk tov"'bbl~i l VQ<Iju.k vi .... a benú.-"'t, . .
... . 1enltsOnk _ egy !i1lY"I_n.t" On"etet
61, r.Cancel • True

.",
,",
63 :

66,
, ~
"~nnot\lpl"",<llmoo\l(')4,

"
. .a\l'" Vi albi" • Trua

.... U.erIO énf,k boMlI/tba <u acSott falhauM16 nonodt6jára


",
U,
@.Valu~.'·U ... rld·, • ~r.h1p.GetU,er(1 .PTovl~rU'ftrKay

69, ' Az UploadedOn ~rté~ b.áll/t'•• az ektu'll. dit~a 4, 1<16.-e


10, " . Valu ... I·Upl~· • • DIotWTi• . _
ml v. rMZ • w.. fotóIbm ~"/l'!1 II ASP.NEl 4.6g1 ..

7~, Prot~ctlOd SUb gvPlcture • ..)I<>WOeletedlByVIlI .I'!'nd"r As Obj~t,


_ IlyVd e As Syst ... Web.UI. W,·b:nntn la.GddVlewOeletedr.vfll\tA<va'
_ 1Ltnd1_ gvPtct .. , ... ~I .. ed
~4, Dial bsa.Directory OU liulng ~
_ S<ory"r .lI4pPath( ·-/UplOAdedI~ ... I·1
7S, Di. Ul,,*- A. IltrlftQ" " ba_Directory 4
_ e.J(..yal·Pictur"W", ~ ".ip!!·
1~, rll •• Delet.(tll~1
17, Ind SUb
18,
19 , I'n>t8<:t&d 8Iab qvP!cu.rHjlooIUpdat Ing (Jlyval _ e r ...... i"ll':lact.
_ IlyVd e OU Syat._.~.Ul.WebControl •• Grl<!VleowUpdate_'.Ar'i9)
_ K,o.."n_ gvPictur ••. lIOooOpl4tl"ll
80, 'A U.erlD jn<!k bHllld .... az ad"tt lelhaal ..,U6 uo""alt6jjrll
81, e. _ _ lue.I"" ..,rld·1 " )4"""nhlp.GortUae .. II . provlderUaerJ("'I
~2, End "'ur"
81, End LO.

A fényképalbum megjelenftése az összes látogató számára


.\k$, hogy készen ngyunk ~ fénykép;llbum felQ~eleti rész~"",.,l. !Je.&tilnk a <:fleg)~
~, nJ<lr ~k k~ oldalt kell elkészllem1nk

" I'tIQtoAlbum.upx - Az adon felllawdló albwnom:lk képell jOeniu meg.


" "'hotoDet/lil.aspx - M~lenili ~ klv:1l:lSztou kq,<:1. ts; 1ehef6v.. leni
a lálDgat6kn;lk a rnegJe~k megtekint<!os&. a felll:lSZnjlóknak pedig
n>l'gteg)""ttxk how~

Kezdjük a Pnotol.lbum.llupx ollidlal. Emlékezzílnk vissza, hogya f';nyk<'p::.lbum-,Ilbl·


mazjs kezd6okb~ megjclenil egy listil U ~ fel~16róI egy fffiyk~lbum ..~
muulólu,... tk~SSlI qniln. 12 a hj,·,ukom houa ide. II PhotOl\lbuoo.Aflp. okblr.t
II Iiwg:1l6Icn, egy ellhez ~161ek~llI br.tkterUflCrulk :.iu<h'a a U.erld értékel.
P!>otoA I bUII.up,,? ID- User ld

Az :dburnLxon Iil.hOl!Ó k~k btegóIU ;l~pj:ln m1dezhec6nek kell lennitik


E2: azt jelenti, hogj.. az okIalon ,zer~pdme kell egy DropDownLi.c ve:zérl6nek, amely
1n~lenjtl egy fcUl<Isználó o,;.,zt:5 ~'g}"edllcltcg6riJ~it (egy AlI 1ehel&é'ggel
eg)iln) Csak II kfo.';il<l!.ztou kategf>Nhoz Ur\OZÓ kl']X"k fognak megjelenni

r\rnellell, Ilog)' meg)Clcniljük III ~dou fdhasmil6 ki\"ll;l5l\otl Iclleg6rUjihoz tartozó


ké-pdlet, lellet/w" kc!llcnnünk ~ 11togatókn;lk. hogy crr61 az old:.dtól a PhotoDe·
t ... il .... px okblr.t juss:lIlak. A PhotoDetllil. ... px oldal csak a kq,et jeleniti meg
a hou;\ unoző ~eI Ezen kivul II bejde!llk~1 felha.wci.16k Qzenetelr.et
is irhatn .• k
Ez,. feLdatiisl:l kis.5é nyomaSZ16nak tűnhet , dl" ~nnyir~ nem lehet!"/)Mz a helyzet. llJSUTl
ebben és a megdc5zi16r:íhan rnlr megviz,sg:'ilruk, hogyan ,~gezhel:c5 cl sok ezek közOl
a fel::ow(ok kötill. A 17. fejeZClUen ~uuk. hogyan haszrullh:uók ~ DropDownIlst \'ezblc5k
~ GrklVlew vezérlc5k álul megjelenített t'Jedml'nyek szúr6iére. nen~g pedig aZt is
megnl'ztilk, hogy:ln h.asználh:ot6k ln1:lgeFI<'!Ld mezilk a GridVlcw ve7b1o'1btm t:ltilha(Ó
képek megjeleníl~ (~ 18. lecka.en i.s foglallumunk már ezzel). MO/iI. egy új leck& kell
megtanulnunk hogyan bó\'Ílhe!:c5 úgy ~ sziIrc'5 DmpDownList vezérl6, hogya I.i(ügillók
megtekinthesiék egy fell~11ó fényktpalbumin:ok Ö6Szes képét.

A felhasznál6 fénykópaibumának szúré••


Mivel ennek n oIdalrtllk a felhasználó f~nykép:olbumát kategóriák alapján szOrve keU
megjelenitenie. el&zör vt.'gyOk fel a kalegóriikat L1rt:drn:u6 DropDownIlst vezérl61:,
amelyen keresztül a 1110g:u6 szűrheti az eredményeket. El6ször adjunk egy eata<;jo-
deuD4CIISource nevú SqlDataSource "el.érlÓl aZ oldalhw. majd áJlit5Uk be az Sql-
DataSource "uázsIójál a k6"etkezc5lq,ések el"égz6;bel:

l. Jelöljuk ki a CIItegorieB táblát a IMlyí16li.l;ciból. ts adjuk "i~ ~ Cate<;loryIO


és Name OS2l0p0kal.
2. KaUintiunk az ORDER BY gombrn, h az eredm{myt rendezzOk növekvő
$Orrendbe a NMI\e O:S2lop :dap~n.
3. Katum...mk ~ WHERE gombrn, és ",-'gyilnk fel egy 5Z(Jr6kif~;ez6;t a UBerId
o:;t1oprn. az 10 QueryString é1ték alapján (Ihd a 24.14. :ibr:1t). Azért n IC
éTttket ha5:wáljuk. mi"el ez a kezd60klalr61 áladon lek~rdező karakterlánc neve
4. Zárjuk be aZ SqlOaIllSOurce var:1zs1ót. A tervezc5 nl'Ulbe vis$Zaltrve v::IJtsunk !il
forr.... néZetre. (:s m6d0shuk az SqlOaI~Soorce UauId parn.,OOer.::1. ehl"oHtV'J
a TYPfI_. Obj "ct· bclllít1$.

-,-- _., . ... __ ....._. _-----


_......__ ------_._-~

--__..- ---
--
.._ - -- ---,
-~ .. ...., •

- ..,>=.=',=
24.1 . ....
I 'egJ,j"lrfd <'/()' u,irlildfrpésl " IJsfffD oulopru az ID k~ IturaJaerl<l"c értélll! D/apjd"
624 1V. rMZ • WIIbN fOtWM.m kászft6sa IZ ASP.NEl ~

Ne felejtsük elattávolítani I Type~ "Obj ""t " bdllítást az SqlDataSolKCa pariIméte·


réb61 (4. lépés). Amennyiben megfeledl::.eziink ft Type IIlIajdonságról, az S~Datil­
Sourca egyatlan rKordot s.em fog visszMU, ami üres IeoyI6listát fog eredményami.

Az SqIDaI:lSOllrce be:1l1ítás:l. ut::in készen állunk 3 DropDownUsl vezérl/5 felvételére.


A vezér16 10 Illbjdonsigjnak adillk 3 "ategodee énéket. 6 cl,rsílSUk
3 "ategori •• D&taSource SqID:uaSollro: vezérl6höz ..\{lvel3~ akarjuk, hogy 3 képek
listáiinak frissítése alltomatikus leg}"Cfl. amikor II felha5ználó ki"ála$Zt c8)' (jj k:tteg6ri~t
a \ist:lb61,lillít~llk a DropDownl.i5t AutoPosts""k tulajdon5ágát True éMkre.

A DropDo....nl.ist ,.ezérl6nek tanaimaznia keU aZ All - _ elemet. i$. !!nnek az ..lemnek


a kid.las7Iha az összes kq, megjelenitését eredményezi. függetlenül attól. hogy a k(,p
I:Inozjk--e kal'-'g6riihoz. EnnI.'k megval6!(,uS;\hoz IiUílSUk a DrupDownUst Ap~nd­
D&taBoundltema tul3fC1orWgát True é-nékre. ~ a UstUem Collection Editor~·
abbkb:!.n "~'Ük fel aZ AlI elemet. ),j'lltán felvettük ezt az elemet.. ne fel~k el
vLiIl7.aadni a leir6Iu'xkx. hogy aZ imént feiveli <asp: Li.tIt ... ~ tana\nuua a Vdue=""
bclllitht.

MOS! nézzük meg, t10I is tanunk, k nyi~k meg az oldal! a böngész6nkben.


A Z4.15.ábrin a PhotoA100m ... sp" oldl\ látható.

TIMI o.lIIte Photo Alba.


--",,~go­
pho ... Alb" ..

nt... PICIUn:O tiv C " .... ,.


24.15."
A INIJ0f/6 lisUl ti felhasználó

1i>1"'To/Óri<lt" kit'a! !arra/maz


qy - Ali - e/cmCl ls

MilItán elkl'szQlt az Sq!DataSource ~ a DropDownUsl a katcgóriák szjmá/"~. már csak


az van h..!l"', hogy lru-ehozzuk az SqIDalaSouro: \'eu,r161 a képekhez a hollJ l.:InoZŐ
GridVJCW vcztrl/5vel cgyütt. A7. clj~r:1st kezdjilk azzal, hogy fel"cszilnk egy pictures '
na.taSource nc,il" SqIf}~taSource "ererlfit a PhotaAlbum. ilSpX aklal",. AlI akarjuk.
hogy szllrll':'16 GridView vcu,r\6nk kq,.".legren n ősszes kép megjelení!l$ére az
- AH elem kivlilaszt:Js.akor. ezén aZ átlapnil \oo:.,t több munkánk lesz az
SqIDmaSaurce bd!lít.áS:>Vl11.
24. 6n. " f'P'k;1 I")' . ". . . ft f l,-..v.,""'!!kt' '''' 1625
EI(lnÖr-is meg keD adnunk egy qn-edi SQL..... w.lWI. N)'IS5lJk meg az SqI~taSootce
\'~rerl6 "4r.iv;16P~.
ts lA Conngure ~ Select Sl:Ilemen~ k~}'6n kafX'OlJUk be
a Spedfy 3 Cu~om SQL Slatemcn~ or Slored "l'CI«'dure v~la.n6g0mbot. El u~;1n
II SELECT bpon írjuk be a kövctkez6lekb'dez~'

UI.ECT Picture!D. Titt., UploadedOn


f1!OM !>1ctu....
WIlDE Ua... !d et .... Td .vm
'C"tevoryTD " IICn ..... oryID OR ecat~orylD IS Nt!LL)
!wa IlY Upl~ oac

Ka~Un\5"lflk 3 N~ somIn, ~ adjuk meg a p;lntlnéleréftékekct. A Iilla.rId p;lr,un/"lcmél


v~la»Z\lk 3 Que!yStnog 1d1l."l~8'-'l II p;;Intmétel fol I :15 "'nyíló lisdj:lból. és a Qut:l'}'Slnng
mez6legyen ID. A IiCIlteg-orylD p"-ramkcmél ;1llil5uk 3 paramkenOl'1i..t ont rol
b1&re. és II lcn}il6lil1t1b61 v;1\a5W1k II eategor1H vezM6t (lisd II 24, 16, ábrát).

-_.-.... _.-
_____ " _ _f __• _ _ _ _ ._~

--- z--nrs ---


-
••

• • -
---
24.16. "

--
Á ~d

Ez a SEUOCT 'ckádc~ a Picture. t:íblárurk azokat a PicturelD. UploadedOn


is a «tJI,.",m bt&

~
'1'1 t 1", oszlopaIt <KIj;l vmu. ahol II 1I.",rld értéke megegyezik II Ick6-dez6 Iaraktt'rI~oc­
bIIn megadon U."rld értl!klcel A (CateqorylD ICatOJgoryID OR iCategoryl, IS
NULL) .m1r6IWejezd al. adt::I;t felhaszrgl6 d:sttes k~ \-mza;.dja az - - Alt elem
k,,)IIQ'h ...koo- Emlékeuwtk \'ISSZ3, hogy egy rI< úr':ido!-k V!SS7l! ....... tna.. akkor "!'nl".
ha bármd)'Urlllw ig;oz. lelW ha a iCategoryU p;lrnnker tI.'UU. (a:az tna..
al. AlI -- <ym kr.?bs7'cI ... kor). a (c..toqoryID lCateooryID OR ICategorylO IS
NUllJ ~cu klfejezés l'rue I'nl'ket ad ~ minden kiénaett 5IOfT:I. Ha '"'''' NUll
3 1IC1ltOlloryID, hanem ehelycu \-abmilycn l:r\'én)'t'S CateuorylO énC,k. gkkoo- a ki6t!-
kelál ~k akkor ad vi5$Zll '!'ru" értékel. hll a CategoorylD megegyezik a liCategorytD
p3r:lmétcm:l (ami a 1en}1l6 lisWbóI kiv:1l.:!.wou k:.ucgóri:l 6Wkk 13ttalrrulu.ól).

Még cgy foruos I(,p&l el kcll \'~znünk ahhoz, hogy a pictureso.taSouree meg-
f,,1eI6m mtlIcödjOn. AJ:.rpáteltno:1b $Hrinl az Sqlo...taSource visszavonp II SEL!:CT
lekbdezát :.rbb;on:.rz e5dbm. ha a pantméterelc 1»rmelyike r-;'ULL Et an jdrnti, hogy
&21 1V. MIZ • W... ~..... ,., U- t ' II ASP.NEl IItJWihtil

lb.p6\e1.~Ú!5 szerint az Ali ekm k,\-~lan1Úl. ésIlCatevorylO palllml:tt'f


~
Nl'U bttk" QC:'Ién az Sqli):Il~Soo.trtt '-LS6ol;I fogp ,-onrn ~ SEUX':'T UUlsUst. ts qn.':ik:l-
];I,n nem ~d \.~ ~}'I. Ez tppm n e1.lenk"z6jo: ~M:lk, anut ak:ironk! A hdyza
mrgo::>küslilll qn."'SZCTikn :illil5Uk a p1ctur. .o..taSource SqIDau.5ourtt \'rltr16
Cance1S.. 1ectDnNullPar"""'ter tula~t 'al." btékre

Mivel t!l.épzelhet6. hogy. Mnyk'PeIbIm tartMnaz olyilll kategóriákat,


8fl'1e!Y\IeZ. ~ 'lép Mm tatWi'I.. bllles tIOIOg IItltW \I1f'/ MQM
ÚltntItet mtlg&dni. GridVifIw IInptyo..ta'1'ext ruIa~.!iI.

A kiIZIlrt képet megj III nftése


A PhotoAl_.a_ OkbIOn e1....~ lItOb6ltpts ~ k.u.ziln eredmtnydo: nJegjdm~
sr egyGridVie....- \,,"d,I&nL Adjunk egy Grid\'jrw \-eZtr\6I: az okhlllOl. k::IpcooI;uk
:ol product80atllS"",rce SqIO:ot:lSourtt ~ ts kapcsolJUk be lI1: En:Ible Son'il8

ts ENbIe P:lgJrtg ~'Wd<CI. 12 hirom Soundrtel.d mez61 hoz ~ a Gnd\'k-w


V<'ztri6bm. egyel·egyet n SqIO:otlSourtt ~Itd \l.SSU3doxt O$ZIopoIchoz, A F"oclds p:im.,..
1'ZO.'dlblikb:tn ~\"()lItsuk el a Product ID Houildfield mezót, m", ...1e-nncl; megjelen;lCs6"e
n;nc5 szQ~nk. és ~llitsuk ~t n IJp<:\lIt~ Houndriekl me~ """dert..,.,
tuLo.jdoo-
dg:111s Date Addftd é-r!€.kre,

A GridV'1eW jdenleg k~ BouildF"ocld meZŐ!: UI!Ulmaz: '1'1 U .. és UploadedOn, K~ további


.....,~ . . n szOksqp1nk, ...gy [m.:;ogeFldd mel6re a ktp meg,cleoit6lthe:t. és cgy
11)"f)('fUnkF"tdd mo:-z6n:, amely :iur.ln)itj;! :ol fcllusznllót a ProductDeta (le. aspx
okbl.-.... atadva a Pictl1relO tnélrC'l a Ickt,dIo:t05 k::IllIkterUnc luszn.iL;ttl\'aJ, \<'g)'\lk fel
a l·tY'P""linkrtdd mez6( a köo,-etkc~ ItpélCkkd

I. A Gnd\r"", okOl'i rimkti(l~1I k:iu,ntsunk az Edlt CoIumn!!I hi,..tkm:hr.I. hogy


megrt)·iMo.J,k a F",lds ~rbc:sz&b.bbkOl
2. 'Cgy\lnk fcl egy HY'P""UnkFte!d mez61. és hdyczzllk el úgy. hogy nleg)'eIl
n cls6 me~ a GridVicw veztrl6bC'n.
3. Állitsuk a Text rub.~got View c-nts. II DaUNavigatell.-lFlelde
tul~jdon5:1got PictunIO, a DataNavigateurH'ontlll.tStrlng tulajdons:igot
pedig ~/Ph"toDetell .... px?lO.{C) l'ottkte.

A IlyperIJnkFlC'ld tub~g bdllitini cgy Vie..- C, /'lU (Megjc'g)-.:bek megcektn-


ttsr) $.W\'eglI hiperhi..tkod.5l: ert:dmtnycwck, amely a PtootoOeu i l • upx ri D. Pi c-
t,U.ID. PhotODetail. upx dmrc mutat. és amelye!. ~ kÖ\'C'IkC'Z6 r&zbm fogunk
kidolgozni . hog)' oncgjC'lC'nitsOk azt a fén}'ko!-prt. amelynek a PiC'turelO tntkc
megcg)·czik II leIo.é1tlt:~ k:i""In:ffi.1ncb;Jl'lll.~ ID tnH:ke!.. Ezen kinlll1lC'flle!enilflik
nq a kq,hrz WIOW ~eI, és ~'t 1C:5Wik, hog)' a ~!entkezrtt
felh:t5~ mqjIC'g)-zbC'kel irh2w,alUk.
Fejezz\1k be a GridVM!W vezér\Ő\-e1 való mllnlcll egy lmager.eld hozz1adb;;'lval, éslUílSUk
annak Da t alma"eurl f"ield tulaidonslgál pie t IIrel D, Data "tlMgeu rlf'oITlllltStr ing
tulajdons1gál pedIg _fllploadedrm..ge.f (O) . j pg é nékre, ahogy ezt a gvPictures
GridVJeWeseta.en is tettük .. f61rkl-palbum feUigyek'ti oldalán. javaslom, hogy :illílSUk
be az ImageFieid mc1.6 Contro l Style lulafdon.<:1gának Width ''''gy
H<!ight
résztlll:ljdonságail is a lIlegfelek'5 &tl!kre.

A 2'U7. é~ 2418. iOO att mlllJlll". ahogy egy l:!.togaIÓJi5un fénykt'paJbumil látja
A 21.17. :íbr.in a felhaSl.n:l16 n ÖiSSZ~ ktp megtckintO!:sét ,'ála51.tOlla. a 24.18. :!.brnn
pedig úgy szúne az eredményt. hogy Q::Ik a Test 4 kategória ktpei jelenjenek meg.

-~;;;;o.ne "'go-
Photo Allt ....
0ItIIIII! ....... "'".

24.17 . ~
J/sI", W$zes 1tI-pb,i!I. ""'fIit'I""íJ&

24.18.~
II Ji',,)~lhumra egy.=i"'- knill.
és masl csa."
TI:SI ., kl>1<górln liIPm
},jlhn,óII
628 1v. rál • WIbIs fOt6IIIUm k6slftáIIlASP.NET -uftMgMl

Egyetien kép és a hozzá tartozó megjegyzések


megtekintése
Az utolsó elkk2.ít('ndlS oldal a PhotoDetail. aspx. Amikor a felhaszn11ók a View
hiv:uk02ásrn b.ttimanak a PhotoAlbuno. allpx oId.,lon, akkor erre 3.1: oldalr:l kerülnek,
ahol megtekinthetik " képet és a tK».Z3 l:Inow megjegyz6>ekel. A névlel"'1 felhasznál6k
is rnegné~helik a képha tanoző megjegyzéseket, de cs:lk J bcjelenlkezelt felhaswálók
irlulnak Uj:>b.l.

A PhctoAlbuJo. asp>: oldalon l:ittuk, hogy:In nyeme'l6 ki és jeleníthet6 meg a~ Ö6Sl.e~


kép. amely ahhoz a felhasUl:íI6ho~ tartozik. akinek a~ adalalt :íladtuk a !ckérdczl5
IGIrnktcrl1ocb.:In. A PhotoAlbuJo . aspx otdalon n ÖSSZ<.-S kép megjt:lenitbc helyett
csak alTÓl:u: egy képr61 kell inform:kiók:u visszaadnunk, a,nelyiknek a I'lctureTD
énéke ITleg<.-g)·ezik a lek("fdcz6 kar:lklerl:íncban 1udott énékkel.

Ehhez eL&zör is ~diunk egy SqlDatoSourcc vezéri6t n oldal hoz, és a1. ID tulajdonsá~·
nak adJuk a pietunDataSource énéket. 12 uun :1llílSuk be úgy a var:hsl6t. hogy
a PletunlD. a Title 6; a De.cription Olizlopokat adj;l .. is:;u a Pietur".. tAbI:íból.
Vegyünk fel egy szúrokifejezést, hogy csak nl a rekortkJ( kapiuk viSS7.a, amelynek
a l'icturelO én"'ke megegyez.ik a1.IO j('kérdez6 karJklerl:ínc é-n"'k~eI (24.19.1b!'2).

,.
.'-
---------,
24.19. libni
Mjuk ,issw a:rt az "8)' reIIordot.
"nrd)~JeIr" PiclUrelD b-1tY.c
~k ,n lD kIII!rrIC:dJ
karoktcrlánc .'rI~""

A pietunDataSource SqI[);lIaSourt"e vez&ló be:íUít:ísa utAn az egérrel huuunk


eg)' De!.1ilsV"1CW "cú:rl61 ~ Too/bo" palettár61 37. oldalra, és r1rsílSUk az imént fd''CIt
SqlDal:lSource vez<"rl6höz. Ez IUirom BoundField mez61 hoz létre. ~·et·eSyl'"
az SqIDal:1Sourcc \..,ZérIŐ ~l!al vissz:lado« mindegyik oszlophw. A [}et:lilsVicwokos
dmk$Jcn k~umlSUnk az Edit Fields hi .... tkoz:'isrJ. k r1\'otítsuk el a picturUn
BoundField mezőt. egy !mageF.e1d mez6\'e1 hdyeuesítvc aZl. nlll;d :íllítsuk a2 InlllgeF"oekl
me:z6 DatallMgeUr lfleld tulajdoo.s:íg:it PictureID, Data11llageUrl FOnMtStr ing-
tula~g:lt iX-'dig _J\Jt>loadodl .... ge.1 (O). jpg éltékre.
24.6rI • Kjpek 1toIt6Itéa" megjelllllltl ..,1etw megjeVYZéNk fr6A 1629
A PhotoOetai ls . aspx oldalon agy OetailsView vezéf16 h8slrIáIatát javaslom
II cím,' Ielras és a kép meqjelenltésére. HasznMhatnáot I GfidView y8lérl6t is, de
a GridView v!zszintesen roodezi el az ad8ltomls OSlIaJIa"ot, rniQ • OetailsView 1ii1jllÓ·
legesen. anll 8 képemy61efÜ1et jobb kihasmálá$át jelenti.

II femi ll'pések elvfgrese ut:lllllézziik meg az okblt,. böngész6nkben. A .!420, ~br!in


l!ith:njuk, hogy.. n feSl a Phot"Det ... il ..... Gp" oIWI, amim II Blue Hills cimll fényképet
;eleniti megJlSun fmykl'palburrnb6l.

-
-_..._
_
r*
....... r -
..... ,
.............. _, - _.. .,.. ..,""'.'"
~

24.2O,6brI
"Blue lIil/$ cimü..",. ,,,,/a,,,lm nlw=<i /(",0%6 cr,.. h I"'-'m

Megjegyzések lrásának leIlet6vé téte~


a bejolentkezett felh"""áI6k számára

Amikor eg)' bejelentkezett felhas7.Ilál6 megtekint egy adon képet. megjegyzés! is kell
tudnia imi hozz:!. II megjegyzések w,rtalmawk a ~rgy:ll. a szöveg 1ör7~, yalamint
a megteg)'zh létrehoz:!siínak <ütum~1 és idejét. Ezen kívül a megjegyzés kapcsolódik
a 1l1rehozó f{'1Il3SZJl~16hoz és az adon képhez is. II megjegyzést lró felhaszn~l6nak
lehetősége kosz egy ASP:>-'ET oklalO1l keresztill mC)Y'dni mind a megjegy2h t:lrg}':\l,
mind annak szövegét. de a megtegyZb <üturrnnak és ide;ének. v:tlamint,. U.erID és
PicturelO éTt"'keknek a be1l1ít:\sa progr:lrnb6l fog történni. nagyQn hasonlóan ahho7..
ahogy egy új kép felvéteJénl'J történik a PhotoAdminlOef"ult .""px oldalon.
I
UJ V. " • w.bII:l\Aólbllll'" ti IZ ASP.NET lIfÍI~i'"

IúlJróbg .. be;elenlkezen fclh;uznj\6k lIt\3lro.k ~ ezbt cl&zór is


\-egyank fcl egy l.ogin\-,ew \~ ..t unbll rek~ [)o:bils\'jn,- aU I-ú egy nb1clen
fe!~ló IjIOlPIJ'I mo:g <Itoldalt... ltkor;elenluOk mo:g <It Only 1(l99<!td in .... en can
luv. ~t. (Csak bqelentke:ttn felhaszN:1Ok 1rh:.llrl2k ~et) n_et
!.'I egy hi\"~tkOÚ5l .. beIépIet6 old:.dra Iljuk be en at üzenetct ";It Anonyn~'T"mpbte
sablonoo. 6; a beje!CTltkezái hh'll-tkozhhoz \'egyQnk fel egy Log,nSt:lrus l'ezbl6t,

Et u~n az oldalhoz kell adnunk egy SqlJ>~taSource \'('zér\6I:, amely kln)'eri n adatb;idr
ból " megteklntetl képhez tanoző me~ket, 6;lehel&égel biztosít öl megjegy-
zések Ix,íris.:ln. Ezt n SqII>~uSo.u,;e \'t'zt'rl6t .. LogInVlnv~vkl6n kM11 hd)'('u!lk d,
mi\'d .. ,,~et lJlIJId a nb1elen. mind po:dtg .. fclha,m:lJói ~'('l bqelcntke:ttn
fdtw:mi1Ok megtekinthetik, Al SqlI):ilUSomtt \'eztrl6 lOrubjdonsJ.gjl\3k adjuk
.. ,< r,t aOootaSour,., o!T1ék<'l, H ~llil$o.lk be úgy .. ~'('Zér\6I:, hog}' \Ii:s.9;a:IdP
II C~.12bb ~....,Iop1I- ~tID. U..rld., Pictur~Io, SUb1ect. 8Qdy és
cl ,t*<leOn. A Pietur.WoWopn \'~"!Ink fe!~' szúrőlufe,ezkt, hogy cs;,k
:oz:adon ktpk-z I:lJtOZÓ ~ket ka ... k \~ (lbd .. 2·119 "br.il), "'" \'1O"Ünk
fd egy Clf'DIt/I.!IY dr3d.'kot, hogy n ~)-d: ~ .. C-"~ mez(!
ab""'n csökkcn6 ~ tOrt<:nten l\:I.Ulllt!Unk az Adv.lnccd gomoo..!.'I IcIpcIOljuk
be a Gcncr-~te NSERT. UPDATE. and DEl.t.lE SC3temems jelöl6négyzetet_ \"tgüll'1l~nk
fortis nézet!'(', & i3'101ilSUk el ~ u •• rID rNSER't p:!.raméleréb61 II Type. "DI;>1ect"
tJdllitbl.

Ez u~n \'egyunk fel egy Dt.'IlIils\'lew I'('Zl'rI6t .. LoggedlnTempl31e sal.llorili:l. l D


lub~girl2k adiuk a dvAddC _nt &léket, 61 ~r:;itsuk II eoatentaDe.USource
l'('ttti6höz. \'égeUllk d az ÚI ~k bc:írNr:t W)lgi16 felület leSlresz::il.>1s:.it
a kÖ\·eUr.ezó Itptsek \'tgr<"h;IP.-.j\"al,

l . A [)o:bilsVjew okos cimkéj8Jen kapaoliUk be n Ernible lmening


~et.
2. K:aUIOl5Unk az Edo FK"ids hinl!o;ozhrao, b a Fields p;j~bbkban ~\-oIí~k
el a D nUD, a ua~rld. a PlctunlD & a C~t""deOn BoundYoekl
mezőket.
3. A Properties abbkoon illil5l.lk ~ 1k13ils\'ev.' DÍ8playMode rubjdons:ig:il
Inant módra
4. Vi:l&:llérve a Field5 pi,bentd:.lbl~kb:l. 3 "'ew, Insert, Cance! par.mcsn>ezó
lnsenText lulajdon!hlg:i~l adjuk mes az Add a N..... C.-nt fÚl nlegiegyú5
howadása) szö\·e8<-'. ~ 1000ljtlk a <.:aneeU'ext tu!ajdons;lg o!T1.ékél
S. Annak btzt05Í\ás:ir:t, hogy a feUI:lsw.11ó mindenkq,pen megadJa a ~r8y::1I !.'I
II ~eget, abki...... k a Subject ~ a Body BoundF!dd mezlok .... Templ:neYodd
mez.6ltké, ts ~"Cg)ilnk fd cg)'-<gy RequtredYleld\'alkbtor.'t'Zérlót a TempbleFoeId
mez6k lnsen.ltemTempbte sablo::onphoz.
6. ÁUitsuk a Body S3b1orunez6Te-xl8ox.~ TelttKode lubfdonsipl
MultiLi ... értékre,
z.... . ......
~ ~.~
,h
'" .. n... O" ' ._ .
""'l1'l'I

Ezzel" Dcui15\~ICW''nM6 f~16i fclilletél bdUlloouk a me~ drgyinak é:s


~<egmek bentdé'e, MirCSIk az \"3n Idln, nogy progr;imból bdllítsuk a Untld,
a PicturelD és a C_ntli<l<kOn btl'keh1. nUe\6I:\ dküldenálk n INSIlltT UU.~il:is1
al; ad:IlJ,á>;i5Iuk, Ahogya felügyeleti oI,l:Jlon I~uuk. a Det,ubl/Ie" vezéfl6 It_Inaen,
lnll e;eménye k~edcnul:.IZ INSEN:'!' uw5ltill kiadjs;j el6n indul d. és ennek:.ll. ese-
rnblplCk az c:semmrkczoe1c5je progr;imbOl be<\lIilh:lIj:o az INSERT uusiÚ5b:m tl:olsznih
&tékcket_

A 7. lecka.ro l.ittuk. hogyan hozhatók I"'"" eseménykczel6k a Visual Web Qe\'C!'


loperben; egyg..,racn kl~laszljuk a ,,,ürl6t a fombk6d rész m.t oI<bUlenylló
li5I~j;ib61. maid :oz eser"ll6lyt a jobb oId:alib6/ SajrlO$"'2 a m6dS2cr nem h;isvl~lh:1t6,
amikor egy mhik ,~Z!rI6be ~"'ezi,r\l'lkkd dolgozunk, mi,'d a bal okWi
1my\J6liscllxln CI;;Ik nem bdg,"UOIl ,..,drl6k ~lnd<_ Bdigyawu Vfi:trl4nek
uobl a ,'czM6k.., ne\'cUOk, amelyrk~' mhik vcztrl6 ~b,m 1211Uu.r6k.
A Photoo..tdh .Up" okblon a dvAddC_t Details\~1CW veztrl(i, amdynd<
It_lnaertlng esemtnytnellttre kelj hoznunk egy esemmykezd6c. a LoglnV,cw
vezérlóbe \":In bdigy;tZV'..

BeligyaZOIl vezérl6khöz a kövelkcz6ll'pésck "é8reh~júsival ho;d,~lunk létre


esemmykezel6kel;

I. T.....-e~ nhe!ben ,eIOIjilk ki" vez&l6t. amelyhez ~mtrl)"kezd6l; .~runk


létrehomi, El jeim esc!ben a dv~nt DetllilsV_ .-elbió,
2. A Propc:nlC:5 abbkb.1n ~ltU1l5Unk a .·,l1imol jlrlzoló ikonr::l. arroely rneme1eniti
,,\'t'zérl6 t'M:mmyeit (1:bd" 2121 ~bril)_
3. Il']Uk be az eseménykezel6 nevét ~hhoz al ~n)"hez. amelyikhez a keze\6t
lé1re akal')uk hoznI. Ez bármilyen m-6'lYes fUlIS"m~ lehe!

,_,_,_o"r •

-
.tl1.


..!...
~

.. w=u ' . . . . . . ....• ......... 1


••

24,21. MIn
~ ,,,,.'>1&IIo'otk /I I'>qltt'ies ub4>k ,...,1$1111..:1 hozlwuNlr Iirtr --m,I,w..&u
MIlItin eh'~nük eZt'k~ a ~pbcktt, azokbl rorDslWd ,ész!bt; egy e$emlill}"kezd6
kt"l'OJ. de IWnyzik beI6Ie a Handl.,. Vf'z~c16ID.Event ulaSíth. 2me11yd akkO!" t:lUJ-
konunk. ~rrukOf lenyfl6li"-'iva! honunk létre C!SC'nényke7.eJ(,(. L:ltha1luk a kOlönbségct.
h:allll'"gl'lt':ailk II felügyeleti oldalon !év~ dVCateoorl •• lnaect Deu!lsViCw
Itc_I"""rting ek'fllényk~,
Protected SUb dvCu..."cl.UI\.I",rt_Ite.,n.en n!l(ByVal ."""''''r .... Jl)J.-ct •
.. ByV"l " .... $y1 .. ~_Web.UI.l>!ebControh.o.t.lb ... i~In . . rtEV.nt""'-II'
.. &aDd1 •• d~~-vorl •• laaert.I~~D •• rtlA8

~~

AmikOf n It . . ln. eti"!l eseményke~16t adjuk a ""AddC~t IleIailsV..,..,.


vczbl(,höz. a 1I,,1ld1 •• ul2Síl~S nem szerepel

Protected Sub dv .... ddC~nt_It~In.ertlnq(JyV~l .ender A. ObJBet,


.. llyVal e AJ ílYn ... W•. b.UI .WeDControl •. O'uU.vi .... ln ... rtEv.ntArg.1

Ahogy II 7. fqeW.ben .."mlitcUilk. II H.!mdl •• UUs.itls az. ami Ö6SZcl<:apcsolp egy adon
,..,ztrl6 ac:mtnyl:!: egy adon csem&1ykezel&.-d Talin nem eg}'éYtelrmla wmunlu:a.
IlO8}':I; dvAddCa.aenu_It-.Inseetin; eseménykez.-16 hog)"1In kapcsolódik
:a dvAd<!COIllI!I@ntl vez&l6 lt .... ln.ectin!l e""rn~n}·~hel'.. Amikor 2 I'ropertl~ ablak
segítségével vcszünk fel egy esem~nykczeh'51, akkor n ",;.,.ml,nY:l; Jelró HTML rés7.en
keresztül kapoolódik ~ ~ürl6höz_ Az okbl fom1s ,.,.;zaébefl 1.1,1\:116, hogy
2 Det:.lils\~.ew k6dp mt'g'olhozik.. és mo5l mir t:lrulmaz egy Onlt-.tn.eert
ing-. ·dvAddC-=-- <It. _It~n.ert.\ng · JCI~
<••",0.•• 11 VI .... I ,·ctv~t· run.tt ' ·'·erver·
oalt~D •• rtlao··~AddCa...Dt_It~A8.rtlao·
•>

Ez a jdlenu.6 k:apcsol", :a , ....ziiriö: a;cménytt az eseml"fl}-kezeI6höz. Álulll1O.5abb fon-nija


a kO\...u..ezlC"l:

AllteD>lnurtlng esenlénykezelőnek progr.tmb61 ken bcilJít:lni"" C _ n u ~blloo


beszUrandó u.erID. Pict\J~eIl) ts cormoentMadeon &tékeket. mIhez a kövctkezt"l
h~rom SOft kdll~lnunk-

•• v.t .... (·U .eld", • KellDershlp ..... tl;_lf() .Provi~rll.eelley


•• v.tuu ( • P'\cturell" I • l1equ"". auerySt ring 1 "ID' ,
•. Valu".1 ·c_ntM.l<1.on·, .. Dot«TI_._
Az első k6d5or a Userld l'ttéket az adoll feJhasz.n5JÓ ueerld értékére 51litja, a m~SO(lik
sor az aW!105Íló érll'kl1 a JekérdeZ<') kar.l.kterl~ncban a PictureiD értékre állítja,
al utolsó so.- jX'dig aZ aktujlis cUtumrn és időre állit ja a C<lfNIIentMadeOn mező!.

Miután beínuk eZl a ""hány somy; kódol aZ esrnJénykezel&e, vegyünk fel egy új meg-
jegyzés! ,,,,Jamelyik képhez. I-b névtelen feU=n..116k6u tekintjük meg:l képet, egy Gre-
netel. fogunk látn!. amely a1.l rnondj:l. hogy be keU jelentkeVlünk. Bejelentkezve két
5ZÖI-'egmew.; kell IJlnunk a lárgy és a wweg sz..'im1irn. Iryunk be nlOSl egy mo:."gjegyzi:sI.
Még nem ktszik1.tilk cl a megjegyzések megjelenítésére ~g1ló fclha"znill6i fetulete!,
ezéTt nem fogjuk IJtn; a megjeg;"Z6I: a weboldalon, de ha a Visual Web De\"elopeTben
lekmljOk meg a Carmetlta tibla tanalrná!. lálnunk kell a beírt megjegyzést

Ha az Implicit <:QnverBion t .."", d<!t .. type "'11_v ... ri ... nt to uniQ\le-


identitier ia not ... llowed. Uue the CONVERT function to run thi.
query (A rijten átlIIakítás III s~_variant " oo~jdentmer adanfpusok közön IlItm
~tl A lekéfdellls I CONVERT függvény haszn6latávallunatható) kivételt
kapjuk, amikor megpróbálunk beImi egy új megjugylést, akkor eIIenÓriZZiik, hogy
eltávolítottuk·, , Type~ • Obj eet' beáll~ást I co.nnentllOlltaSourc" SqIOata·
Sourca vellln6 Userld INSER1'll8famélBréból.

Megjegyzések megjelenftése
MOSl, hogy elkészült a tneg)egyz6;ek hOll,á.a~rn srotgáló felhasmáJói feHlle\, m""'l
aZ okl:llrúl mir csak a meglh'6 megjegyz6;ek megjelenítését kelJ megoldani.
A megfelelő megjcgjlttsek megje1enfléséhez mindö5sze egy GridView vezén6re
lesz szükségünk. ~meljlet II COttment8o...t ... Sourcl! vezl!riőhóz ~rsitunk Mivel mind
3 névtck-n, mind a tJejo:lemkezeu felh2Sznál6k megtekinthetik 3 képekhez t;trtozó
ffiCSJ<.""8YZé-sek(1, ~ Grid\1ew ,"ezérl<'íl a LoginView" \'ezérl6 abu helyezzük el.

24.22. . .
it Hphn tamw5 ",..~ ar oklal aljá" látha/6lo
634 Iv. ráz· WIIbn fot6eb.mliMD" TIIlASP.NfT ~bal

ÁlIíLSUk be a GndVlcw "ezérlŐl ugy, hogy timogassa a l.apoúst és a rcnde7b1, maid


tivolítsuk el minden mez6jét a Subj ect:, a Body ts a c_ntMadeOn BoundField
mezők kiv(:tel~\"el. Végill "{;gezzOk el II c .-ntHadeOn Boundl'"leld lestreSZ:I~l, és
a He" derr..xt lulajdonsiginak adjuk II Date értéket. A 24.22, ~bdn az" ká
mcgjegyzé5lálllaI6. a"lely JlSun fénykép:l.loo~nak Blue Hills képéhez tattozik.

A webhely szertezetének felépftése és


a navigáci6 megval6sftása
Webe:!; fényk~bom-alk:llmaz1sunk utols6l~ II webheI)1&kl-p 1éuehozás:t Ahogy
II 19, 1eck8>en már Voll rób SZÓ. a webhely Sler1<cl~1c egy u'l!blwl)tbWpsegitsl.gh-el
hatirozhalÓ meg, ami egy st;)tiku.s XML fomcltumú fijl. Ez a megközelítés jól működik
al. olyan webhelyelc esetében, amelyeknek a s<:mezete előre meghat:!.rozott, a dinami-
kus webhelyek ~ azonban a szerkezet wltOl(ékony;tbb, A fénykq,:.loom-alkalma-
z1s $Zerkezete például !öbb stnikus oIdll\ is tlnalmaz _ a kezd6oldah. a bo*ptet6 010011.
a fdOgyde1:i oldalt .!lb. - de tlmal,""z néhány dinamikus okbh is: ilyen I*ldiuJ :lZ egyes
felhasználók fényllépalooma ""gy aJ. egy ado« kl-phez urtozó ~k oId:1la.

A:L oIy:m dinamikus webhelyek """ében, anuJyen a miénk is. 3 webhelytérkép műk/:>.
dbe (eslreszabható egy "ID"''; ,,'I!bI1l'I)16rlJlp-!:ZGIjjáltatOC-al. Sajnos ennek a ttm.'inak
" b6\Iebb kifejtése lúlmutat könyvünk kemein, eún ~>gy viszonyug egyszenT. st:ltikus
webllel)~rkl-pct fogunk létrehozni, oIy:al. ami nem tlnalman:t a felha5Wlófúgg6
aJoomolau a ké'peket. Ha '":Iukil érdekel. hogy miként hozhat61ttre dinamikus
webhd)1bkép egy egyéni webhel)1~szoIg1haI61l2SZ!liJa(j",,1. az elo!v:l5h3tp
E.wmlllü'8 ASPNI;T 2.0's Sik! Nlll'igalfOll dma cikkemct a http : //aspne t. 4guy. -
f roaoro ll a . cOla/art i clea/UH O~ - l . n J»< intemeldmen.

A fényképaloom·alkalmalJs " 'ebhclytérképe cl~g kicsi; o;ak 5 bejegyzéS! tartalnuz:

• flome(Kezd60ld:lJ) - A webhely kczd60kbla. 3 Def .. ul t. .. spx.


• Phoro Album Adminislrmicm (Frnykép:l.loom keU'l~) - A f6 ftnyképaJbum-
felügyeleti oldal. a pno t o.>.dnti n/ Defa ul t . "spx.
• M,masc Gategorles (Kalegóri~k kezelése) - A kaleg6ri~k kezelésl're swlgá16
oldal,3 Pho t oJ\dmi niMan .. qa'u "IIo ri es . npx.
• C.-cale a n Accomll(Fiók létrehoz!isa) - A fiók 16rchoúsJ,..~ srolg:iló
Cre"te Account ."spx 01001.
• lo8ln (Bejelentkezés) - A wcbhely beléptet6 oldala, 3 Login . np K.

Két oldal la""lflÚnak meghat;\roz:isa dinamikus:m történik 3 lekérdező karakterl!inc


értéke alapjin: ezek a Pho t oAlbum. as px és a Phot oDetai l • . as px. Ezek dinanHkus
Icrmészt'lGk miatl nem uen:pelnek 3 webhelythképen. A webhcl)l~rkép unalma
a 24.4. ~lditxm 11th316.
'"",: ..... ni ...... ·l.f· ....:ocI.i_··.;! e' h
~, .. >tdl4p -t"".·bttP,I,1d' " . ..t.CTO«>!t.~M~Slt_p·'U .. · •• o· ~
.. l'_ .. ~ url.··_Jo"t....,11 .... px . 1 itl".·~ · ~
4, .. aitett...pNodoo \ln"'· IJIhot~,,/Def.,. It .up"·
_ "itl .. ·Photo Aikul Adalnlotration'>
<aotollMol:pllode url • 'ö'ty,toAdaUn/lLonalJ<!Cat..;jorl ...... "M·
_ "ltl•• ·~ Catago.I •• • I~ 6, </al t,,~>
1, <an ..1IapHodoo urb·~It" ..t .... ~.,..\II,lnt ....IlM·
_ ntle.·C.-.... t. an ACCOU"t' ,~
e, <_He!l.>pNo1oJ ur 'Xlln.u!-,w· ~ ltl .. r ·l.<>'1i n· h
9, <II it"w.pNocie~
l/h <1_H_p,.

1\ "~·bhellt~~~ ~ uUn n ut0b6ltpés" "-.:bheIY navigki6s fe!üklbld!


~rehoz.isa. TtrjUnk "1$Sl>I ~ ~Iho~. ~ ,-együnk fe! egy SileJobpPml _"ml6t
1\ 2~ 23.i.br.in 3 login okbl UthőllÖ ~ SIIe.\bpP2lh ~ fel\~de win. Ahog)'látrulljllk
az okbl baj felső s;I~""n. a SIIc.I.bl'P-~~h ~ Il"lOfUóIlÍtVOfI;.lbl jelrniu meg a IDqJUtOtplOll
OIdaJ ab~n.

-e
~ :.te .,::~
-,- 11IeO •

L..gIo "'--

24.23. iIn
v,' U
OId4/. Sik.wapPalll
II .11>"
,edrf6 M....MMw ulA ..

Összefoglalás
Gr:I~ulálunk - az unffil befejf"zt\ik e~ v.ll6di IISP,NET alk:almaz:l~.mk~t! A:t, elmúltldrom
Óf1IIn~,.·ru:i\- w>ll, I&rehonunk egy !öbb okbbs, ~elpen múköddl<fpo webhelyd. afl'K'ty
bpc",ll.u<ll ~ert'mlet:I ~ rncgd6l<Ili ór.fu;a,n 1<InulD.k közön, \bcgc::::<>fik"q a s;lti~
hóotunht. """" meg&demcljOk!

R';lIiItkm. hogy 3 k&l~'V ....ol...~ tlvel'Jele5 ~ t.anulsJogos volt. és hogy teljes mtnékbm
~ t:d3ll"k az IISP~...1!T l:5 ~ \'\5WJ \l'eb [)eo,~1opa n~ 1eM~et.
l\nn;I.k dlení:Te. hogy millWdn)í tmd.róI volt iR6 dIben a 24 6clban.l-pp h08Y esik
636 Iv.r6sr' W. . fot6Ibm I.6ad1ho IlASP.NET~
súro/tuk 3 felszín!. Ál\"l!"UÜk llZ alapVell'llémikal, ek>gend6 mélységig llhho:t. hogy
valódi, hasznos webhelyekell'píthessOnk, ~hogy eZl az elmúli három 6ciban meg is
bpasztaUw.nuk. de mindig m:Ifl1d tanulni és felfedezni V"dI6.

Ahogy fol}1atjuk az ASP.NET h aszn.1l3t:íl. n~ha majd megakadunk egy aoot probléma
megold:\sa sodn, él; nem t:l1~IJuk majd II \"~1aszt ebben II könyvben. Sz~
az ASP.NET kö~ge nagy, tele seg11611m emberekkel.l>1imlen ASI'.f"ET-fejICSZl"6
SI'.:inrlr:l. javaslom II Microsoft ASP.NET-fÓlUmait.. amelyek II ht t p: // (oruma . ~ sp.n"t
dmen trhe"l6k el Ez aZ imemt1es uzcn6fal több mint 200 OOO bejegyzett felhaszruil6v:ll.
és jóval több. mim egymillió bejegyzésscl bUszk~lkedhet. A legmegfelt'l6bb hej)" neh~z
kérdé:!eink fehétdére. vagy arra , JIOS)" .rusoknak segíl5Űnk eró/"<.""SZÍtt'seikh<.'n.

Kö<szönet II könyv eloJvmsáfottl Szívesen fogadok bánnilyen megjegyzést vagy


j:wJslalOt a mitchd HUGUysI'romRol14 le,"ékímen. Wt.>bflllpl6m ( bIogom) pedig
a htq:" IIScottonwriting . NE"!'l ómen tal~lhat6.

Mindenkmek jó programozAst kívánok!

Ehhez az órához nem rarfOV1'1k ismb/ii kérdése/;: ~ gyakorlatok.

Kérdezz-felelek
K: jcümleg a fonyképtllb"m-tllkal mtlzás CSllk jl'EG ktipek fi.1tőltéstt teszt Ic"cj(;u~.
HogJ'rI n bt5tflhl!tjllk 'W tlZ alkalmazást, I/Ogy más fQrmátu",ú képfájlok ls
fi.1tőlthl!t6k lcgJ~lck?
V: Amikor feltöltünk egy képet a:t albumoo.. a ktp fájln""é!; a Pictures t:íbl~oo.
ujonn:m felvelt rekord Pic t u ~erD átéke alapjin hozzuk létre. A Pi ctureID
én.~k haszn:llh:n6 az egyes képek eg)'edi aZOl\QSIt:ísáld, de nem képes a fájl
kitcrjeWé:;[,nek jelöl~re ( . j pg .. g if, . bt!;> stb.).
Ezt 3 probl~flI!it ké"lft1e m6d.0;zerTel oJdh:lljuk meg: ..agy korl~10zzuk al. alkalma-
zist, hogy az csak egyetlen fiiJkil~S1 enge&lyezzen. vagy feh'eszünk egy új
OIez6t II Pi ctures tibl~ba, amel)" tárolja a fcltöl!Ölt kl'p kilerjesz1.éséI:. A mi alkal-
maúsunk az eJ6bbi megközelílést haQfÚlja. de b6víthetjilk a rendszen al. ulóbbi
megoldh h:lszn.1l,wira. ha egy 1NgeExtfilsion o:szlopp,J.[ toldjuk meg
a Pict ur"s llíbl:il. Amikor.a felhaszn116 Feltölt egy ke-pet, az lm4geExte ns i o n
tulajdonságot programból ~ fcltöllÖ(t f1jl kiterjesZlbére k"Il1JJítanunk
a dvPl ct ur e I nsert_ I temlnsert i ng esem~nykezel6ben.
Ez a megközelil/'s egy ujabb kihiv.1.ssal szembesit minke! a képfájlol< GridView
vagy Octails\~ev..· vezl:rl6k lrnageField flIczőiben val6 mt.'8iC1enitC::sekor _ én ezén
.. ál.a!.7;J.ouant a r~jlok JPEG lípu= ,.,.\6
korl~!ol:Ís!i1 ebben az alkalnw.l:Í:iban.
F.rnlékezzilnk vissza. hogy az ImageFieW képfomis lJRL..je a D4t~ I"",geFieldUrl
éso.UI " F ,~:df' ~ ...... tStn.nv tlIl2~gokon ker=(jl oiJlull3t6 be, de
a.;U; q'f ~t'zom.It oszlop ~d1uló meg. o.taIDl&gf'Fi.ldUrll1Jl~~gb3n,
pedi maR keUC:n , .. n SZIJ~nk - kell t'8Y ~ Pi"tur.. lD ~ egy n [..ge-
E:rt=':!ll ~"'.
~ kűlönbt>24 ml><.!s7n 1$ '''n mncli: ~gv:tIÓIIÍtWr:I_Fd,-d>elilnk cgy kinlrnf·
1<* ...d"pol. H,t,,,,_ l:ibbba, amdy aUIQm;lU~n ~Zl ~ PlcturelOés
n - 3"" _1('" (lSzlnpokal. '''gy ~llUk az SqIDauSource veléM
ibll....zllill.:e:tt:T ,.,.M...
hog).' ftluc ÖISQe a két oszIopén(:kct C8IIl-'é
."''''''' D"d· n~onybg bonyolull. AInenn~1bm ,.. ];,kit éJddo;clnek ezek
~ lOSXtl 'iI'k. n II.SP~U-fÓrUmOkOn trdcIl~ SC8J1.sí·get kémi
K; _-I PIloIc>Dtv.. ,b. (O${l'r: o/ddkm SZl'n'f"a, sz('1lope!leml ('K)' hlmllloulsl
a frihdszr>úló fot/t,*,lb.. ",óro 1I00000~m ('(ll6sfllmlorn ''ZI ""'8?
v'. Amikor ~ rdhJ,~.i16 a Photolllbuao. up" Vie.... hi ....Jlkotis.'Ir:t k~nml. ~ Photo-
...... l .• up. ,,10.:.1 .... kerül, ahol rnegtekintllC'l egy adott k,:,p.,t 6. at. ~hl101.
unom "K8It'.lIyzo!-<.eket Jelenleg a ~l6 Vissza gombj;l..... ,..ló kanintason
knill mncs l'I\Ód a~ adou fdhaszn~1ó fmyké-palbu.-.dhoz ,-:dó \'iS.%:II~.
il. Pbc~_:>e' III I •. upx oldal", ~muut6 hiv:ukom mei'.. IósI~:lI~
;.-IOMt luhi,';i<l. IlICt( l51T\Cmunk kell annak ~ feUI:lSZIÚJÓf1:I.k a' ,r:d btekn,
~k a k~>pt!; q,pm megtekint jük. El. Ul Flenti, hogy a Blue IbllJ, kép
megtdllIlt&kor (b5d a 24.20. :;ibo1itl nKlnunk kell, hogy c1.]i.\.un k~. m,vel
ahi."... hug)' vl»Zólt(:rhessilnkJisun 1I1bumJhoz,
a ~t )toAlbUDI, Up,,? IO.JÚJulLUgerIQ.oIrtofke eimre kell \Lgr~nunk
Ml\cI ~ PhotODetai l •. asp" megkaJlia. Olcg;elenílcndll kép PlctllrelO értlokk.
6; 11 Pic-,.r_ L'ibUban minden k(:phe~ unozok egy Uae~ld, sze-reJle!ll'theuynk
11 Un:.d OSXIOPOt n SqU):l1a$oun::e H'drl6ben. Ebben n OCIbm a Oeuils\'iew
,~ fd\"dX'Io.lnk egy HnlerLinkF'oekI ....... ~ é'!I :ll 'l'ext tula~nak
Albulo{\'issza a fm~"kl'palbumhoz} trt&et. D4ra.'1avi
11 !!<ldl. ".0' ~ p l '
qat.u,ll'i.ld" lul2~gin3k a U. . rld. o.t","""viq.. teUrlPonulString
ndajdons;lgjnak rNog 3 phQtoAlbum.aap"?Io. (O) trt&ct ;W/IJtJUk Igy egy
hi\'3tko;cl,;l ~{/unk ~ OeuibVteW vczl'rl6höz. ~mely visszaviszi a felhaszruJót
a mt'gfdel6 ft'nykl'paJbumhoz.
K: A PhOlOI)dal/s asp.r: oklalo" megJelem""fl "",-?,}rgyzésdmél •.em ~ (I .. "ak
/lZ embemek a IKU', aki a megjqD'%ésI Ma HOf!,)'"m !iZ'erepelle/Iw.'le1/J ezt
az adaIOl 6.'
v: A C:.-nt~ Libia nem taltaJInólZZ>l a .......~ ~nak n",&. csak a UaerId
kI&(,,\. A fdh..s~n1I6nl'-.' kin)"~z ~ kelj d ...:gezmlnk
a ConunenlS ts a rendsu-r r~l6inak f1t'\'d tan.all1lólw aspnet_ ' •• ra
Ubl~ kÖZÖlt
A ~bl~~k3pc5Ol.b oIy:m SQJ...Jck(:n:kz~, amely két ""~gy (öbb (~bl1b61
nyer ki ,t'kordo!<at. ~ rekordokat az érinten ~bl:1k köZÖl!i kapcoo/3tok abPiin
ÖSS1.ekapaol\'~ Az OOzekapcsol:1s bonyolult. lellet, de ~ V"""j Wd> ~eloper
legcgyuenbiti ezt. lu ~ lckl'rdabI $:lI~1. kc.nlkg adjuk meg n ~IDat:>.Soun::e
veztrlc'5 .... r.Usl6jtban. E"~C"n adruk moeg al ~k:r.""""",'d",n 1w:zn1lni
ki~nL dbl!k:lt. b jelöljük meg a dblikból viMzaadandó osUopoIGIl. It V_al
W"dl OcVt'loper ~uto"llItikusan bcir)a al ~pc:sol;is helyes k6d~t
lia űgy dömOnk, hogy megvalósltjuk eZ"! a bővítést. 3kkor en egy új Sqlo-~ta­
Sour« veztrl6 h:lS2:n..1lad~&l tegyílk. Telút ne haszn.liltuk II PhotoDetalI . npx
okbl nICgltv6 ,,-..uoo.t... Sout"ce SqU):Il.:aSomCf: \'ez&l6i&, mj\'e! a 1)1.'13;15-
\ "JI."A ezt al adaúOf"Tb.Vt'ztrl6t h.:ann1Jpo:az új ~k hOW3dasi ...
Ehe/yen hozzunk létre o:g)' Ű, SqIO:II.:a~ "aM6I;, :l.Híl5Uk be űgy. 00gY
IGlpoolpo ~ a c.-nt" b:u: aspnat_Olen tibb megfelelO rekordjait,
maid drntsuk ezt a \'ezM61: a ~ GodVoew \·ezb~~z.
TÁRGYMUTATÓ

_None_602 A.Á
&. 117
&- 255 1~nd333
NET kcrecrendlzl'f 4 abbkok 'iselk~ 70
~ET-megfel~6 nydv ]07 AbsoImdy ~~ 68
ToStnng() s81: abszolUt clhdyezb 68
.Page j i Ac'cess Ruleo <191
<asp:W;tJtem> 258 actIOn 199.201
<2$p,Pal1lmetcp 540 Active SerVef Pap I. 6
<authentic:otion> 50s adn~zis 296
<authorizatJon> 493 ad:llb~zis IftR'oozj5;l 302
<form run,n-"5et\'er"> 81, 204 ad:Ilb:.1.tiS-<li.>.g"IIook 553
<form> 83. ]96. 199 ad:llb:izi.s-ke~k 296
<f~"" ::ubtb:1liSffiOlOr 4
<inpullype-"SUbrrut"> 92 :.d>tb:1~k m
<.mpull}~"le:u"> 92 aWlb1zi.s-s=i<eut 547
<Jnpul> 196. 197 Jtblb:1llstlbl~k létreoozht 304
<nuilSerting:P 494 ad.;nbhisllbb-sz.erk~zt6 3o-l
<Sek..:tParJrlleters> MO 3dnbhlS-le,vezb 306
<$Ílel>b p> 464 adatfOl'T1l; kiv11:l5W52 ~7. ·ilO
<5IteM3p:-l<Kk> ·164 3(btfClfl1is-veztrit'S 318
<.sp;In> 92. 180. -126 adatbpcsolh 394. ~. 447
<1:1,*> 32 adawpcsobt k,..;llaSll"sa 320
<textllrea> 234 ad:nkapcsobtok SS3
awtkapool6 kifejeZés m Arts"·Cf ·m
awtlisl3 :H6 AnswerLoibeITextl'n
awt~M .';QL-uusídwk 375, App_Data 17,30.57.302
37/ Appeal"3.no: 3S4
adatok be:sror.l!o.l 399 AppendOataBoundJtems 604
adatok hmz.:bdha .'109 Appliation ConfIgUralion ~93
adatok Ick~ 296
adatok It"Il'FlffiilOe :H6. 349
adatok szerkcsztoi!'se 3~. 31:10
,se,
ApplyFormatlnEd.tModoe 390

ASp.:-'TI ConfIgUration 4H5


adatok wl~ 335. 118 ASP.NET Development Wdl Sn\.-er 9.
adatok lörlkor' .~79 59
~dmipu~ 97. ]06. liO ASP,NET Web Site 57, .'>02
adallipus ellen6rzbe 263 ASP,NET webold:l.l 61
adatv~é5 ] 23 ...1,sP,NET Website Admlnismltion
Add a~' Tabl<::>,()4 Tool 485
Add EXiSUng Ilem 64 ASP,!\'ET~}~k -17
Add II<!rn <Ki2 ASP'TI"mollOr U
Add '\ew Di.1.3f1Im 553 aspnet_Mernbersh.pl87, s48
Add New hem 302 ~Roles49]
Add ORDER BY Cl~use 338 aspnct....User1l487.S48
Add U'HERE Clau~ 336. 418 aspllt1....UserslnRoles 491
Admin~ntor 490 ASPl'.'TI"DB 486. 5501. 576
Am.,.nce(\ SQL ~Iion options ~Ihelrezés 64
~uri:n)iIÓ ürbpok 201
'"
Af!"ectC'dRows 40.~
aktujlis aom6pont·168
.itnevezés 6-l
Anributes 2-t6
:dJ.húzisjel ] 10 '1U1Ó4:4
allids IM AUla !'ormal 353. 358, 470
alapénelmezeu tsem&ty 101 AUloG~r:lleColumns 351
alapértelme1.<.1l kon:;lroktor 162 AUloGenernleP~.ssw(lfd 498
alap&tdme1.t1l ~ndczá 368 auto-incren""m 30 l
aLapénelrnc:zett urulom 530 aut~tikus form:lús 3SB
;ilkód -46 autom:mkus helyrd.llít.b 66
;l/bnd697 aut~hkus ~moúsj(l l . 3lJ1
AlIOW ""ulIs 30S
AlIowPagJng
almenük -176
360..~ ,....
aUlomatokw: ~TrK>l<UÚ 05zlop

",utomaukus vi.ss7xsalolis -I 15. 419


;11taJ~nos csomópont 469 aut0fIl3Ukusan elrejtett ablakok 70
AllemattngllemTemplate 392 AutoYOSIBack 4 15. 419
AltermlttngMowSlyle 355 Av:ailable Adós ·~39
Amaron.rom ~37 azonosíw 306
And U3.332 ,.zorlO5Íló 82. 300
Anonymous Templ,ue 506 azon<Jl>Íló ",datoki84
Anon}"TTlOU5Ttm!)late 573
T~I 641

b(r.j16 tipusll.Ol1akiUs lU
B 8/U9o'.o;e 605
but:lod-k 474
&ekColor 161. 354 BuUet«llist 475
backgroond<Vlor 184 Buuon 48, 83. 86. 206
&ck[nugelTrl354 BuuonFoeId 3';6. 433
be:igrnOll veztrl6 631 Bu[[on~ 362. 400
bdllrt6f:\iI61 OrRef H8
Bt:havlor 503 BrVal H8
bqclentkezé5 483. 501
beio:lentkelési 0Id1[ 50 I C. Cs
bridentke~etl fe1h~16 507
bqeIÖh i<~k 2s4 C.I05
bqelöh "~I:lSZl6somb 251 Droc:rIDe5l'fI.OIlionP3Sli'l'RL 571
bek'pt~ okbl 572 Dtegoric:s 5S4
bd56elem 26 DUSoes\'~li<blion 2119
bemenet jl.Olc!ás;, 3 wd>k~l6ru.k c...UPadding 425
c...1I5pacing ~2S
'"
Ix:menet I.OInom1ny:inak ellen6Iúsc Ctunge Type 329

""
bCmCI"K.1 ..... lIcnfué5 96. 262
bcnll:,"K1-b>'~nresjtC!5 96. 262
ctur 300
CheckDolt 252
Chec kBoxFle-ld 43.'1
b...~uds 296, 37t 3n, m Check&xü,;t 253. 346. 408. ·120. 424
be~r:1s engedél)'erese,WC) Check«l251.254
be=i1Ó mód <lOO Ch<:"oosr 0:11.01 Soorce 347, 410
betöltés -17 ChooIle Loc:mon 58
betlJuptl.'oOk P8 aktus 137
hetllrulapdoruJgok 186 ClkJUstön:< 138
~'lIcli \"mrl6 204 ciklU$\'~It0z6 137
bgcoIOI"I84 cikJus...:í11OZÓ oo.·elése 139
hlnánó miJvelelek 115 cildU$§~eZelek UI
B,nd <IH ctrnktk 84. 496
Bil 4~~ daS$43
blokkdem 26 Cikk 48, 86. 152, 164, 221
blokkszerke~etek UI Close project. 60
B.\IICllcuI3101".a5p>: 206 CodeFile 31
Bod}I~de~ame '500 coerdon 122
Bold ln ColbpselrruogeTooltop 474
BOOIem 113 CoIb.pselmageUrl474
BooIe-félc vjkod:> 113 Column ~:une j()5
8nnIerColor 186. 354 Column Propen~ 30!1. 435
l'Iotdef';tyle 185.354 Columm 218. 224. US. 218
Bon.Iffi\Kkh 166.3S4 ConurumdHeld 382. 432. H3
BoundFoeld 356. 391. 432. 433 Comm:I.ndTelu 163
~l';;5S8
Comp;I(~\';lhdóltor 265. 275. 278 D
ConftgUre 1);11.01 Source 320
Configure s.'om e-mail sel:tmgs 493 D:ua connections 303. 553
ConftgUre ll ... Selé'Cl SUtentell[ 323, ()at:t Type 305
[}.. t:tb:t5e Di:lgr:mlii 553
'"
ConflrmPasswordt.abelText
Connection 163
m D'~l~b:tse Explorer 16,303,309
DJ(aBIr>ding~ 394
Connection Iilring 321 D:u;tl'ormatSlring 357, 362
Conn..'CtionStnng 325 ()at:dmageUrlfield ~l
ContadS 475 ()al:.llmageUrlf'lddStrtng 442
Content 517. 525. 527 1)1t:tKey:-<"ames 351, 384,!HI
ContenlPlacdlolder 516, 518 ()al:.lLisl 346
ContentPlaceHolderlD 526 ()at:t~"Vlg<lICl:rll'iekb HO
ConlUlue 100 ()ata~~~igateUrll'orlmtSlring HO
ContmucBunonText 4'}7 ()aaReader 365
ContmueI:lestm3lionPólge ol95 ()aaSe!. 365
ConlmueDesunalionJ>;tgeUrI 571 ()at:tSour<:e 319
ConuolStyle 619 ()ataSourceID 351
ControtToCompare 278 DJuSourceMode 365
ControlToVaUd.:lte 266 DJuTe:nField «o
Convefl Ihi~ fleld inIo" D:luTCXIf'ormatSlring440
Tcmpl.atefield 392 ()auTypeChed 276
Convef\Em[XyStringToNull391 !>.tU\'íew 608
Create .. ccess rules 491 \):tte 113
Create CU90m Conlent 528. 531 ()ateTIme.Now 174
Creale ol" Matu.ge rOIe$ 'l89 tLilUm &. id(5 175
em.le U5Oe1" 486• .0188 (ÜlIlmtIpuwk 113
CreateU5erBullonText 497 debugger90.97
CreateUserText 503. 572 DdJugging NOI: Ert:tbled 98
CreaLelJ5erUrl572 lkrim:iJ 112
~:lleU~Wlzard 488, 49-4, 49('1, 570 Debull to 1>b9.(T's Cantem 531
Critma ablaktibla 328 Default Valuc or Binding 435
Cfypeű 122 Oefóluh.aspx 17,30
Current Node 468 Debult.:up.,;. J)efólult.aspx.vb 57
CummlNodeStyle 469 Default.asp.,;.\'b 30
CurrenlTime 49 OefaultVóllue 3-40
CurrenIToRool469 Defme Color 182
CuSlomVaJi<b1Or 251 DEL.ETE 3n, 379
csak o/vWt:Itó rnaók 38'9 Ddele me~ t~bUo 382
Deleie Rule 558
""""""'" 468
aomóponItlpu.5Ok 'n DelcteComm:tnd 3n. 381
css Posltiomng 67 DeletelmageUrl383
CssCbss 354 DeleteText 383
"'.,,,..... , 643

DESC 335 EdIt roIe5 491


Design 3] EWt Templ:ltQ 394
Design nézet 18 Edl!ltemTempbte 392
[)esign \r.ew 67 EditRowSlyle 355
De5t,nationPalleUrl502, S03 e#S~mm lOB
DeuilsVIe\\' 346, 359. .~l. 39'), 432 egtsz lipu.sok ] Il
di<lgrolm SS3 egyedi tn~k 300
d ... ~m abbkdbb 328 egyedl WUIOm ~ho~ S28, S31
di3gr.unablak 328 tg}edk:lpoobti di>gram SS3
o.m 109. 114 egy-egy bpcsolat yl8
dinamikus ahnenOk'-79 eg)'énl SQlruWil.i5 vag)' drojt
dinamikus kÖlk 411 .. IJiru 337
dinamikus súgó 71 egyéni webho:lytérkép-.!I101~11;l16
dinamikus wl-!JI\Clyt&lc~p 6}1 634
dirumikus ...·dlokbJ~k 3, S egyidqO' módosiw .m
Dis:obleCrr:otcdUaer SQl egy;nnyú adalk.lpcsolb ,,"7
fM;obleRrmemM\1 .. S02 egyir.1n)'ú kn'ONI 508
()u;appe;orAl'ter <477 eg)'1"Idsb:l igyazotl cimktk D
Dispby 284 ..gyrrWb;a ~gyaZOlt rncsIerokbbk
DisplayRcmembcr."1e 503 536
Do ciklus 140 egységbe fogó ve~6i&i ,g:erkeze\
Do., Loop 137. HO '41
d6h beta 178 egyszeres ~zőjeJ 331
domain rulJ~ 9 ~yez6s m(Ivckt 116
Double 111. 112 egy-U.IbI> kapcsola! 549
oo...Tlkvd 100 ebvul! böng61:6k 190
Dreamll"e:wer 29 dcktronikU5 Jco,'ddc 166. 493
Dropo.:...'TlLi5t Z38. 240. 215. 247. dcmck elreodclbc: <126
346,415 e~bIon 392
Dyn.amic 285 eléTésrn6dc:l<'iiló kulc!6zav~k 153
Dyn:unkEnablC'Oef~ultl'opOutlma8e elfelejtett ;e[szaV"Jk S07
478 elhel)'ewi bd.lli!hok 67
DynamkHorilollulOffSd 47'9 dprishiv15 1>15
DynamicltemfonruolSlrins 478 eljlclsok 1<11. 1'15. 146

.....,.
Dyn:ImicJ'QpOutIIlUg.eT~f()I'm;;J1Su

I)yn;>mid'opOullnugeUrl47'9
ellnJld6 gomb 83. 198. 206
elkn6rtő kif~ 284
ellen6rt.ő ~'«éri6k 262. :z6oi
DyrumkVerticalOOSCI 47'9 ellentetI 116
elrendeús 521
U elrende~j tul~jdoos:18
Eb< '34
<l2S

!;dll Columru 356 Ebe!f 13'>


Edit D2t1Bmdings .Wol. 4SO e~116
Edit I[ems 409 el5ódleges kulc5 300. 306
els6dleg~ kulcs oulopok 548 ~n)'paramétcrek 164
elv:1!3snó ka ... kterek 25 eseményve~érelt progr.:"noz;;'is 44
Email 497 esn~ikai tulajdonság 231, 252. 284
e-m~il 166 eukJidl.'Szi algontmll$135
EmailL:lbcITeX! 497 Ev:ll 453
EmailRequi,..,dErrorM=gc 497 EventArgS 152, 164
emll'k.... z6 weI>es lIrlapok 208 EwnlS 475
emll'kenro"í kl'!'dés 488 uecule SQL 329
Empfy Woo Site 57 ExecuteR<--aderO 163
EmptyDataRowStyle J55 Exp;!ndlmageToohip 474
EmplyDataTexr 354. 445, 578 ExpandlmagcUrI 474
Enahle AutoPosrB:K:k 41 S
Eoahlc Dcleung 382 F
Eoable Editing 385
Enahle lmerting m fa 0171
Enable Paging 359. 364 fa szintjei 473
Enable roles 489 f~ilkiterjesztés 8
Enable SorImg 367 faktoriilis faggvény 15S
Ernlbled 243 False 113
End Function 149 fanl'zct 461, 471
End Sub 145 fcjlécten11el 520, 521
End Templ:lle Editing 394 fejl&:.sahlon 392
EndRcoordlndex 366 fejlécsor 349
End5WithO 6 13 fejleszt6kÖOlyezet ablakai 70
Environment 66 fejletlen böng6z6k 180
ER diagf"Jm 553 fejlett böngl'sz6 179
e~ny rendezése 333 feUusznilói adatok összeg)'íIjté>e
ere<\ményablak 328 196
er&cn típusos III felh;LSZn:í.lói felület 79. 80, ')60
ErrorM=ge 20 felhasználói fiók 483, 545, 569
érték loe felluszn116i fiókok létrehoZl1sa 488,
l'rt<'k szerimi :ítadis 148
értékadis 109, 115
4"
felhasznl16k osrulroZl1sa 489
l'rtl'kadó mlIvekt 119 felhasmiil6név 484
értékadó mlIvelctek rövid fomdp felsll korl~l 278
119,120 feltéleles szerkezetek 131
értékadó utaSlw 109 fclt(1el<~'1 uta~t!i,o;ok ös&zeklpcsoUsa
l'rtékck kioh'askl 87 133
l'nl'ktanom:íny Ui4, 280 felt~elr:ks 328
i'r\'l'n}1elen benIent!l 269 feltúzÖlt abl3kok 70
t:rvl'nytelen ~-:\hozónev 110 felügyeleli oldal sao
es<>ml'ny 44.158. 164 fé'nyké'palbum 544
cseménykezel<"ik 44, 47, ISI, 164 féreg II
cseml-nykczcl6k l~rehoása 160 Field5 353, 433
T~ I 645

File,Delet., 619 GridView te51reszabása 352


FileUpload 60s GridViewDeleteEvemArgs 404
fIókok 484 GridViewUpdatedEventArgs 403
fIzikai d"rési úl 610 GroupNarne 250
!'IQW 425 gyeng&1lipUSO/l 110
fó tenilet 520, 523 gyermekcsom6ponl 471
Font 177. 186,354 gyökércsom6pont 468. 472
Fon~~ and CoIOf'S 66 gyökérköo)'VÚr SS
FOOIerSty!c 355 gyöl<bmes!erol<bJ 536
FOOIer'Templale 392
l'or137 H
For "Next 137
ForeCoIor 181, 182. 354 ~landles 152, 16S
Forelgn Key Relatlooships 555, 5SS h~s7.l\1lati esel 543. 545
fo...ruturnldr6 357 tdu<'ntin ISI. 184
formiz:1s 353 Header. rooter and Side S21
form.iz:1si IUlajdons:lg 181 HeaderStyle 355
form..1zó kat:lkterl:inc 357 HeaderTemplate ~2
form.iZOlI mez6k 389 HcaderText 351, 357
form..iwu szöveg 176 Height 188, 225
FormView 346 HdpPageText ;04
forr:bk6d 59, 85. 96 hdrenesltő karakterek 444
fomis~ZCI 31 helyen!':';ít6 weboldabk 568
frissítés 296. 374, 3n helyi k"'relrnek 9
frissítés; szab::ll)'Ok 387 helytelenül egynúsba. ~8}"ZOlt
FR0,\13Z7, 500 elemek 27
frontPage 29 hi~nyz6 énék 315
Function 149 hiba keresés leillit.1s:o 100
fut.1sidejil hiba 95 hibakereső 90. 97
fŰSl!,'én~'ek 141. 146, 148 hibaOzenet meghatározi:.a 2~
hiperhiv;ukoz1isok 437
G,Gy hitelesltés 485
hitelesítési módszer 486
GenerdJ Node 4cí9 hitdkalirulltOf 79
Gene"lI(' INSERT. UPDATE. and hivalkoz:15i épség 550
DELl!1e 'iUlement5 375 HoverNodcStyle 473
Gl"T 200 hol.Ó.fér\',si;osok 493
G<.1UseT() s82 hozzM"'n,si sz:ob1lyok 491
gomb 48. 197,496 HTM L 24
gomlxípus 382 HTMl Designer 67
Google 534 HTML oI<bJ 60
Gre~te!'l1.,.nl!qual 276 HTML-elemek 24
GrldUnes 354 HTMl..... lhelyeZés ~
Grid\íew 346. 349. 364. 380. 432 HtmlEncode 357. 362
I-fJML-ter... ez6 rM:l<'t 67 íri5i jogo:;ult5ág 611
HThtL-Orlap 83 JSBN 437
hnp:/llocalhoSl 9 IsBodyll!ml 500
IfrrNejlécek 200 ismeretlen én(>k 300. 315
HyperUnk 573 i~médő346
HypcrUnkl'ield 3'>6, 433. 'H? Halic 186
m
l, r Ilemlnsenlng
llems 406. 421
hems tulajdonság 242
[D SO. 82 llemSlyle 357
ID IUlaido=lg 82 ltemTempl:ue 392
idegen kulcs 342 ltemWr:lp 479
idegenkulcs-me8swrfl~s 487, 550,
551.555 J
Identily SpecifJCltion 308
idl.z6jelek 28 ",lIemz6k 28
If 133, 134 jdöll'lnégyzd 197, 2,38, 252
If szerkezetek lj I jclölŐnégyZa·ll$l.:l 406
igen/nem típuSÍI kérdésc:k 239 jcl~1.avak vi5szailJí~53 507
[[S 58 jelszó 484
lm:Jge 36. 442 jelsz6mezők 223, 225
ImageFieid 433. 441, 617 jogok 491
ImageSct 474 JI'EG 610
lmagl:UrI 36
immUlable 109 K
lmpo<!. and Export Se!tifl~ 69
inakth' fc!h.a5znlilói fl6kok 501 kapcsolati karakterU:nc 321,325
infonn~ci6''eSZl6 123 kapcsolatok modellezése ~
ingyenes ao:btlY.lzis-ke:zel6k 297 kapcsolódó aoolbázistábltik <187
INSERT Jn. 378 kapcsoh tJibl:1k 308
INSERT and UPDATE Spedfkalioo ko"",
karakten:ine lOR
""
ln5C'f1 Column 307
[n..en Table SZl
kanklcrlánaípU50k l Lj
katcg6riák 546
INSERT, UPDATE b DELETE kales6riák memé5e 5506
utasit:'isok lé1rehozis:.l375 kanintls 86
InsertCommand 3n kék alihú;clsi64
TnsenRowSfyle 362 kényszerités 122
JnsenTeXl 400 kép adatainak bcszóclsa 598
InsenVi5Ib1e 400 képek fehöltése~, 597
Integer 108, ] 1\ képek rlleSJClenflé5t: 44 l
InteUiSense SO. 88 kl-pck méretei 37
lmf'fIlet Information &'l'Vices 58 képek lörI/!se 619
im .. m~'1t."S kö n)"'esboll 461 képUp 61
I
T*vYnUM6 147

képf~11 feltölIbe 605 legn.alf)vbb közös 0SZI6 235


kereskL'<lclmi ad:lIlY.ius-keU,'lo5k 'l:97 lekérde~ 296
k(:t mt'ző Ofszehasonlíw.a 278 lekérdezés kipróMl1s::> 324
káinin)'Ú ad:ukapa.olás 4-17 lek&dezéslervez6 329
kl:tJ~nyli ~ 367 Iek&dez6 abbk 327
k~tb1rez& m(l\-eletek 115 Iek&dez6 ka ... klerUoc 200, 575
ke~i 1('f\'ezé5 78 !en},161i5tlI 2}8, hO, 401:!
k .. zd6oldal75 lépc.'l6.tetes törlés 552
ki;elemkc~és S04 ldsThanEqual 278
kijelölt csomópont 473 ll:tez6 elem hozzhdls;l 64
kimenet ~ítbe &\ ~n:horo fiiggvény 160
Ie-.'élaom6pont <t7.~
"""..... 81
kIS- é!; Illl~ n Le\~l<;(yles 473
ki5o!bl, ..... gy egyrn16 278 LlKEHi
kíW>l~16okt:.Ii ellen6rz& 271. 274 Unk S03
ki5zo1~lóokbli köd 43 IiSl~elemek 240. 2-15
kllerpztá 8 IiSl~'·ezérl6lt401:!
kivonh 115 11$llI,'e7bI6k dm3nukus fekoll:6e 'lill
kiH)Nt.oI6 algQnlmusok 508 Listüox 2'111
köd kOlőn f~jIb1 helyezése 63 ÜSlltem 408
ködk~16SO lisI.ltem ColJecuon EdIlor 2<112. 40'},
köd~h 164 m
konstan. 97 l.iICr:lI 170, 174
konSlruktorok 160 I.a>d -H, 86
kOm~j bdlüWok 65 I.ocals 99
kOlelez6 mt'z& 263. 267 ""'~ 30
kÖZÖti felhasznil6i felület 516 LogsedlnTemp~te S06. 573
loglkai adau;pu~ l lj
l loglkai elem j()8
logikai műveletek 332
L:obeli9.80. 170. 177. 161, 1116. 188 ~k~,SZCTkezet ·+63
L>beISc}'1e 496 Login.m, !JOl, 503. 512
Ilbléo:tefÜlct 520, 523 LoginImageUrI 5(H
!a1X'~' 363. 364 J.ogmN~me !106
lalX'~s engcd(:lreltse 359 I.ogmSt."Ilus 504. 573
lapoti51 l.'5Cnlények 361 J.oginText 504
lapozó fellIlet 360 LoginUrl505
~pozó KW 360 I.ogin\'oew 506, 513
L:oyoul '\21 LogoIfS04
~zjn lIpuS06 110 LogoutAclion 505
I..e'.. f Node ~73 Logoutlm:ogeUrI 50-1
lebegő alll~kok 70 J.ogOUtP~geUrI SOS
1ebeg6lcir:ls 474 I.ogouIText 504
Iegl<I.'SdJb kö~ tilbbszö<'& 236 Long 112
M N,Ny
Mailnefi"ilion 496. 500 nagyobb ''''gy
egyenlO; 276
MailM=ge 162, 166 nagysjgrend 112
Man.:lge acttSS rulet 49~ lllI'igám 459. 63-1
Ml!n;lge ~ 486. ot89 r'IlI\,glriós!etüld 520. 522
mapp:lk 466 r\3\,glciós \'el.1l!rl6k 467
1JU.r.adé-k 116 Na .. ig:nel!r1 437. 439. 57"
Masler Page 5 18 Na\1galion 467
MaslerPagcf ile 526, 527 oclu.r 300
nuszkol! bemenetJ '..,zérlók 234 negllh 116
maszkoll szövegme!6 233 nem ~'8l'sz
szinuípusok IIZ
Maximum\'alue 281 nem m6d0sitl1:ltÓ 109
"""",,gm ZlO nem rin bern<:1>eI 95
megen'lsil~ k{,fó (j~enrI 402 NIT Frdme....or1< 7 1
/'on keretreodw:r 159
"""""'" 96 n><'lUclen"~ 633
mes,egpbek !lé\1e1en fellu.szn1l6k -+92. 507
megtelenilbl wbtdom,lgok 3S.i New folder 462
Membership s82 New Qut'!)' 327
Menu 461, n l. -" 5. ·In N~ Web Site 56
menO. 46t, ~75. 4n NexIPreviousF;~I.lISl 361
rrteSlerokbl63, ~8L. 504, 5 14. $68 nttelek 303. 576
rneSleroI<bllé!:~hoús.o 518 Nodclndem 47~
~eroI<bJt6I 0rök16 A$P.NET oldal NodeSIyle -i69. 473
525 l'odeU'rap 'P5
mcthod 199 .....oExpandlm:tgel'rl _1'1~
mctódus 4'1 /l;on-AdmmiSlraIOf 190
mező 298. 3-t" 432 Null jOO. 309. 3 15
mez6k szerkesnéM: jSó nul! éflék 391
mez6sz.ima forrn.bJ, 356 flv~ r<::har jOO
Minirnum\'alue 281 ny"h1an 107
minIlI. 282 nyílllípusiubkítás 122
rnrnuelknőrz& 264 n}il\'.tOO6 webhely II
modell 559
mOOOsíth 296 O,Ö
modulok 13l. '41
IDOrZS:IÚlVOIUI460, 467. 5B ~ 113. 152
MSDN 13 ~DataSource 366
MSDN Ubrary 71 objeklum 43.158
Muhiline 218. 223. 224 oo;.,klUmközporIni prosmnozás 43
rnut,,~ 109 oo;.,klumok esemC-n}'ei 164
nnh..-le!: 115 oiJ!ektumok I~ 160
mm-delek 5OrT"Cfldie 116 objekl\unorieru.h ~ H
T~ I &411

ok0i5 cimke ~20 fXlr.lmttcro:k ~t:ldh::l 146


okblszámok j6() p:ar.mM'1erezelt konSlruklOrok 161
oIdalstintű ~yek 48 fXI",mélcro:1.e\\ lekikdezk.HO
okllllérkép 460.16 1. 464 parJnC'lfijl 61
old:lltérkép-szolglltat6 480 parJnC'lrncző ;IIl2
open T~ble Dt.finllton 4,34 P"I"'n<:5Ulasiljsok 3T'
open 1I'<"b ~,te 60 Parent Node 0\72
openlor 115 J~.<$S90'Old 218. 2lb

OJ>="lor rub~g 275 P:>$I;worou.bel'fext ~'J'!

optlmi5ta v~ m P~ssworoJkco'''CI)' ';07


or U3. 332 P~sswordReco\cryT"Xi 'j().j
6r:116l fUggG Ot.Cl1<."1 132 P:>l'/iwordRequi ....'CII!rrorMcs,<;;tge 497
ORDER BY :127•.~U. 361! PalhDire<:1lon 469
ORDER ilY úr.ld(:k hou.a~dkl338 P:>lhSepar:l1or ~69
Orientaoon479.S03 PalhSep:<r:l1orStyle -w9
OSOOP 3'17 pt-kUny oH. 87. ISi!
oszlop be5zUr.>sa 307 pt-ldinyosí~ ír. IW, 161
oszIopwl~tdnruJgok 308. ~35 pblziig); '\Z.1mo16gq) ~
oszt1Ily43.H7,I58 Phc)(oAdmin 569
~ 115.116 Pic'lures 557
össz""dis \ l 5 ''OST 200
ÖS5Zedr6l0Ú$ \/)4 Priv:lle 153
ÖS5zefllzés 117 pmgl'Jmozási modeU 23
l'IM.I:efú16 ma"del II" programozási nyd,' 105. 107
0M;re1=on!,Ú$ l7S Projekt betirú:i 60
ö.sszehasonIit6 dleOOrzéol 264 PropcnlO 36. 70, 353
IIsszelusoohló ma"eIoeIek 116.332 Protected 153
~klIpaoI1s 6.n Pn:nidcrl'serKey 582
~ fdl"'S7.n.:i16 -192 p$2:eudok6d46

p a
P3geE,~ 17 Query Designer 329
Page.I.s\"~lid 272. 2"'.\ Qut'Sl)oo 497
Page~I.o:KI86. 101 . 152. 533 Qut'SI)oouberreXi ·,97
pageloo.",: j6oI. 367
Pagelnde~~ 367 R
P3gel~hangin8 367
P3gCfSculngs 360. 36-1 r.ie< 347
PagcrSt~lc 355 rác:snézct 346
PageS,ze 364 clcsszimú 1U1:l;do.wgok 353
parnmru". j4(), 3n IbdioButton 104. 238, 217. 252
p=lInt!.n ~Ikilli konslrukror 162 lbdioBunonLiSl 248. )46, 4<:8, 420,
P:>r.lmcln l'ropenleS 3P H~
r.tJ2SZÖ8 ikon 70 Jkro,·Oddin.g 384
RangeVahdator 265, 280 Ro--~ 224, 225
Re:r.dOnly 389,..00 Ro..'Sfy1e 355
Recent projects 15,60 RowUpdated 402
Redirect SOS rögzítt'll ~blakok 70
RedirectTologin l'agc 50s rO\'id abk 466
Refo::sh 505 rövid forma 120
Refo::sh schcma _'kS rOvodíten érték:ad6 mO.-elel 120
Regubr Eli;pros.lOn Editor 284
RegubrEli;preMOOIlVahdator 265, 282 S,Sz
~ett.szOldll5 tipudt.Llakiw 124
~en tlpu.d13bkd.s 121 s:.t>ton 57, 37 1. 392
rekord 298 sablonmc:z6 392, 447
rekordok egyed! uoo06lcts:. 306 s.at>toook sZt'"rkes:o:l':se 394
relici6k 342 s.abloooldal5 14
reüci65 adat~1.i5ok ~ 12 s.afoit =tlyolt 166
Remember Me "'atTime: 502 s. ..C!M0610
Remember.\leSeL 503 Se:lrrlt 0nI1nC' Tempbto 57
rendelkez6re ~1!6 meZŐk.jj<) Security 486
Rende<CurrentNodcASLink 469 SELECf 322, 323, 326
rendezk 335, 338. 363. 367 Select aml"lem.icallOfl IYpe 486
rendezk enge<J,,:;Iyczác 367 Select rnaSler page 6l 525
rendezheu5 adotok 367 SelectConun:ind 325,,WI, 377
rendeúi felüle! 368 Seleo:ted 243
rendszergazdik -t89 SeICCtCd Fodds 356
renmzem;n 182 sdccted Node 473
Repe:atColUITlflll 4~. ~26 Sel«tedlnde:xChanged -108. 412
Repe:oll)irectlOfl 425. 427 Selectedltem 246, 421. ~23
Repealer 346 SeJe.ctedRowSty1e 355
RepealLayoul 425 Sel('<;ledV::l.lue 423
Request.Url ToSuingO 192 ~a fri""í tl':se 348
RequestUserHOSIAddreti 192 Serverl>bppath 610
RequuedFte!dVatiWIOI" 265. "lfJ7 set as Startup Page 37
Requm:EIN~ 4')8 Sho.... T:oble 0:11:1. 309, ~36
Results abbkt2bb 328 ShowfJl;JW>dCoIbp6t' 4~
~~zrt346 Sh,,..:fooI:er 354
rt:roub~g 177 ~howHeader 354
Return 149 ShowlJnes 475

_469
Relum only unlque rows 417 SingleU"" 224
Ro'" 489 Sile Map 319
Root Node 467. 46f1, 472 SiteMap[);luSooIU' 319, 471, 475,

ROOI.ToOJm:n1169
RowDdeted 3&4
'"
~ne~pP2th
5.\fI1' 493
460, 467 • .l68, 523
r..... 1151

Sm!pClien! 166 Slrukludlt :adatok !.:Irol.1s:i 296


Sm!pM~il 166 5!ruktudlt lek/!:rdcl6n)·clv 296, 318
Solution Explorer 16 Style Builder 522
!IOI'OS ~h~jl~s 45, 130 Slyles 354
50ITend .BS Sub 145
sorszintú fonn.ilis 3S4 Subject 500
SortExpression j(:IJ submu. 198
sorung ,., S)"Sietn. Web. m.~ 43
~31 •.~36 5ub4I)"OS klfe;ezb 282
5<Jur"ce ntU"l 17 $clmuni mú,deu.-le 11 'j
Sou,.,., v......· 67 szqtélyszín 18S
SQL 296. 318. 326. 3n ~1.eg8)1U~pdon.~gok UH. 252
SQL ablakúbl, .~18 51.egélyv:utags'is 1f!6
SQL ad:uWm howacUsa ;\02 s~kvro<:i:íli5 v~8reh;ojl;i~ Ij(l
SQL Server ·1
SQL Ser\"ef" lOM 1·1 ..,...,..,
sr.emantib 107

SqlCorntmnd 160. 163 szerepek szenntl omJ:l)"Oili 489


SqlDauRcader 164 szt:iepek szeril.esztC.ose-l91
SqIDataSoo,.,., 319. 325 ..H5. 3-:" ~ szerkeszthe!ő r:kso(,te\ .'\8'j
SQL-lek6tle1.<!s ~22 fdOk'! 391
szerkesztő
SW! Debugging 90 nmeszt6 fdOIe! tC"rcnlIt>ha 387
Sun I'age 15 nerke~459
SllI.nRecordlndcx 366 sugarú möd 122
Static 285 ~n tipu5O$ III
SUlicDisplayLevcls 476 SZÚlpgldU 161

.,.
StalicENbleDefaul!l'opOutlmaglf" SWll473
SWlI=i!; 107
SllI.iX:ltemPorm:nSlnng 478 WrnulaJdon:s.1go1c ISI

.,.
$u.tid'upOutlnugeTenPorm:nSuing SU>rd.$ 115
.uövegbuboTt-k 188
StalicPopOulln);jgetTrI H9 szöVegcimke ·19
StaticSubMenu lndenl ·1"79 5ZÖ\'e8ffil'8icJeniI6 vezM6k 170
statiku5 mcnOponlok ..19 sro.-egmew81.197. 2().1. 218. 496
statikus wd.lokt.tl 5. 60 $ZŐ\:egmew ho&sza 228
Slep o..'et 99 $ZÖ\.-egmez6be írtuló br:.t.klCrek 2~
stilusbriIliwok 187 $$~181
5lI1U5fel1emz.ö1c 26 szubruunok 141
SIlluslapf.1jl61 sziIkil<"i tipu~tabkít.á$ 122
.Slnuslapok 184 uúres 336. 415
Stop Debugging 100 S2l1r6ért<!k 336
suict 124 .nűt6kife;ez6.ek 4-11
string 108, 11 3 $ZÜr6rmn",,1eI 336
SUing..Empty H2 szül6csornöporu ·112
SlructurW Que!)' \.ang;:Iuge 296 nOrkc "bbk ·167
törlés engedtfyerese 382
T, Ty tört6i 5UW:ly 558
törltSl enge&lyeUl r:1csM;2e! 382
tibb ad;ltaill~k mqjjelcnrl60e 309 tÖll5zimok 112
l<ibla~datok me/IIClen[ttso! 438 Tree~odeSI}"le Collooion Editor 473
tibl~k 298,.»i Tree\".ew 461, 471, 472. 522
tiWk közönl Dpcsoblok 548 Trut' 113
dbUk oszlopai 299 (ucJornj,n}'05 jdOI& 112
tibb-ö5szckapc$OUs 63' tubjdonsig 36. .w. -18. 158. 162
tJWzal bestini5a ~21 luherl>dll:lgfilgg.'myek 161
tiblázatok 520 -ryp., t\llafdon~g 1:16. 281
T~bl.,,; .»i
\agmS8"~Y 44. ISS U,U"
uogfilggvé-nyek me8hi~';jsa 160
l:Ogs:ig .1&1 un11Ú művelet 116
woh djicl:lok 303 L:~jOO

Ult:""rn 61 uniqucidentiflCl" 549, 579


1::.,tom1nynev 9 n'DATE 377, 379
Idje> 5zmezet 470 lipdateCommand 377
Templatcficld .'191. -(B. Hi UpdatedOn 599
teT\ S42 upl""'ell79
tl.'TVezés 78 űrbp ~lapO hi!clesít~ 485
tervezési eldr:!sok S44 (frbp~Zt.1 346
({'f\'cz631 us(' ~ 543
te,,,ező né<trt 32. 67 Use opumistic roncum:'ncy 375, 398
Test QuC'l')' 321 lJ5Ot'r 15 in ROIe .0\90
le:sIresz:abh,uó ttTÜletek 518 Usn-Agcnt rejl& 1'79
tesuőmegmdclI 196. 204 Usct[O 487
Text Si, 85. 171, 174, 243. lSO, 439 I)serN~me 497
T"nBox 79. 81. 2()4, 218 U~n"l~mel:ibeITe"l 497
TenCh:mg'-'<.I ]64 U~rNameRequiredEm:>rM~ge 497
Textu.~'OO1 5()3 u!asiW 106,326
T=lMode 21& 223, 224 úlvuruol-dv:ilaroó 468
tipw rn. 108, 1~7 ügyfélokbli dlen&'lb 271
tipu.sát:l.lakiÚ$ 121 ügyfélokbH p;lrólnok6d 61
TotIeTenStyle 496 ürrs Ic:!.rólkterUroc H2 ..WI
Toolbox IS, 31, 3-1 O~ ......bhely S7
T<x>Jtip 187
ToUpperO 613 v
többsol'QlS uOvegme7.6 218, 223
többtiblt. SQL-lek~rde~ 342 vilasz!6gomb 197, 204, 238. 247, 2S2
több-több bpaobl 550 vi[:mt6gomblista 408
\ 'ali<btion 268
""""""' 96
I<'!rlés 64, 296. j7<1, jn. j8-í \'ali<bllon Express"'" 184
TO,,,.., ..,, '"
,,
\~hd:.... ~ ', ... .>I.J wet>es rt'nykétyJlhum ~I
\~...t..ti<>nGtoup ~ ,,'cl>e:s k~lmek 6
\:ilI<hti"n",,;mmuy.!)/;ll. ~ ....ebes lln.pok 2O,~
nIi&n ... .!.~ " ...1:.es \"ezérf6k:?9. <18. ff1, no
,-Jiltozó 9" 10':' 'I\'ebgaroa 9, 57
,j,!tozó a..t..nipu .... 97 ",,,bhely helye 57
,.tlluZÓ """t lOtI ,,"d>hely ~h()z;I .... 56
'-Jihozólc ~<bnj(lO.l)'l 110 ,,-ebhcly ..zerkente -ICH
,';dlozók be\-C'n1~ 108 "-ebhdyd< nqny,l.is:o 60
\.\howk clnt.,,~zb;c 109 webhel)"'k $7.crkeze'le ~S9
villozónevck I~ 110 webhdj"lablon S7. S14. 520
v:lIue 95. 243 "f.....bhdrléJi(~ _'19
\'~tueToComparc: 2"6 ,,-ebkiszolglló 6
\';lf".lzsló\~zérl6 '195 "d>okhbk dhd)eL6e 8
varchar 300 Wel ..!!" Admmilotr:uion Tool -ISS
VlIScripl LIO \t'e~ite Admtn_'!!"'tion Tool 580
vqteJen ciklus Hl ...·ebO"rbp 81
,-eleden irlw'> 496 WJIEIlli 32"'..~.il, t~_'I. l79. 'IH
,~ztrlbi :;urkarlck 119 U1IERE zirnk-k .H9
,~ztrl6 kJ,';ib!\l';l;Í$a ~!fl U1IERE ti",do;k hozU:>di.'Q .':0,0
\'(:~trl6k itm&eletOe 188 \tídlh 37, 188, 22S
,'(nu1Ii~ eltItsi úl610 WindowslIclp ·.~S
vl5ib1e 188 Windo",s..hite-!e<;ités 'iS<;
\'isib!e'.t1len1..ogged1n 503. 504. ~ WYStWYG ?'}
\"1.$Wl Basic H. 59, 105 X
\rlSU:l.1 C. 4.'. 5<), 105
\lo;ual Web Devcloper 4, 12
VISU;o! ..,;\.-b lkveLoper 1<$resz:l.b4$:1 X ~ITML28

"
"isszlIcsatolols 9,', 226. 574
vi:;sucsatoló l1rbpok 202
XML 28. 460
XML f~jlok 319
XmlDat:lSOurce 319
V1~>:alérni fntk It?
vizsgált vez"",, mcghatároúsa 268 Z
vOrOs felki:ilwtcl310, 329
úDdék326
w úr6jelek 116, 133

Watch 100
Web form 62, 203
web ho&ing 9, sa
",·eb.conflg 17. :'A), 38. 57. 61. 98,
321, 19,~. 505
W'cb,sltemap -163. '167
webes aduvezérl6k 346

You might also like