46
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 ”

Leksione Web

Embed Size (px)

DESCRIPTION

Leksione Web

Citation preview

Page 1: 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 ”

Page 2: Leksione Web

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

Page 3: Leksione Web

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

Page 4: Leksione Web

<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

Page 5: Leksione Web

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

Page 6: Leksione Web

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

Page 7: Leksione Web

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

Page 8: Leksione Web

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)

Page 9: Leksione Web

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

Page 10: Leksione Web

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

Page 11: Leksione Web

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

Page 12: Leksione Web

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

Page 13: Leksione Web

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

Page 14: Leksione Web

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

Page 15: Leksione Web

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

Page 16: Leksione Web

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

Page 17: Leksione Web

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

Page 18: Leksione Web

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

Page 19: Leksione Web

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

Page 20: Leksione Web

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

Page 21: Leksione Web

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

Page 22: Leksione Web

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

Page 23: Leksione Web

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

Page 24: Leksione Web

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

Page 25: Leksione Web

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

Page 26: Leksione Web

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

Page 27: Leksione Web

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

Page 28: Leksione Web

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

Page 29: Leksione Web

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

Page 30: Leksione Web

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

Page 31: Leksione Web

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

Page 32: Leksione Web

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

Page 33: Leksione Web

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