Leksione Web
-
Upload
anonymous-rrgvqj -
Category
Documents
-
view
198 -
download
4
description
Transcript of Leksione Web
1
LEKSIONE LEKSIONE
Disiplina/Moduli : Web Programming
Programi i Studimit : Teknologji Informacioni
Forma e Studimit : Me kohe te plote
Kursi III Semestri V Viti Akademik 2014 - 2015
Emri i Pedagogut : M.Sc. Kosta Lili
REPUBLIKA E SHQIPËRISËREPUBLIKA E SHQIPËRISË
UNIVERSITETI ” EQREM ÇABEJ ”UNIVERSITETI ” EQREM ÇABEJ ”
I. HYRJE NE WEB PROGRAMMING
I.1 Evolucioni i Web Programming
Interneti u shfaq ne fund te viteve 1960 si nje eksperiment. Qellimi i tij ishte te krijonte nje
rrjet informacioni te qendrueshem, nje system qe mund ti rezistonte humbjes se sida
kompjuteravepa penduar komunikimin e pjese tjeter te tyre. I motivuar nga skenare te
mundshme shkaterrimi (si sulm berthemor), Depatamenti i Mbrojtjes se SH.B.A. ishte
investuesi i pare.
Interneti i hershem limitohej kryesisht ne institucione arsimore dhe ne sisteme mbrojtjete. Ai
lulezi si nje mjet per bashkpunim akademik, duke mundesuar shkembimin e informacionit
midis kerkuesve ne mbare boten. Ne fillim te viteve 1990, u krijuan modem-at te cilet
mundesonin “lidhjen” ne internet nepermjet linjave telefonike dhe ne kete menyre aksesi i
internetit iu mundesua nje game me te gjere perdoruesish. Ne vitin 1993 u krijua browser-i i
pare HTML (HyperText Markup Language) dhe keshtu filloi revolucioni i internet-it.
I.1.1 HTML dhe Format HTML
Do te ishte e veshtire qe website-t e para te quheshin aplikacione. Perkundrazi, gjenerata e
pare e website-ve ngjante me shume me broshura pasi perbeheshin kryesisht nga faqe statike
HTML te cilat duhej te perditesoheshin manualisht.
Nje faqe klasike HTML eshte pak a shume si nje dokument Word, ajo permban tekst te
formatuar dhe figura qe mund te shfaqet ne kopjuter por nuk mund te beje asgje. Shembulli i
meposhtem shfaq nje dokument te thjeshte HTML i cili permban koken dhe nje rresht teksti:
<html>
<head>
<title>Faqe e Thjeshte</title>
</head>
<body>
<h1>Koka e Faqes</h1>
<p>Kjo eshte nje faqe e thjeshte.</p>
</body>
</html>
2
Nje document HTML ka dy lloje permbajtjeje: tekst dhe etiketat (tags) te cilat i thone
browser-it sit e formatoje teksin. Eshte e thjeshte te dallojme cilat jane etiketat pasi ato
rrethohen nga <>. HTML-ja percakton etiketa per nivele te ndryshme kokash dokumenti,
paragrafe, link-e, tekst bold apo italic, vija horizontale etj. Per shembull teksti <h1>Koka e
Faqes<\h1> i thote browser-it te shfaqe tekstin Koka e Faqes me shkronja me permasa te
medha dhe bold. Figura 1 tregon se si do te shfaqet faqja e shembulit tone ne nje browser.
Figura 1. Nje faqe e thjeshte ne HTML
Versioni 2.0 i HTML prezantoi elementet e pare te web programming nepermjet nje
teknologjie te quajtur forma HTML. Format HTML zgjerojne HTML duke perfshire pertej
etiketave HTML per formatimin e tekstit, etiketa percontrols grafike. Keto controls
perfshijne perberes te zakonshem si lista, textbox-e dhe butona. Me poshte tregohet nje
shembull i nje faqeje web e cila permban controls te formave HTML.
3
<html>
<body>
<form>
<input type="checkbox"> Zgjedhja 1<br>
<input type="checkbox"> Zgjedhja 2<br><br>
<input type="submit" value="OK">
</form>
</body>
</html>
Ne nje forme HTML gjithe controls vendosen midis etiketave <form> dhe </form>.
Shembulli i mesiperm permban dy check box-e (qe perfaqesohen nga etiketat <input
type=”checkbox”>) dhe nje buton (qe perfaqesohet nga etiketa <input
type=”submit”>). Ne nje browser kjo faqe do te dukej si ne Figuren 2.
Figura 2. Nje forme HTML
4
Format HTML u mundesojne programuesve te aplikazioneve web te dizenjojne faqe
standarte per regjistrim te dhenash. Kur perdoruesi klikon butokin OK ne Figuren 2, gjithe te
dhenat ne control-et input (ne rastin tone dy checkbox-et) “ngjiten” se bashku ne nje tekst te
gjate dhe i dergohen server-it (web server). Nga ana e server-it nje aplikacion merr dhe
proceson te dhenat e derguara. Controls qe u krijuan per format HTML vite me pare perbejne
akoma bazen mbi te cilen ndertohen faqet dinamike te ASP.NET. Diferenca eshte ne
aplikacionin qe egzekutohet ne anen e server-it. Ne te shkuaren, kur perdoruesi klikonte nje
buton ne nje faqe, informacioni mund te dergohej me e-mail ne nje adrese te caktuar apo te
dergohej ne nje aplikacion i cili perdorte standartin e komplikuar CGI (Common Gateway
Interface).
I.2 Server-Side dhe Client-Side Programming
I.2.1 Server-Side Programming
Per te kuptuar se pse u krijua ASP.NET, eshte e rendesishme te kuptojme problemet e
tekonogjive te tjera per programimin web. Me standartin CDI i cili ishtei pari qe u krijua,
web server-i duhet te egzekutoje nje instance te re te aplikacionit per cdo kerkese web qe
arrin tek ai. Nese web site eshte popullor, server-i do te mbingarkohet nga qindra kopjet e
vecanta te aplikacionit qe ai egzekuton, duke u bere keshtu viktime e suksesit te vet.
Per tu perballur me kete problem, Microsoft krijoi ISAPI (Internet Server Application
Programming Interface) qe eshte nje model programimi i nivelit te larte. ISAPI e zgjidhi
problemin e performances, por e arriti kete duke rritur kompleksitetin. Edhe pasi
programuesit ne ISAPI te kene pervetesuar gjuhen e veshtire te programimit C++, ata do te
hasen me kompleksitetin e multithreading. Programimi ne ISAPI eshte me te vertete nje bare
mjaft e rende.
ISAPI nuk u zhduk asnjehere me te vertete, Microsoft e perdori ate per te ndertuar platform
programimi te nivelit te larte si ASP dhe ASP.NET. Te dyja keto teknologji u lejojne
programuesve te ndertojne faqe web dinamike pa u shqetesuar per detahet e implementimit
ne nivel te ulet. Per kete arsye te dyja platformat jane mjaft te suksesshme. Platforma
origjinale e ASP u be shume popullore duke afruar pothuajse nje milion programues. Kur u
5
krijua ASP.NET ajo terhoqi akoma edhe me shume interes, duke u perdorur menjehere ne
dhjetra web site komerciale te medha kur akoma ishte ne faze beta.
Megjithese ASP dhe ASP.NET kane te njejten prejardhje, ato jane mjaft te ndryshme. ASP
eshte nje gjuhe e bazuar ne skripte qe kerkon njohuri te thella te HTML dhe nje pune mjaft te
madhe programuese. ASP.NET nga ana tjeter, eshte nje model programimi object oriented i
cili mundeson krijimin e thjeshte te faqeve web aq thjeshte sa ndertimi i nje aplikacioni
Windows.
I.2.2 Cliet-Side Programming
Nderkohe qe per server-side programming u zhvilluan nje mori patformash, nje tipi i ri
programimi po fitonte popullaritet. Programuesit filluan te eksperimentonin me menyra te
ndryshme me te cilat mund te pasuronin faqet web duke shtuar ne to multimedia dha
aplikacione te vogla te ndertuara me JavaScript, DHTML (Dynamic HTML), dhe kod Java.
Teknologjite client-side nuk perfshijne procesim nga ana e server-it, perkundrazi gjithe
aplikacioni dergohet tek broser-i i klientit (perdoruesit), i cili e egzekuton ate lokalisht.
Problemi me i madh me teknologjite client-side programming eshte se ato nuk mbeshteten
nga gjithe browser-at dhe sistemet e shfryezimit. Nje nga arsyet pse aplikacionet web jane
kaq popullore eshte se ato nuk kane nevoje per CD instalimi, download dhe hap ate tjera te
tilla. Perkundrazi, nje aplikacion web mund te perdoret nga cdo kompjuter qe ka akses ne
internet. Por kur programuesit perdorin teknologji client-side, ata ndeshen me disa problem
te gjashme. Pa pritur kompatimbiliteti ne cdo browser behet nje problem i veshtire.
Programuesit jane te detyruar te testojne faqet e tyre ne sisteme shfrytezimi dhe browser-a te
ndryshem, dhe shpeshhere jane te detyruar te shperndajne update per browser-at e
perdoruesve te tyre. E thene ndryshe, modeli client-side skarifikon disa nga avantazhet baze
te aplikacioneve web.
Per kete arsye ASP.NET eshte dizenjuar si nje teknologji server-side, gjithe kodi egzekutohet
tek server-i. Kur perfundon egzekutimi i kodit, perdoruesi merr nje faqe te zakonshme
HTML e cila mund te shfaqet ne cdo browser. Figura 3 ilustron diferencen midis modeleve
server-side dhe client-side.
6
Ja disa nga arsyet per te shmangur programimin client-side:
Izolimi: Kodi cient-side nuk mund te aksesoje nurimet e server-it. Per shembull, per
nje aplikacion client-side nuk egziston menyre e thjeshte per te lexuar nje file apo per
te ndervepruar me nje baze te dhenash te ndodhur ne server.
Siguria: Perdoruesit munden te shikojne kodin client-side, dhe pasi perdorues
keqdashes te kuptojne menyren e funksionimit te aplikacionit, ata munden ta
modifikojne apo te nderhyjne ne te.
Aparate mobile: Vitet e fundit aplikacionet web aksesohen gjithmone e me shume nga
aparate mobile si celulare, PDA, palmtops etj. Keto aparatura kane mundesi te
kufizuara dhe nuk munden te mbeshtesin gjithe funksionalitetet e browser-ave
tradicionale. Keta perdorues munden te perdorin aplikacione te bazuara ne qeb por
nuk mbeshtesin gjithe teknologjite client-side (p.sh. JavaScript).
7
Fig
ura 3. Aplikacione server-side dhe client-side
Ne disa raste, ASP.NET i lejon programuesit te kombinoje server-side me client-side
programming. Per shembull, controls me te mira ASP.NET munden te dedektojne ne menyre
inteligjente karakteristikat e browser-it. Nese ai mbeshtet JavaScript, keto controls do te
kthejne nje faqe web e cila permban JavaScript per nje interface me te pasur. Megjithate,
cilatdo te jene mundesite e browser-it, kodi gjithmone egzekutohet tek serveri.
I.2.3 Problemet e ASP
ASP fitoi me shume popullaritet sec pritej nga Microsoft dhe shume shpejt gjeti vend ne
shume aplikacione te formave dhe rendesive te ndryshme si aplikacione biznesi, web site
8
Aplikacion Server-Side
Egzekutim i
aplikacionit
server-side
Klienti Server-i
Kerkese e nje faqeje web
Pergjigje me nje dokument HTML
Aplikacion Client-Side
Egzekutim i
aplikacionit
client-side
Klienti Server-i
Kerkese e nje faqeje web
Pergjigje me nje dokument HTML
(me aplikacion te perfshire)
komerciale me trafik te larte etj. Meqenese ASP nuk ishte krijuar per kete lloj perdorimi, u
shfaqen nje sere problemesh, disa nga te cilat jane:
Kufizime nga scripts: Aplikacione ASP bazohen ne gjuhen VBScript, e cila ka mjaft
kufizime, duke perfshire performancen e dobet. Per te kapercyer keto problem,
programuesve u duhej te shtonin komponente te zhvilluar vecmas, te cilat shtonin nje
nivel tjeter kompleksiteti. Ne ASP.NET aplikacionet krijohen ne gjuhe modern .NET
dhe jo ne gjuhe bazuar ne script-e.
Mungesa e nje strukture aplikacioni: Kodi ASP shtohet direct ne faqen web se bashku
me kodin HTML. Perzierja e kodit ASP dhe etiketave HTML nuk ka asgje te
perbashket me gjuhet modern object oriented qe perdoren sot. Si rrjedhoje, kodi i nje
forme web eshte e veshtire te riperdoret apo te te modifikohet.
Veshtiresi me konfigurimin: Per te perditesuar nje component te perdorur ne nje
website ASP, shpesh duhet te restart-ohet manualisht server, proces qe nuk eshte
praktik ne live website. Ndryshimi i parametrave te konfigurimit eshte po kaq i
veshtire. Fatmiresisht, ASP.NET pershin nje sere funksionalitetesh qe mundesojne qe
website-t te konfigurohen dhe te perditesohen dinamikisht.
Kufizime mbi gjendjen: Per te siguruar performance optimal, Web-i eshte ndertuar
mbi protokolle qe nuk ruajne gjendjen, qe do te thote se sapo nje faqe dergohet tek
perdoruesi, lidhja me te mbyllet dhe cdo informacion ne nivel perdoruesi humbet.
ASP perfshin nje fuknsionalitet i cili u mundeson programuesve te kapercejne kete
problem. Duke perdorur gjendjen e sesionit (session state), nje aplikacion web
mundet te ruaje informacion te perkohshem ne memorjen e server-it per secilin klient.
Megjithate session state nuk funksionon kur nje website egzekutohet nga disa server-a
te ndryshem. Ne kete skenar nje perdorues mund te aksesoje server-in B nderkohe qe
informacioni mbi te ndodhet ne server-in A. ASP.NET e zgjidh kete problem duke
lejuar qe gjendja te ruhet ne nje process te vecante apo nje database te cilen munden
ta aksesojne gjithe server-at.
ASP.NET zgjidh gjithe keto problem dhe akoma me teper duke perdorur nje model te ri per
faqet web. Ky model bazohet ne nje teknologji te quajtur Platforma .NET.
9
I.3 Platforma .NET
Ne vazhdim to te pershkruhen disa komponente te rendesishem te platforms .NET te cilet do
ten a mundesojne te kuptojme me thjeshte se cfare eshte ajo.
Common Language Runtime (CLR)
Koncepri me i rendesishem i platforms .NET eshte egzistenca dhe funksionaliteti i .NET
Common Runtime Language (CLR). Eshte nje nivel i platforms i cili ndodhet mbi sistemin e
shfrytezimt dhe menaxhon egzekutimin e gjithe aplikacioneve te te .NET. Programet e
shkruara nga ne nuk komunkojne drejtpersedrejti me sistemin e shfrytezimit por kalojne e
kryejne ate nepermjet CLR-se.
Microsoft Intermediate Language (MSIL)
Kur nje program i shkruar ne nje gjuhe te platformes .NET kompilohet kodi i tij nuk
konvertohet menjehere ne kod binar (binary code), por ne nje gjuhe te ndermjetshme te
njohur si MSIL, e cila interpretohet nga CLR. MSIL eshte e pavarur nga sistemi i
shfrytezimit dhe nga hardware e perdorur. Gjate egzekutimit te programit kodi MSIL
konvertohet ne kod binar i cili mund te egzekutohet nga kompjuteri.
Figura 4. Egzekutimi i nje programi ne .NET
Just In Time Compiler (JIT)
Kur nje program i kompiluar ne MSIL duhet te egzekutohet, CLR-ja therret JIT compiler, i
cili kompilon kodin e MSIL ne kod binar te cilin mundet ta egzekutoje kompjuteri aktual.
KOmpiler-at JIT jane te ndryshem nga ata tradicionale pasi ata kompilojne kodin MSIL ne
kod binar vetem kur eshte e nevojshme; p.sh. kur thirret nje funksion kodi MSIL i funksionit
konvertohet ne gjuhen binare te kompjuterit vetem ne momentin e egzekutimit. Pra, jesa e
kodit qe nuk perdoret nga egzekutimi specific nuk konvertohet ne kod binar. Nese nje pjese e
10
kodit MSIL konvertohet ne binar, atehere heren tjeter qe do te nevojitet CLR-ja perdor kodin
e konvertuar m epare pa kryer perseri konvertimin. Meqenese JIT munden te identifikojne
procesorin specific gjate egzekutimit, kane mundesine te optimizojne kodin ne menyre
shume efikase duke marre maksimumin e performances.
Libraria e Klasave te Platformes (FCL)
Platforma .NET ofron nje library gjigande klasash per pune te zakonshme. FCL permban
mijra klasa nepemjet te cilave ofrohet akses ne API-n e Windows dhe per funksione te
zakonshme si manipulii i tekstit, struktura te zakonshme te dhenash, hyrje/dalje te dhenash,
sigurine, programim rrjetesh, web programming, aksesim bazash te dhenash e shume te tjera.
FCL eshte libraria me e madhe qe shoqeon nje gjuhe programimi.
Specifikimet e Common Language (CLS)
Microsoft ka percaktuar nje liste specifikimesh te cilat duhet tu nenshtrohet nje gjuhe
programimi ne menyre qe te jete kompatible me platformen .Net. Meqenese MSIL eshte nje
ghuje shume e pasur, nuk eshte e nevojshme qe nje gjuhe te implementoje gjithe
funksionalitetet e MSIL por mjafton tu nenshtrohet nje pjsese te vogel te CLS per te qene
kompaible me platformen .Net. Kjo eshte arsyeja pse kaq shume gjuhe po egzekutohen
tanime ne platformen .Net.
Common Type System
Common Type System (CTS) ashtu si dhe CLS percakton tipat baze te te dhenave te cilat
njeh MSIL. Tipat e cdo gjuhe kompatible me platformen .Net duhet te kene tip perkates ne
MSIL. Kjo u mundeson dy gjuheve te komunikojne midis tyre duke dhene/marre parametra.
Per shembull, CTS percakton tipin Int32, nje tip numrash te plote prej 32 bits (4 bytes) i cili i
perket tipit int ne gjuhet C# dhe Integer ne VB.Net.
Garbage Collection
Garbage Collection (GC) eshte pjese e CLR e cila egzekutohet ne “prapaskene” dhe kerkon
per memorje te pa referuan nga variabla. Nese gjen te memorje te tille ia kthen ate sistemit te
11
shfrytezimit. Prezenca e GC heq nga perdoruesi barren e rende per menaxhimin e memorjes
(ndryshe nga gjuhe te tjera si p.sh. C++).
Platforma .Net
Platforma .Net eshte nje kombinim i CLR, FCL, klasave Data dhe XML dhe aplikacioneve
tona .Net. Ne Figuren 5 ilustrohet menyra e organizimit te platforms .Net.
Figura 5. Platforma .Net
12
II. BAZAT E WEB FORMS
AP.NET ofron nje model te ri per krijimin e faqeve web. Me ASP programuesit duhej te
ishin eksperte te HTML-se per te mundur te dizenjonin faqe dinamike. Faqet duheshin
krijuar per nje detyre te caktuar dhe permbajtja e tyre duhej krijuar nepermjet etiketave
HTML.
Me ASP.NET eshte e mundur te prdoren controls te nivelit te larte. Ato krijohen dhe
konfigurohen si objekte dhe krijojne automatikisht permbajtjen e tyre HTML. Akoma, kete
controls sillen ci contros perkatese ne aplikacionet windows duke ruajtur gjendjen e tyre dhe
duke krijuar events ndaj te cilave mund te reagojme ne kod.
II.1 Anatomia e nje Aplikacioni ASP.NET
Eshte e veshtire te percaktohet me saktesi se cfare eshte nje aplikacion web. Ndryshe nga
programet windows te cilat egzekutohen nepermjet nje file me prapashtesen .exe,
aplikacionet ASP.NET pothuajse gjithmone ndahen ne disa faqe web. Kjo ndarje do te thote
se perdoruesi mundet te aksesoje nje aplikacion ASP.NET ne pika te ndryshme apo te klikoje
nje link per pjese te tjera te aplikacionit apo edhe web server tjeter. Atehere, ka kuptim qe nje
web site te quhet aplikacion?
Me ASP.NET pergjigjja eshte po. Cdo aplikacion ASP.NET ka nje bashkesi te njejte
burimesh dhe konfigurimesh. Faqet e aplikacioneve te tjera ASP.NET nuk ndajne keto
burime, akoma edhe nese jane ne te njejtin server. Teknikisht, cdo aplikacion ASP.NET
egzekutohet ne nje application domain. Ato jane zona te izoluara ne memorje dhe garantojne
se akoma edhe nese nje aplikacion shkakton nje gabim kritik nuk do te ndikoje aplikacione te
tjera qe egzekutohen ne te njejtin kompjuter. Gjithashtu, application domains nuk lejojne qe
nje aplikacion te aksesoje te dhena ten je aplikacioni tjeter.
Perkufizimi standart i nje aplikacioni ASP.NET e pershkruan ate si nje kombinim file-sh,
faqesh, modulesh dhe kodi te egzekutueshem qe mund te thirret nga nje directory virtual ne
nje web server. Ne Figuren 6 tregohet nje web server i cili permban kater aplikacione te
ndryshme.
13
Figura 6. Aplikacione ASP.NET
II.1.1 Tipat e file-ve te ASP.NET
Aplikacionet ASP.NET mund te permbajne disa dipa file-sh. Tabela e meposhtme permban
disa nga perberesit kryesore:
Emri i File Pershkrimi
Me prapashtese .aspx Keto jane faqet web te ASPX. Ato permbajne interface-n dhe disa
14
here edhe kodin e aplikacionit.
Me prapashtese .ascx Keto jane controls te perdoruesit te ASP.NET. Ato jane te
ngjashme me faqet web por nuk mund te aksesohen direkt por
duhet te perfhsihen brenda nje faqeje web.
Me prapashtese .asmx Keto jane web services te ASP.NET.
web.config Ky eshte nje file konfigurimi per aplikacionet ASP.NET i bazuar
ne XML.
global.asax Ky eshte nje file global per aplikacionin. Ketu mund te definohen
variabla globale.
Me prapashtese .cs Keto jane file qe permbajne kod ne C#.
II.1.2 Directories te aplikacioneve ASP.NET
Cdo aplikacion duhet te kete nje structure directories te planifikuar mire. Per shembull, do te
deshironim te ruanim figurat ne nje directory te vecante nga ai ku ruhen faqet web, ose mund
te deshirojme qe faqet publike ti ruajme ne directory te ndryshem nga ato me akses te
kufizuar.
Se bashku e directories te krijuara nga ne, ASP.NET perdor edhe disa nen-directory te
specializuara te cilat i njeh nga emri, te cilat pershkruhen ne tabelen ne vazhdim:
Emri i Directory Pershkrimi
Bin Permban komponentet e kompiluara te .NET (dll) qe perdor
aplikacioni.
App_Code Permban kodin ne C# qe kompilohet dinamikisht per tu perdorur
ne aplikacion.
App_GlobalResources Ketu ruhen burime globale qe mund te aksesohen nga cdo faqe e
15
aplikacionit.
App_LocalResources Nelloj si me larte por keto burime jane te aksesueshme vetem nga
nje faqe e aplikacionit.
App_WebReferences Ruhen referenca ndaj web services qe perdor aplikacioni.
App_Data Ketu ruhen te dhena si file-t ebazave te te dhenave apo file XML.
App_Browsers Ruhen file XML qe percaktojne mundesite e browser-ave te
klientit.
App_Themes Ruhen themes qe perdoren nga aplikacioni.
II.2 Klasat HTML Control
HTML server controls ofrojne nje interface objektesh per elemente standarte te HTML. Ato
kane tre karakteristika baze:
Gjenerojne interface-n e tyre. Programuesi vendos properties ne kod dhe etiketa
perkatese HTML perditesohet automatikisht kur faqja dergohet tek krilenti.
Ruajne gjendjen e tyre. Meqenese web-i nuk ruan gjendjen, faqet e zakonshme web
duhet te bejne shume pune per te ruajtur informacionin midis kerkesave. Per shebull,
cdo here qe nje perdorues klikon nje buton ne nje faqe, duhet se sigurohet se cdo
control ne faqe do te perditesohet ne menyre qe te shfaqe te njejtin informacion qe
kishte heren e fundit qe iu shfaq perdoruesit. Me ASP.NET kjo kryhet automatikisht.
Gjenerojne events. Kodi mundet te reagoje ndaj events ne te njejten menyre si ne
aplikacionet windows.
HTML controls definohen ne namespace System.Web.UI.HtmlControls. Cdo control
ka nje klase te vecante te cilat pershkruhen ne tabelen e meposhtme:
Emri i Klases Pershkrimi
16
HtmlAnchor Link per ne faqe tjeter.
HtmlButton Buton qe klikohet per te kryer nje veprim.
HtmlForm Forma perfshin gjithe controls ne nje faqe. Controls brenda formes
dergojne te dhenat e tyre ne server kur dergohet faqja.
HtmlImage Nje link per nje imazh qe do te shfaqet ne faqe.
HtmlInputButton I ngjashem me butonin me larte.
HtmlInputCheckBox Checkbox.
HtmlInputFile Nje textbox dhe nje buton per upload-imin e file-ve.
HtmlInputHidden Informacion tekst qe dergohet tek server bashke me faqen por qe
nuk eshte i dukshem tek perdoruesi.
HtmlInputImage I ngjashem me HtmlImage por i klikueshem.
HtmlInputRadioButto
n
Radiobutton.
HtmlInputText dhe
HtmlInputPassword
Textbox i perbere nga nje rresht ku perdoruesi mund te shkruaje
tekst apo fjalekalim.
HtmlSelect I ngjashem me combo box
HtmlTable,
HtmlTableRow dhe
HtmlTableCell
Tabele me disa rreshta dhe shtylla.
HtmlTextArea Textbox i perbere nga shume rreshta ku perdoruesi mund te
shkruaje tekst
HtmlHead dhe Informacioni i kokes se nje faqeje.
17
HtmlTitle
II.2.1 Klasa baze HtmlControl
Cdo control HTML rashegon nga klasa baze HtmlControl e cila permban properties te
meposhtme qe trashegohen nga gjithe klasat femije te saj:
Property Pershkrimi
Attributes Ne liste me gjithe atributed e etiketave dhe vlerat e tyre.
Controls Nje liste me gjithe controls qe permban ky control.
Disabled Nese eshte true ky control eshte i c’aktivizuar.
EnableViewState Nese eshte false c’aktivizohet menaxhimi automatic i gjendjes per
kete control.
Page Nje reference tek faqja qeb qe e permban kete control.
Parent Nje reference tek control qe permban kete control.
Style Nje liste properties per pamjen e control.
TagName Emri i etihetes HTML per kete control.
Visible Nese eshte false atehere ky control nuk eshte i dukshem
II.3 Klasa Page
Nje control per te cilin nuk kemi diskutuar akoma eshte klasa Page. Cdo faqe web eshte nje
klase e cila trashegon nga klasa System.Web.UI.Page. Ne kete menyre cdo faqe web
trashegon disa properties te cilat mund te perdoren ne kod. Ne tabelen e meposhtme
pershkruhen disa nga properties baze qe perdoren ne klasen Page:
18
Property Pershkrimi
Application dhe
Session
Jane dy lista ne te cilat ruhet informacion ne server.
Cache Liste per ruajtjen e objekteve per ti riperdorur ne faqe apo kliente
te tjere.
Controls Lista e controls qe permban faqja.
EnableViewState Kur mehet false nuk menaxhohet automatikisht gjendja pe asnje
control te faqes.
IsPostBack Eshte true nese faqja hapet per here te pare dhe false nese ajo
ringarkohet si pergjigje ndaj nje event-i.
Request I referohet nje objekti HttpRequest qe permban informacion per
kerkesen korrente.
Response I referohet nje objekti HttpResponse qe permban informacion per
pergjigjen korrente.
Server I referohet nje objekti HttpServerUtility qe na mundeson te
kryejme detyra te ndryshme.
User Nese perdoruesi eshte autentikuar, kjo property permban
informacion mbi perdoruesin.
II.3.1 Klasa HttpRequest
Klasa HttpRequest permban gjithe informcionin ne lidhje me nje kerkese te nje klienti
per nje faqe web. Shumica e ketij informacioni i korrespondon detajeve te nivelit te ulet si
vlera te formes se derguar nga serveri, variabla te server-it etj. Properties te tjera jane te
rendesishme per leximin e informacioneve sidomos per mundesite e browser-it te klientit.
Disa nga keto properties pershkruhen ne tabelen e meposhtme:
19
Property Pershkrimi
ApplicationPath dhe
PhysicalPath
ApplicationPath lexon path-in virtual te aplikacionit ASP.NET
ndersa PhysicalPath ate real.
Browser Reference ndaj nje objekti te tipit HttpBrowserCapabilities i cili
permban properties qe pershkruajne karakteristika te ndryshme te
browser-it.
ClientCertificate Reference ndaj nje objekti te tipit HttpClientCertificate qe lexon
certifikaten e sigurise per kerkesen korrente.
Cookies Nje liste me cookies (do ti diskutojme ne kapituj te mepasshem).
Headers dhe
ServerVariables
Nje liste e indeksuar me variablat e server-it.
IsAuthenticated dhe
IsSecureConnection
Eshte true nese perdoruesi eshte autentikuar me sukses dhe nese
perdoruesi eshte lidhur me SSL (Secure Sockets Layer).
QueryString Permban informacion qe kalohet nga njera faqe ne tjetren.
Url dhe UrlReferrer Nje objekti i tipit Uri qe permban adresen e faqes korrente dhe te
faqes nga vjen perdoruesi.
UserAgent Nje string qe perfaqeson tipin e browser-it.
UserHostAddress dhe
UserHostName
Lexon adresen IP dhe emrin e klientit.
UserLanguages Nje liste string e cila permban preferencat e gjuhes per klientin.
II.3.2 Klasa HttpResponse
20
Kjo klase na mundeson te dergojme informacion direkt tek klienti. Disa nga antaret e klases
qe perdoren zakonisht pershkruhen ne tabelen e meposhtme:
Property Pershkrimi
BufferOutput Kur eshte true faqja nuk dergohet tek klienti deri sa te jete krijuar e
plote.
Cache I referohet nje objekti HttpCachePolicy i cili namundeson te
konfigurojme menyren se si faqja do te behet cache.
Write(),
BinaryWrite(),
WriteFile()
Kto metoda na mundesojne te shkruajme tekst apo permbajtje
binare direkt tek pergjigja ndaj klientit.
Redirect() Kjo metode transferon perdoruesin ne nje faqe tjeter ne
aplikacionin tone apo ne nje faqe tjeter.
II.4 Konfigurimi i ASP.NET
Cdo web server egzekutohet me disa parametra baze te cilat percaktohen ne dy file
konfigurimi qe ndodhen ne path-in C:\[Directory i Windows]\Microsoft.NET\Framework\
[Versioni]\Config, ku [Versioni] eshte version i platforms .NET. Keto dy file jane
machine.config dhe web.config. Pergjithesisht keto dy file nuk editohen manualisht pasi ato
ndikojne mbi gjithe kompjuterin ku ndodhet server-i. Ne vend te tyre krijohet nje file
web.config per secilin aplikacion. Nepermjet ketij file mund te behen konfigurime shtese apo
te mbivendosen konfigurimet e paracaktuara.
II.4.1 web.config
Ky file perdor nje format te paracaktuar XML. Gjithe permbajtja e ketij file ndodhet brenda
nje elementi <configuration>. Ky element permban nje element <system.web> i cili perdoret
per konfigurimet e ASP.NET. Brenda elementit <system.web> ndodhen elemente te vecante
per cdo aspect te konfigurimit.
21
Me shume per file-n web.config do te shikojme ne vazhdim sipas nevojave qe do te paraqiten
ne cdo seksion.
II.5 Web Controls
HTML controls qe pame me larte jane mjaft me te kufizuara se c’duhet te jene server
controls. Per shembull, cdo HTML control i korrespondon nje etikete HTML gje qe do te
thote se jane te kufizuar nga mundesite e HTML-se, web controls nuk kane kufizime te tilla.
II.5.1 Klasat baze web control
ASP.NET ofron web controls te ngjashme me controls per aplikacione windows. Keto
controls definohen ne namespace System.Web.UI.WebControls dhe te gjitha
trashegojne klasen System.UI.Web.Control. Kjo klase permban disa properties te
cilat trashegohen nga gjithe controls:
Property Pershkrimi
AccessKey Percakton shkurtimin ne tastiere per control. Per shembull nese i
jepet vlera Y atehere duke shtypur Alt+Y ne tastiere do te
fokusohet ky control.
BackColor,ForeColor,
BorderColor
Percaktohen ngjyrat e fushes, tekstit dhe te kornizes se control.
BorderWidth Percakton trashesine e kornizes.
BorderStyle Nje enumeration qe percakton llojin e kornizes dhe mund te marre
vlerat Dashed, Dotted, Double, Groove, Ridge, Inset, Outset,
Solid, None.
Controls Nje liste me controls brenda ketij control.
Enabled Nese eshte false control nuk eshte i aktivizuar (nuk mund te
klikohet).
22
EnableViewState Boolean funksionin e te cilit do ta kuptojme me vone.
Font Percakton karakteristikat e tekstit per control.
Height dhe Width Percakton permasat e control.
Page Reference tek faqja qe permban kete control.
Parent Reference tek control qe permban kete control.
TabIndex Numer qe percakron rradhen me te cilen do te vizitohet ky control
nepermjet butonit Tab.
ToolTip Teksti qe do te shfaqet nese vendoset mouse mbi kete control.
Visible Nese eshte false ky control nuk do te shfaqet.
Ne vazhdim do te eprshkruhen disa nga konceptet baze qe do te perdoren pothuajse me cdo
web control.
Units
Te gjitha properties qe perdorin permasa, duke perfshire BorderWidth, Height dhe
Width perdorin strukturen Unit, e cila kombinon nje vlere numerike me nje njesi matjeje
(piksel, perqindje, etj.). Kjo do te thote se kur u jepet vlere ketyre properties duhet qe se
bashku me vleren numerike te plotesohet dhe njesia matese, p.sh. px per piksel apo % per
peqindje. Kjo eshte shume e thjeshte kur properties plotesohen nepermjet properties window
te Visual Studio. Nese keto properties percaktohen nepermjet kodit, duhet te perdoret nje nga
metodat statike te Unit: metoda Pixel() per te dhene vlere ne piksel dhe metoda
Percentage() per te dhene nje vlere ne perqindje:
Panel pnl = new Panel();
pnl.Height = Unit.Pixel(300);
pnl.Width = Unit.Percentage(50);
Gjithashtu eshte e mundur te krijohet nje objekt Unit nepermjet konstruktoreve te tij dhe
Enumeration UnitType:
23
Unit myUnit = new Unit(300, UnitType.Pixel);
Panel pnl = new Panel();
pnl.Height = myUnit;
pnl.Width = myUnit;
Enumerations
Enumerations perdoren gjeresisht ne .NET per grupimin e konstanteve te nderlidhura. Per
shembull, kur percaktohet property BorderStyle e nje control-i, mundemi te zgjedhim nje
nga vlera e paracaktuara nga enumeration BorderStyle. Edhe ne kete rast, nepermjet
Properties window eshte mjaft e thjeshte te zgjidhet vlera e deshiruar. Nepermjet kod-it
properties te tilla u jepet vlere ashtu sic do variable te tipit te caktuar enumeration.
Colors
Property Color e controls i referohet nje objekti te namespace System.Drawing.
Mundemi te krijojme nje objekt te tille ne disa menyra:
Duke perdorur nje vlere ARGB (alpha, red, green, blue): Ne kete menyre
specifikohet cdo vlere si nje numer nga 0 ne 255. Komponenti alpha perfaqeson
transparencen e nje ngjyre ku vlera 255 perfaqeson ngjure tereseisht te tejdukshme.
Duke perdorur nje emer ngjyre te paracaktuar: Zgjidhet nje nga properties e klases
Color qe perfaqesojne ngjyren me emrin perkates. Keto properties permbajne emrat e
140 ngjyrave HTML.
Duke perdorur emrin e ngjyres HTML: Kjo vlere percaktohet si string duke perdorur
klasen ColorTranslator.
Le te shikojme disa shembuj per specifikimin e ngjyres ne kod:
ctrl.ForeColor = Color.FormARGB(255,0,255,0);
ctrl.ForeColor = Color.Crimson;
ctrl.ForeColor = ColorTranslator.FromHtml(“Blue”);
Fonts
24
Property Font i referohet nje objekti FontInfo i cili percaktohet ne namespace
System.Drawing. Cdo objekt i tille ka disa properties:
Property Pershkrimi
Name String qe percakton emrin e font-it (p.sh. Verdana).
Size Madhesia e tekstit si objekt FontUnit.
Bold, Italic, Strikeout,
Underline, Overline
Properties boolean qe percaktojne vlerat perkatese
Ne kod ka disa menyra per percaktimin e font-it:
ctrl.Font.Name = “Verdana”;
ctrl.Font.Bold = true;
ctrl.Font.Size = FontUnit.Point(14);
II.5.2 List Controls
List controls permbajne ListBox, DropDownList, CheckboxList,
RadioButtonList dhe BulletedList. Te gjitha funksionojne ne te njejten menyre
por kane pamje te ndryshme ne browser. Per shembull ListBox eshte nje liste
drejtkendeshe e cila shfaq disa elemente, ndersa DropDownList shfaq vetem elementin e
zgjedhur. CheckBoxList dhe RadioButtonList jane te ngjashme me ListBox, por
cdo element shfaqet si checkbox apo buton opsioni. Se fundi, BulletedList eshte i vetmi
list control i cili nuk eshte i selektueshem por shfaqet si nje sekuence elementesh me numra
apo pika.
Te gjitha list controls te selektueshme kane nje property SelectedIndex e cila tregon se
cili element i listes eshte zgjedhur. Per shembull, nese eshte zgjedhur elementi i pare i listes,
SelectedIndex do te jete 0. Nje tjeter property e ketyre controls eshte SelectedItem
e cila kthen objektin qe perfaqeson elementin e zgjedhur te listes qe eshte i tipit ListItem.
Objekti ListItem permban tre properties te rendesishme: Text (teksti i elementit),
25
Value (vlera e lementit), dhe Selected (true nese elementi eshte selektuar false ne te
kundert). Per krijimin e elementeve ListItem egzistojne disa konstruktore qe perfshijne
kombinime te properties te mesiperme si parametra.
List controls me zgjedhje te shumefishta
Disa list controls lejojne kryerjen e zgjedhjeve te shumefishta. Kjo nuk lejohet per
DropDownList apo per RadioButtonList, por lejohet per ListBox nese property
SelectionMode e saj eshte vendosur ne ListSelectionMode.Multiple. Keshtu
perdoruesi mund te beje disa zgjedhje duke mbajtur te shtypur butonin Ctrl kur klikon
elementet e listes. Me CheckBoxList, eshte gjithmone e mundur te kryhen zgjedhje te
shumefishta.
Per controls me zgjedhje te shumefishta mundemi te gjejme elementet e zgjedhura duke
aksesuat cdo element te listes dhe duke kontrolluar property ListItem.Selected te
secilit.
BulletedList
Ne te njejten menyre si list controls te tjera, elementet e listes shtohen nepermjet property
Items te saj. Gjithashtu mund te perdoren properties te meposhtme per te konfiguruar
menyres se si do te shfaqen elementet e listes:
Property Pershkrimi
BulletStyle Percakton tipin e listes. Zgjedhjet e mundshme jane Numbered (1,
2, 3…), LowerAlpha (a, b, c…), UpperAlpha (A, B, C…),
LowerRoman (i, ii, iii…), UpperRoman (I, II, III…) dhe simbolet
Disc, Circle, Square ose CustomImage.
BulletStyleImageUrl Nese BulletStyle eshte Custom kjo property tregon imazhin i cili
vendoset ne te majte te cdo elementi.
FirstBulletNumber Ne nje liste me numra apo karaktere kjo property percakton vleren
e elementit te pare
26
DisplayMode Percakton nese teksti i cdo elementi do te shfaqet si tekst apo link.
II.5.3 AutoPosBack dhe Events te Web Controls
Sic u diskutua me larte, cdo faqe ASP.NET procesohet tek serveri dhe me pas dergohet tek
klienti si nje faqe e thjeshte HTML. Figura 7 ilustron menyren e procesimit te nje faqeje.
Figura 7. Procesimi i faqes (page)
Si mundemi te shkruajme kod i cili do te reagoje ndaj eventeve qe ndodhin tek klienti? Ne
ASP.NET pergjigjia eshte postback automatik. Postmabck automatic dergon nje faqe tek
27
Web Client
ASP.NET krijon objektin e faqes nga kodi .aspx
ASP.NET egzekuton event handler-in Page.Load
Krijohet faqja perfundimtare
ASP.NET krijon objektin e faqes nga kodi .aspx
ASP.NET egzekuton event handler-in Page.Load
ASP.NET egzekuton event handler per cdo event te
shkaktuar
Krijohet faqja perfundimtare
Kerkesa per faqen web
Faqja HTML
Kerkese e re (postback)
Faqja HTML
server kur dedekton nje veprim sepcifik te perdoruesit. Kjo i jep mundesine kodit te
egzekutohet perseri dhe te krijoje nje faqe te re te perditesuar. Pothuajse gjithe controls
mundesojne postback automatik. Tabela meposhtme eshte nje liste e event-eve baze per disa
controls:
Event Web Controls qe e ofrojne
Click Button, ImageButton
TextChanged TextBox
CheckChanged CheckBox, RadioButton
SelectedIndexChanged DropDownList, ListBox, CheckBoxList, RadioButtonList
Nese deshirojme te reagojme ndaj nje event te nje control duhet bere property
AutoPostBack true per te. Kjo do te thote se kur nje perdorues klikon nje radio button apo
nje check box, faqja do te dergohet tek server-i. Ai perpunon faqen duke mundesuar qe kodi
yne te kryeje procesimin e percaktuar perpara se ta ktheje faqen tek perdoruesi (klienti).
Me fjale te tjera, cdo here qe dedhirojme te perditesojme faqen, ajo dergohet tek server dhe
rikrijohet. Megjithate, ASP.NET e ben kete proces kaq transparent sa kodi yne e trajton
faqen si nje program qe egzekutohet ne vazhdimesi.
III. VALIDIMI DHE RICH CONTROLS
Ne kete kapitull fillimisht do te mesojme mbi controls te validimit. Keto controls
automaizojne procesin e verifikimit te te dhenave nga perdoruesi dhe raportimin e gabimeve
nepermjet disa validuesish lehtesisht te perdorshem. Ne vazhdim do te njihemi me dy
controls te reja te cilat nuk egzistojne jashte ASP.NET, Calendar dhe AdRotator.
III.1 Validimi
Gjate perdorimit te aplikacioneve perdoruesit bejne nje sere gabimesh ne plotesimin e te
dhenave qe kerkohen nga ta:
28
Perdoruesit mund te injorojne nje fushe te rendesishme duke e lene ate te pa
plotesuar.
Perdoruesit mund te plotesojne tekst te pa kuptimte ne nje fushe duke krijuar shume
problem per ne, si p.sh. adrese e-mail-i te pa vlefshme etj.
Perdoruesit mund te bejne nje gabim te zakonshem si plotesimin e nje teksti ne fusha
ku priten vlera numerike etj.
Aplikimet web jane mjaft te ndjeshme ndaj problemeve te tilla pasi ato bazohen ne controls
baze HTML te cilat nuk kane gjithe mundesite e controls analoge te aplikacioneve windows.
Per shembull, nje teknike e zakonshme ne aplikacionet windows eshte menaxhimi i eventit
per klikimin e nje butoni te tastieres (KeyPress) ne nje TextBox, duke kontrolluar nese
karakteri qe po shkruhet eshte i vlefshem duke penguar keshtu plotesimin e te dhenave te
gabuara. Kjo teknike perdoret zakonisht per TextBox qe pranojne vetem te dhena numerike.
Ne aplikacione web nuk kemi kontroll kaq te imtesishem. Per te menaxhuar eventi-in
KeyPress faqja do te duhej te dergohej tek server-i cdo here qe perdoruesi do te shkruante nje
shkronje, gje qe do te ngadalesonte se tepermi aplikacionin. Ne vend te kesaj, duhet te kryhen
gjithe validimet ne nje kohe kur faqja i dergohet server-it. Gjitashtu duhet te krijihet user
interface i pershtatshem per raportimin e gabimeve tek perdoruesi.
Qellimi i ASP.NET eshte te heqe kete bare nga programuesi dhe te ofroje nje platform
controls validimesh qe menaxhojne detajet e validimit duke cekuar disa fusha dhe duke
raportuar gabimet automatikisht. Keto controls mund te perdorin edhe JavaScript per te
ofruar nje interface akoma edhe me interactive.
III.1.1 Controls per validim
ASP.NET ofron pese controls per validim te cilat pershkruhen ne tabelen e meposhtme.
Kater nga to kryejne validim te nje tipi te caktuar ndersa i pesti mundeson validim te
kustomizuar:
Control Pershkrimi
RequiredFieldValidator Validimi eshte i sukseshem nese qe control-i perkates nuk
29
permban tekst bosh.
RangeValidator Validimi eshte i suksesshem nese control-i permban nje vlere
brenda nje segmenti te percaktuar vlerash numerike,
karakteresh apo datash.
CompareValidator Validimi eshte i suksesshem nese control-i permban nje vlere
qe eshte enjejte me ate te nje control-i tjeter te specifikuar.
RegularExpressionValidator Validimi eshte i suksesshem nese control-i permban vlere qe i
pershtatet nje shprehjeje standarte.
CustomValidator Valdimi kryhet nepermjet nje funksioni te percaktuar.
Cdo control validimi mund te lidhet me nje control te vetem, ndersa cdo control mund te
lidhet me disa controls validimi. Nese perdoren RangeValidator,
CompareValidator apo RegularExpressionValidator, validimi eshte i
sukseshem edhe nese ne control-in qe validohet nuk eshte dhene tekst. Ne rast se kerkojme qe
teksti te mos jete bosh duhet te shtojme edhe nje RequiredFieldValidator per kete
control, duke kryer keshtu dy validime.
III.1.2 Procesi i validimit
Nepermjet controls per validim mund te kryhet validim automatik kur faqja dergohet tek
server ose edhe manualisht ne kod.
Kur perdoret validim automatik, perdoruesi merr nje faqe normale dhe fillon te plotesoje
controls. Kur perfundorn, perdoruesi klikon nje buton per te derguar faqen tek server. Cdo
buton ka nje property CausesValidation e cila merr vlerat true ose false. Ajo qe ndodh
kur perdoruesi klikon butonin varet nga vlera e CausesValidation:
Nese eshte false, ASP.NET do te injoroje controls per validim, faqja do te kthehet tek
server dhe kodi i event procedures do te egzekutohet normalisht.
30
Nese eshte true, ASP.NET do te validoje automatikisht faqen kur perdoruesi klikon
butonin. Validimi kryhet per cdo control ne faqe dhe nese validimi deshton per nje
control, ASP.NET do te ktheje faqen me informacion mbi gabimin sipas konfigurimit
tone. Event procedure per klikimin mund te egzekutohet ose jo, qe do te thote se
duhet manualisht te kontrollojme ne event procedure nese faqja eshte e validuar apo
jo.
Me sa me larte, kuptojme se validimi kryhet automatikisht kur klikohen disa butona. Ai nuk
ndodh kur faqja dergohet tek serveri per arsye te nje eventi tjeter apo nese klikohet nje buton
qe ka CausesValidation false.
III.1.3 Validimi client-side
Per browser-at modern, ASP.NET shton automatikisht kod JavaScript per validim client-
side. Ne kete rast, kur perdoruesi klikon nje buton me CausesValidation true, validimi
do te kryhet dhe mesazhet e gabimit do te shfaqen pa pasur nevoje qe faqja te dergohet tek
serveri, gje qe pershpejton procesin e validimit.
Megjithate, kur nje faqe validohet me sukses tek klienti, ASP.NET e validon ate perseri kur
faqja shkon tek serveri. Kjo behet pasi eshte e thjeshte per nje perdorues me experience te
anashkaloje validimin client-side.
III.1.4 Klasat e validuesve
Klasat per controls per validim ndodhen ne nemaspace System.Web.UI.WebControls
dhe trashegojne klasen BaseValidator e cila percakton funksionalitetin baze per nje
control per validim. Disa nga properties te kesaj klase pershkruhen ne tabelen e meposhtme:
Property Pershkrimi
ControlToValidate Percakton control-in i cili do te validohet.
ErrorMessage,
ForeColor, Display
Nese validimi deshton, control per validim mundet te shfaqe nje
mesazh gabimi i cili percaktohet nepermjet ErrorMessage.
ForeColor percakton ngjyren e mesazhit. Nepermjet Display
31
mundemi te percaktojme nese mesazhi do te shtohet dinamikisht
(Dynamic) apo do te rezervohet nje vend per te (Static).
IsValid Pasi kryhet validimi, kjo property eshte true nese ai eshte i
suksesshem dhe false nese jo.
Enabled Kur eshte false, validimi nuk do te kryhet per kete control.
EnableClientSideScrip
t
Nese ehste true, validimi do te kryhet tek klienti.
Kur perdoren controls per validim, te vetmet properties te cilat duhet tu jepet vlere jane
ControlToValidate dhe ErrorMessage. Gjithashtu, mund te nevojitet te plotesohen
properties qe perdoren per validuesin specifik:
Control per Validim Antare Shtese
RequiredFieldValidator Asnje
RangeValidator MaximumValue, MinimumValue, Type
CompareValidator ControlToCompare, Operator, Type, ValueToCompare
RegularExpressionValidator ValidationExpression
CustomValidator ClientValidationFunction, ServerValidate event
III.1.5 Validation summary
Ne disa raste mund te kemi krijuar nje faqe ti dizenjuar me kujdes e cila kombinon shume
controls. Ne kete faqe deshirojme te kryejme validim por nuk duam te modifikojme
dizenjimin per te krijuar hapesire per mesazhet e gabimit te controls per validime. Per raste si
keto, APS.NET ofron control-in ValidationSummary.
32
Per te perdorur ValidtionSummary, duhet qe property Display per gjithe validation
controls te jete false. Tani, nese validimi deshton, do te shfaqen gjithe mesazhet e gabimit per
gjithe controls per validim ne nje liste tek ValidationSummary.
Ky control, ofrom disa properties nepermjet te cilave mund te konfigurojme menyren e
shfaqjes se mesazheve te gabimit. Keshtu, nepermjet property HeaderText mundemi te
vendosim nje titull per permbledhjen e gabimeve. Nepermjet property ForeColor
mundemi te percaktojme ngjyren e tekstit te gabimit dhe nepermjet DisplayMode menyren
e shfaqjes. Opeionet per DisplayMode jane BulletList, List dhe Paragraph. Se
fundi, mundemi te shfaqim permbledhjen e gabimeve si nje dritare pop-up duke bere
property ShowMessageBox true. Kjo ka avantazhin se le dizenjimin e faqes te pa prekur.
III.1.6 Grupe validimi
Ne faqe me komplekse mund te kemi grupe te ndryshme ndoshta ne panele te vecanta. Ne
keto raste, mund te deshirojme te kryejme validim vecmas. Per shembull, mund te kemi
krijuar nje faqe e cila permban nje panel me controls per login dhe poshte tyre nje panel me
controls per regjistrimin e perdoruesve te rinj. Secili panel permban butonin e tij per
dergimin ne server, dhe ne varesi te butonit qe klikohet duam te kryejme validim per panelin
perkates.
Ky skenar mundesohet nepermjet nje funksionaliteti qe quhet grupe validimi (validation
groups). Per te krijuar nje grup validimi duhet qe property ValidationGroup per cdo control
qe do te validohet bashke, si dhe butoni perkates te kete si vlere te njejtin tekst.
33