You are on page 1of 66

1

UNIVERSITETI I PRISHTINS
FAKULTETI I INXHINIERIS ELEKTRIKE DHE KOMPJUTERIKE







PUNIM DIPLOME
ASP.NET KONTROLLAT










Mentori Kandidati
Dr.Sc.Edmond BEQIRI Ardian IBRAJ


Prishtin, Shtator 2004

2
Prmbajtja

Hyrje---------------------------------------------------------------------------------- 4
HTML Server Kontrollat--------------------------------------------------------- 5
Koncepti i Server kontrollave--------------------------------------------------------------------6
Rndsia dhe kuptimi i HTML Server Kontrollave ------------------------------------------7
Kontrolla HTMLAnchor--------------------------------------------------------------------------9
Kontrolla HTMLButton------------------------------------------------------------------------- 11
Kontrolla HTMLForm -------------------------------------------------------------------------- 13
Kontrolla HTMLGeneric ----------------------------------------------------------------------- 14
Kontrolla HTMLSelect ------------------------------------------------------------------------- 14
Kontrolla HTMLTextArea --------------------------------------------------------------------- 15
Kontrolla HTMLImage ------------------------------------------------------------------------- 16
Kontrolla HTMLInputButton ------------------------------------------------------------------ 17
Kontrolla HTMLInputCheckBox-------------------------------------------------------------- 18
Kontrolla HTMLInputRadioButton----------------------------------------------------------- 18
Kontrolla HTMLInputText --------------------------------------------------------------------- 20
Kontrolla HTMLInputImage------------------------------------------------------------------- 20
Kontrolla HTMLInputFile---------------------------------------------------------------------- 20
Kontrolla HTMLInputHidden ----------------------------------------------------------------- 21
Kontrolla HTMLTable-------------------------------------------------------------------------- 22
Kontrolla HTMLTableRow -------------------------------------------------------------------- 23
Kontrolla HTMLTableCell --------------------------------------------------------------------- 23
ASP Server Kontrollat ----------------------------------------------------------- 25
Web kontrollat themelore (Basic Web Controls) ------------------------------------------- 26
Label ............................................................................................................................................. 26
TextBox ........................................................................................................................................ 26
Buttons .......................................................................................................................................... 26
CheckBox...................................................................................................................................... 27
ListControls .................................................................................................................................. 27
HyperLink..................................................................................................................................... 27
Image ............................................................................................................................................ 28
Panel ............................................................................................................................................. 28
RadioButton.................................................................................................................................. 28
Table ............................................................................................................................................. 28
Xml ............................................................................................................................................... 29
Prdorimi i ngjarjeve t kontrollave----------------------------------------------------------- 29

3
Kontrollat Validuese-------------------------------------------------------------- 32
Kontrollat Validuese si Web Form Kontrolla ----------------------------------------------- 32
Kontrollat Validuese ---------------------------------------------------------------------------- 32
Kontrolla RequiredFieldValidator------------------------------------------------------------- 33
Kontrolla RegularExpressionValidator ------------------------------------------------------- 34
Kontrolla CompareValidator ------------------------------------------------------------------- 35
Kontrolla RangeValidator ---------------------------------------------------------------------- 35
Kontrolla CustomValidator--------------------------------------------------------------------- 37
Kontrolla ValidationSummary----------------------------------------------------------------- 38
Custom Kontrollat ---------------------------------------------------------------- 39
Custom Kontrolla ( e nnkuptuar ) e plot --------------------------------------------------- 42
Atributet e Custom kontrollave ---------------------------------------------------------------- 43
Metoda e Renderimit (ang. Render)----------------------------------------------------------- 44
Krijimi i Custom kontrollave t derivuara --------------------------------------------------- 46
Krijimi i Custom Kontrollave t prbra ----------------------------------------------------- 49
Krijimi i kontrolls s prbr Numrues_i_Librave ---------------------------------------- 54
Interfejsi INamingContainer ------------------------------------------------------------------- 55
Krijimi i kontrolls s prbr Lista_e_Krkesave_ t_ Librave ------------------------- 56
Atributet ControlBuilder dhe ParseChildren------------------------------------------------- 57
Renderimi ----------------------------------------------------------------------------------------- 58
Prmbyllje -------------------------------------------------------------------------- 61
Summary---------------------------------------------------------------------------- 62
SHTOJCA A ----------------------------------------------------------------------- 63
SHTOJCA B------------------------------------------------------------------------ 64
Literatura:-------------------------------------------------------------------------- 66

4

Hyrje
ASP.NET-i (Active Server Pages), sht teknologji pr t zhvilluar web
aplikacione dhe ofron zgjidhjen shum t nevojshme pr nj problem shum t vjetr-
kontrollat e HTML formave. N verzionet para .Net-it programert e ASP-s duhej q
t kalonin her n HTML her n ASP pr t ofruar ndrveprim n mes web faqeve.
Pra thn shkurt ASP nuk ofronte shkall t lart t ndrveprimit. Me shfaqjen e ASP
server kontrollave, e gjith kjo ka ndrruar. Kshtu ASP.NET bn t mundur q t
kryhet validimi n kohn reale dhe paraqitja e mesazheve t gabimit nga faqja kur
sht tejkaluar ndonj fush e krkuar. Gjithashtu ASP.NET bn t mundur
zvendsimin e t dhnave n faqe pa e detyruar shfrytzuesin q ti qaset ndonj faqe
tjetr apo t ristartoj komplet faqen.
Gjat zhvillimit t web formave n ASP.NET, mund t prdoren kto lloje t
kontrollave:

HTML Server kontrollat me t cilat manipulohet n ann e serverit. Para
se t drgohet forma n ann e klientit makina e ASP-s i konverton ato n
HTML elementet prkatse. Kto kontrolla jan t prfshira n nejmspejsin
System.Web.UI.HtmlControls.

ASP Server kontrollat (njihen edhe si Web Kontrolla apo ASP.NET Web
Form kontrolla) Kto jan kontrolla t reja t zhvilluara nga Microsofti.
Ato i kan t prfshira nj numr t madh t veqorive si dhe nj grup me
vetit standarde. N HTML dhe .aspx, kto kontrolla referohen me prefiksin
asp si p.sh. asp:Label, asp:Button, asp:TextBox etj. Prveq server
kontrollave t tipit t forms siq jan: labelat, butonat, apo lista rnse (ang.
dropdown ) jan edhe nj numr i kontrollave speciale si kontrollat Calendar
dhe AdRotator. Makina ASP i konverton kto kontrolla n HTML kontrolla
standarde para se t drgohet faqja te klienti. Kto Web server kontrolla
gjenden n nejmspejsin System.Web.UI.WebControls

Kontrollat e Validimit (Validation Controls) - ky grup i kontrollave ofron
mundsin e zhvillimit t shpejt t aplikacioneve (Rapid Application
Development RAD). Prdoren pr t kontrolluar n mnyr automatike t
dhnat hyrse t shfrytzuesit. Kto kontrolla gjenden n nejmspejsin
System.Web.UI.WebControls

Custom kontrollat ASP.NET-i ofron mundsin e zgjerimit t kontrollave
ekzistuese pr t shtuar funksionalitete sipas nevojs. Ekzistojn dy verzione
t Custom kontrollave: Web User kontrollat dhe Web Custom kontrollat.
Dallimi ky ndrmjet tyre qndron n at se Custom kontrollat kompajlohen
n fajlla .dll dhe pastaj prdoren njlloj si prdoren t gjitha server kontrollat.
Web User kontrollat jan t lehta pr tu zhvilluar, dhe ruhen si fajlla me
prapashtesn .ascx. Kto ruhen t kompajluara.

5


Pjesa e par
HTML Server Kontrollat
Web Aplikacionet jan aplikacione q mund t zhvillohen n dy pjes: pjesa e
klientit dhe pjesa e serverit. Pjesa e klientit n prgjithsi ka t bj me pjesn statike
t programimit, kurse ktu do t trajtohet pjesa e serverit e cila edhe mund t quhet
pjes dinamike. I gjith koncepti i ksaj pjese sqarohet thjesht me at se nj HTML
dokument prdor protokollin HTTP (HyperText Transfer Protocol) pr tiu qasur nj
Web Serveri. sht e qart se kur futet nj URL (Universal Resource Locator) pr nj
faqe n browser, ai do t drgohet si nj mesazh n HTTP deri te serveri (krkes
pr faqen e dshiruar). Ky mesazh zakonisht njihet si Request (krkes). Nse faqja
q krkohet ka p.sh prapashtesn .htm ose .html, Web Serveri thjesht gjen faqen
n disk dhe nga disku i tij ai e drgon prapa deri te kompjuteri juaj (klienti)
nprmjet nj mesazhi t ri n HTTP, i njohur si Response(prgjigje). Browser-i
sht ai i cili interpreton kt kod n objektin e prgjigjur dhe e prezenton at n
ekran. Kjo sht mnyra se si realizohet krkesa e klientit deri te marrja e faqes s
dshiruar nga serveri.
Nj ASP.NET fajll, q ka prapashtesn .aspx, zakonisht prmban elemente
HTML, me kod t ans s serverit dhe t klientit.



Figura 1. Hapat kryesor t prpunimit t krkess Request deri tek prgjigja
Response

Siq shihet n figurn e mposhtme, kur shfrytzuesi krkon (Request) nj
faqe ASPX , serveri e merr at nga disku dhe e drgon tek makina ASPX pr
prpunim t mtutjeshm. Pastaj makina ASPX e kompajlon kodin e serverit dhe
gjeneron fajllin e

6

klass page, e instancon fajllin e klass dhe i ekzekuton instruksionet q e
zhvillojn objektin response. Gjat ekzekutimit sistemi i prpunon t dhnat e
futura nga prdoruesi bazuar n instruksionet e programit (n pjesn e serverit). N
fund, serveri e transmeton objektin Response deri tek klienti.
Pra hapat kryesor t prpunimit t krkess deri tek prgjigja Responsejan
kto:

1. Serveri pranon krkesn pr faqen ASPX t dshiruar.
2. Serveri gjen lokacionin e faqes n disk.
3. Serveri i dorzon faqen makins ASP.NET
4. ASP.NET-i e kompajlon faqen dhe gjeneron klasn page. Gjat
kompajlimit, mund t krkoj edhe pjes tjera t kodit siq jan kodi prapa
komponenteve t ndryshme t prfshira n program
5. ASP.NET-i inicializon klasn, kryen prpunimin e domosdoshm dhe
gjeneron objektin Response
6. Pastaj Web serveri drgon objektin Response tek klienti.


Koncepti i Server kontrollave
Para se t fillojm t flasim n lidhje me HTML server kontrollat, t kuptojm
n prgjithsi konceptin themelor se ka jan server kontrollat n prgjithsi.
Server kontrollat jan tagje speciale t cilat jan t prpunuara nga Web Serverat
n nj mnyr paksa t ngjajshme me mnyrn e tagjeve t HTML-s t interpretuara
nga browseri juaj.
Tagjet e server kontrollave mund t identifikohen nga fakti se ato fillojn me
atributin runat=server. Kjo i ndihmon serverit ti dalloj ato nga tagjet standarde t
HTML-s.
Mjaft interesant sht fakti se, n pjesn e klientit nuk ekziston atributi
runat=client, dhe nse krkohet (Request) faqja me atributin runat t futur n
pjesn e klientit (ose dika t ngjajshme) do t paraqitet gabim me sqarimin se
Atributi Runat duhet t ket vlern Server (ang. The Runat atribute must have
the value Server).
Nganjher serveri gjen kontrollat e serverit, ai krijon nj objekt n memorje,
t cilat prezentojn server kontrollat. Kto objekte mund t ken karakteristikat e tyre,
metodat dhe mandej tregojn aktivizimin e ngjarjeve t serverit gjat prpunimit t
faqes n ASP.NET. Dikur kur prpunimi mbaron, kontrollat shfaqin daljet e tyre n
form t HTML-s (ose shpeshher ato dizajnohen pr tu shfaqur) dhe drgojn te
browseri pjesn e rezultatit t faqes.

7

Rndsia dhe kuptimi i HTML Server Kontrollave
Nj nga shum detyrat e zakonshme t zhvilluesit t Web-it do t jet
zhvillimi dhe koleksionimi i informatave t cilat postohen apo thirren nga
shfrytzuesi. Kjo thjesht mund t shpjegohet kur ne marrim emrin, e-mailin nga
shfrytzuesi ose prfshirja e disa informacioneve si adresa, numri i telefonit,
fjalkalimi (password), faksi, karta e kreditit etj. Sidoqoft informacionet q dshironi
ti mbledhni, prpunimi i tyre nuk mund t kryhet brenda kufijve t HTML-s vetm
n browser. Prandaj, duhet ti postojm (drgojm) informacionet deri te Web
Serveri pr prpunim. S pari Web Serveri do t pranoj informacionin e krkuar, do
ti kryej ato pun t nevojshme dhe do tia kthej shfrytzuesit.
Informacionet transmetohen prmes Web faqes nprmjet formave dhe n
HTML. N kto informacione ka tagje speciale pr specifikimin e sjelljeve t tyre.
HTML format prmbajn nj grup me HTML kontrolla, si jan textbox-et, checkbox-
et etj., t gjitha kto ndihmojn pr bartjen e informacionit nga shfrytzuesi deri te
serveri. Pr kto qllime, ASP.NET ka futur kontrollat speciale pr mnyrn e sjelljes
me format.
HTML elementet brenda nj fajlli ASP.NET jan trajtuar si tekst literal dhe
jan programatikisht t paarritshme te zhvilluesi i faqeve. Q t jen HTML elementet
t arritshme duhet trajtuar ato si server kontrolla, me futjen e atributit
runat=server. Atributi unik id ju lejon ti referoheni n mnyr t
programueshme kontrollave. Atributet jan prdorur pr t deklaruar karakteristikat e
argumenteve dhe ngjarjet q lidhin nj instanc t server kontrollave.
Ajo q sht shum me rndsi, q duhet ta kemi parasysh sht se HTML
server kontrollat duhet t vendosen n mes tagjeve <form> dhe </form> duke e
prfshir atributin runat=server . N ASP.NET duhet q do HTML server
kontroll t mbyllet me shenjn / ose me tagun mbylls t plot. Nse HTML
elementet nuk jan t mbyllura si duhet ASP.NET nuk e miraton at element me ka
elementi do t injorohet ose do t shfaqet nj gabim i kompajlimit, varsisht nga ajo
se si sht krijuar.
Nj instanc t ndonj kontrolle t formave mund t krijohet n tri rrug t
veanta:
Si nj element n HTML dokument;
N mjedisin RAD (Rapid Application Development) i cili lejon q t
merren kontrollat dhe t barten n faqe ( me drag-and-drop) dhe
N mnyr t programueshme n kod duke deklaruar bllokun ose kodin
prapa fajllit.
Kto kontrolla jan t prfshira n namespace-in
System.Web.Ul.HtmlControls. Duhet cekur se do klas sht nj nnklas e
trashguar nga nj klas m e lart. Klasa HtmlControls sht nnklas e klass UI e
kjo sht nnklas e klass Web , e gjith kjo sht nj hierarki deri te klasa
themelore (bazike). do her namespace-i sht deri te pika e fundit, ku fillon klasa e
fundit. N rastin ton namespace-i sht System.Web.Ul. Namespace-at mund t
kuptohen si nj kontejner i klasve.
Nj hierarki e klasve t HTML kontrollave duket si n vijim:



8




Figura 2. Hierarkia e HTML Server Kontrollave









9


Figura 3. Tipi i kontrollave me HTML tagjet korresponduese

Vrejtje: Cekim edhe njher se brenda do tagu t kontrollave duhet t shnohet
atributi runat=server.

N vazhdim do t definojm seciln kontroll me radh duke u munduar ti
shpjegojm edhe prmes nj shembulli t thjesht do kontroll.

Kontrolla HTMLAnchor
Kontrolla HTMLAnchor prdoret pr t kontrolluar elementin <a>. N
HTML, elementi <a> prdoret pr t krijuar nj hiperlidhje. Hiperlidhjet shrbejn
pr tu lidhur me ndonj lokacion n kuadr t Web faqes tuaj ose ndonj Web faqe
krejtsisht tjetr. Kontrolla HTMLAnchor duhet t jet mir e formuar me hapjen e
tagut <a> dhe mbylljen e tagut </a>.
Kjo kontroll e serverit e zakonshme sht shfrytzuar pr t modifikuar
dinamikisht atributet dhe karakteristikat e elementit <a>, dhe ngjarjet e kontrolls pr
t gjeneruar kontrolln HTMLAnchor dinamikisht.

10

Shembulli 1:
N kt shembull kemi deklaruar dy kontrolla HTMLAnchor n nj fajll .asp, ku
njra prej lidhjeve na lidh me lokacionin n kuadr t Webit ton i cili lokacion
ndodhet n disk, ndrsa tjetra na lidh me nj Web faqe tjetr (n rastin ton me
www.hotmail.com), e gjith kjo sht kryer duke e ekzekutuar subrutinn n
Web server. Funksioni thirret prmes vlers unike Id e cila sht e vendosur
n elementin <a>. Kodi pr kt shembull do t jet:

<script runat="server"> <!--program i skriptuar si pjes e serverit-->
Sub Page_Load <!--sub rutina q do t ekzekutohet n Web
server-->
linku1.HRef="http://www.hotmail.com" <!--lidhja e par me faqen e
hotmailit-->
linku1.Target="_blank"
linku1.Title="hotmail" <!--titulli i linkut t par "hotmail-->
linku2.HRef="E:\Ardi.htm" <!--lidhja e dyt me nj faqe n disk-->
linku2.Target="_blank"
linku2.Title="faqjaime"
End Sub <!--fundi i subrutins -->
</script>
<html>
<body>
<form runat="server"> <!--fillimi i forms duke specifikuar se sht
pjes e serverit-->
<a id="linku1" runat="server">Visitoni faqen www.hotmail.com!</a> <!-
-deklarimi i elementit <a> duke i ndar vlern unike n vetin "id me
qllim t thirrjes s funksionit pr ekzekutim q ka emr t njejt-->
<br/>
<a id="linku2" runat="server">Visitoni faqen kryesore!</a> <!--
elementit <a> i ndajm n vetin "id vlern unike pr ta thirrur
funksionin me emrin linku2 dhe pr ta ekzekutuar at-->
</form> <!--mbyllja e forms-->
</body>
</html>



Figura 4. Pamja pas ekzekutimit, q prmban kontrolln Anchor

11
Pas ekzekutimit t programit fitohet rezultati si n fig 4. Nse shtypet linku i
par do t hapet faqja e hotmailit, prderisa linku i dyt e hap nj faqe n kuadr t
Webit ton, q gjindet n diskun e kompjuterit ton.

Kontrolla HTMLButton
Kontrolla HTMLButton prdoret pr t kontrolluar elementin <button>. Me
prdorimin e ksaj kontrolle mund t krijohet nj buton shtyps pr t aktivizuar nj
ngjarje me serverclick, pr t specifikuar aksionin kur kontrolla (butoni ) klikohet.
N vazhdim tregohen disa rrug t mundshme pr t modifikuar pamjen e
kontrolls HTMLButton.
Mund t fusim atributin style n tagun e hapur t elementit, pr ta
prcaktuar gjatsin, gjersin, ngjyrn e butonit etj.
Mund t prfshijm edhe elemente formatuese prreth tekstit t cilin e fusim
brenda tagjeve (<button> teksti</button>) t kontrolls.
Mund t prfshijm imazhe ( image ) brenda elementit t butonit dhe
Mund t fusim nj ngjarje n kontrolln HTMLButton

Shembulli 2:
N vazhdim po e paraqesim nj shembull t thjesht me dy butone, ku me rastin
e shtypjes s butonit t par fitojm mesazhin Ju klikuat ne butonin me
tekst! ndrsa kur shtypim butonin e dyt fitojm mesazhin Ju klikuat ne
butonin me fotografi!. Kodi pr kt shembull do t jet:


<script runat="server">
Sub butoni1(Source As Object, e As EventArgs) <!--subrutina pr butonin e par-
->
p1.InnerHtml="Ju klikuat n butonin me tekst!" End Sub
Sub butoni2(Source As Object, e As EventArgs) <!--subrutina pr butonin e dyt-
->
p1.InnerHtml="Ju klikuat n butonin me fotografi! End Sub
</script>
<html>
<body>
<form runat="server">
<button id="b1" OnServerClick="butoni1" style="background-color:
#e6e6fa; height=25;width:100" runat="server"> <!--kontrolla "button i
deklaruar pr ta thirr me nj klik mbi t subrutinn me emrin "butoni1, ndrsa
vetia "id sht unike dhe n kt rast i kemi caktuar vlern "b1-->
Butoni tekstual!
</button>
<button id="b2" OnServerClick="butoni2" style="background-color:
#fff0f5; height=25;width:100" runat="server"> <img
src="file:///E:\asp.foto\smiley.jpg" height="18" width="70"> <!--n vend t
tekstit ktu mbi buton do t paraqitet nj imazh-->
</button>
<p id="p1" runat="server" /><!-elementi prmes s cils subrutina e
shkruan mesazhin-->
</form>
</body>
</html>

12
pas shtypjes s butonit t par rezultati do t fitohet si n figuren 5, ndrsa me
shtypjen e butonit t dyt rezultati do t fitohet si n figuren 6.


Figura 5. Pas shtypjes s butonit t par


Figura 6. Pas klikimit mbi butonin e dyt

13

Kontrolla HTMLForm
Kontrolla HTMLForm prdoret pr t kontrolluar elementin <form>. N
HTML, elementi <form> prdoret pr t krijuar nj form. Kontrolla HTMLForm
prdoret pr paraqitjen e t dhnave t nj entiteti, ku mundsohet paraqitja, vendosja,
thirrja dhe ndryshimi i t dhnave. Kjo kontroll ka dy atribute: Method dhe Action.
Atributit Method i bashkangjesim dy vetit POST dhe GET. Prmes vetis
POST ne mund t drgojm parametra n baz t t dhnave ndrsa prmes vetis
GET krkojm ndonj prej parametrave t vendosur n baz t t dhnave. T cekim
se ASP.NET si t nnkuptueshme e ka vetin POST.
Atributi Action specifikon faqen q do t thirret pr drgimin e t dhnave. Ky
atribut nuk mund t ndryshohet, si pasoj, ne mund t thrrasim vetm faqen ton. Ky
atribut paraqet nj URL q definon ku t drgohen t dhnat kur forma submitohet
(submit).

Shembull 3:
N kt shembull kemi prdor nj HTMLInputText kontoll, nj
HTMLInputButton kontroll, dhe nj HTMLGeneric kontroll n fajll t .aspx. T
gjitha kontrollat jan t futura brenda kontrolls HTMLForm. Kur butoni
submit shtypet, do t ekzekutohet subrutina. Submit subrutina e shkruan
mesazhin pr mirseardhje dhe paraqet vlern e shnuar n tekst boks prmes
elementit p. Kodi pr kt shembull do t jet:

<script runat="server">
Sub submitimi(sender As Object, e as EventArgs)
If emri.value<>"" then
p1.InnerHtml="Mirserdht " & name.value & "!" <!--mesazhi q do t
shfaqet pas shtypjes s butonit si dhe vlera q shnohet n tekst boks-->
End if
End Sub
</script>
<html>
<body>
<form id="Form1" action=WebForm1.aspx runat="server">
Shnoni emrin tuaj:
<input id="emri" type="text" size="30" runat="server"/>
<!--kontrolla input me tip tekstual pr futjen e tekstit nga shfrytzuesi-->
<br /><br />
<input type="submit"value="Submit" OnServerClick="submitimi"
runat="server"/> <!--Kontrolla input me tipin submitues, si dhe me ngjarjen
"onserverclick pr ta lidhur me subrutinen "submitimi. Vlera q do t paraqitet
mbi kt buton do t ket vlern "submit-->
<p id="p1" runat="server"/> <!--elementi prmes s cils subrutina e shkruan
mesazhin -->
</form>
</body>
</html>


Pas ekzekutimit t programit fitohet rezultati si n figurn 7.

14













Figura 7. Pas shkruarjes s emrit dhe shtypjes s butonit

Kontrolla HTMLGeneric
Kontrolla HTMLGeneric sht prdorur pr t kontrolluar elementet tjera t
HTML-s, t cilat nuk jan t specifikuara nga HTML kontrollat e serverit, si jan
<body>, <span>, <div>, <font>, <p> etj. Kontrollat duhet futur brenda kontrolls
HTMLForm. Prmes ktij elementi subrutina e ekzekuton p.sh mesazhin pr ta
paraqitur n ekran. Nga shembulli i msiprm shihet rasti i ktyre kontrollave ku ishte
prdorur elementi <p>.

Kontrolla HTMLSelect
Kontrolla HTMLSelect prdoret pr t kontrolluar elementin <select>. Ajo
fillon me tagun <select> dhe duhet t mbyllet me tagun </select>. Pr t prcaktuar
vlern e zgjedhur nga nj selektim i veant, s pari e shfrytzojm vetin SelectItem

15
pr t marr nj indeks t entitetit t zgjedhur. N mes t tagjeve <select> dhe
</select>, mund t jen disa tagje <option>. Vetia id e identifikon n mnyr
unike kontrolln HTMLSelect, ndrsa vetia value brenda tagjeve <option> e
identifikon n mnyr jounike vlern e zgjedhur n HTMLSelect kontroll.






Shembull 4:
N kt shembull ne kemi deklaruar nj HTMLImage dhe nj HTMLSelect
kontroll, edhe ktu duhet t kemi parasysh q kto kontrolla duhet futur
brenda HTMLForm kontrolls. Ne do t modifikojm nj imazh prmes vetis
SRC e cila do t varet nga zgjedhja e shfrytzuesit. Vlera e zgjedhur n
HTMLSelect kontroll prcakton cili imazh t paraqitet. Kodi pr kt
shembull do t jet:
<script runat="server">
Sub zgjedh_imazhin(Sender As Object, e As EventArgs) imazhi1.Src =
"/images/" & zgjedhja1.Value
End Sub
</script>
<html>
<body>
<form runat="server">
<select id="zgjedhja1" runat="server"> <!--elementi select me vetin unike "id
zgjedhja1 q do t thirret tek subrutina pr ta shfaqur njrn prej opcioneve -->
<option value="smiley.gif">Qesharake</option> <!--opcioni 1 gjat
selektimit-->
<option value="angry.gif">Zemruar</option> <!--opcioni 2 -->
<option value="stickman.gif">Njerishkopar</option><!--opcioni 3 -->
</select>
<input type="submit" runat="server" value="Shfaq imazhin"
OnServerClick="zgjedh_imazhin"> <br /><br />
<img id="imazhi1" src="/imazhe/smiley.gif" runat="server" idth=20
height=15 border=1 /> <!--kontrolla HTMLImage q ka vlern unike "id me
qllim q t thirret imazhi gjat ekzekutimit t subrutins nga kontrolla
HTMLButton-->
</form></body>
</html>

Kontrolla HTMLTextArea
Kontrolla HTMLTextArea prdoret pr t kontrolluar elementin <textarea>.
Ajo ka tagun e hapjes <textarea> dhe tagun e mbylljes </textarea>. N HTML,
elementi <textarea> prdoret pr t krijuar nj hapsir (vend, siprfaqe) pr shnim
t tekstit apo thn m mir ky element mundson nj tekst boks shum linjsh
(vijsh). Dimensionet e ktij tekstboksi jan t kontrolluara nga rreshtat rows dhe
numri i kolonave cols. Me cols prcaktohet gjersia e kontrolls, prderisa me
rows prcaktohet gjatsia (lartsia) e kontrolls. Kjo kontroll prmban ngjarjen
Serverchange e cila shkaktohet kur ndryshon prmbajtja e textarea_s, me kt
rast do t ekzekutohet funksioni me emr t njejt.

16
Shembull 5:
N kt shembull ne kemi deklaruar nj kontroll HTMLTextArea, nj
HTMLInputButton kontroll dhe nj HTMLGeneric kontroll n nj fajll t
.aspx. Gjithashtu ktu duhet t kemi parasysh se kto kontolla duhet t
shnohen brenda kontrolls HTMLForm. Kur butoni submit shtypet ather
do t ekzekutohet subrutina , dhe do t shfaq tekstin Ju shkruat: dhe
tekstin q keni shnuar n teksthapsir prmes elementit p .Kodi pr kt
shembull do t jet:

<script runat="server">
Sub submitimi(sender As Object, e As EventArgs)
p1.InnerHtml = "<b>Ju shkruajtt:</b> " & teksthapsira1.Value <!--ky
mesazh "Ju shkruajtt s bashku me vlern e marrur prmes tekst hapsirs do
t paraqitet prmes elementit <p> n ekranin tuaj-->
End Sub
</script>
<html>
<body>
<form runat="server">
<br>Shkruaj ca tekst:<br/>
<textarea id="teksthapsira1" cols="35" rows="6" runat="server"/> <!--kontrolla
textarea me vler unike "id dhe me 35 kolona dhe 6 rreshta, kuptohet kontroll
e serverit-->
<input type="submit" value="Shtyp" OnServerClick="submitimi"
runat="server"/> <!--kontrolla HTMLInputButon pr ta paraqitur nj buton hyrs
(submitues) e cila do ta ekzekutoj "subrutinen me nj klik mbi t-->
<p id="p1" runat="server"/> <!--kontrolla HTMLGeneric-->
</form>
</body>
</html>
Kontrolla HTMLImage
Kontrolla HTMLImage prdoret pr t kontrolluar elementin <img>. Kjo
kontroll nuk ka tag mbylls dhe gjithashtu duhet t shnohet n mes tagjeve <form>
dhe </form>. Brenda ksaj kontrolle duhet t vendoset atributi runat=server pr
t treguar se sht kontroll e serverit. N HTML, elementi <img> prdoret pr t
paraqitur nj imazh. Kjo kontroll mundson (lejon) q dinamikisht t vendosim dhe
t rigjejm burimin e imazhit, gjersin dhe lartsin e tij, gjersin e skajeve,
prshkrimet e shkurtra t imazhit dhe pozitn se ku do t gjendet imazhi, prmes
vetive src, width, height, border, alt dhe align.
do imazh i vendosur duhet t ket prapashtesn: .jpg, .gif, .bmp etj. Atributi id
duhet t ket vler unike q ti referohet kodit n subrutin.
Prmes atributit Align ne vendosim imazhin n:
Top (pjesn e eprme)
Middle (n mes-qendr)
Bottom (pjesn e fundme)
Left (pjesn e majt)
Right (pjesn e djatht)
Atributi Alt jep nj prshkrim t shkurtr t imazhit kur vendoset kursori mbi imazh.
Atributi Border tregon gjersin e skajeve pr rreth imazhit.
Vetia Height tregon gjatsin prderisa ajo Width tregon gjrsin.

17
Vetia SRC sht shum e rndsishme dhe tregon URL e imazhit q duhet t
paraqitet, pra burimin e fajllit t imazhit.
Shembulli 4*: Nj shembull ku sht prdorur kontrolla HTMLImage sht
shembulli 4.

Kontrolla HTMLInputButton
Kontrolla HTMLInputButton prdoret pr t kontrolluar elementet <input
type=button>, <input type=submit> dhe <input type=reset>. N HTML,
kto elemente jan prdorur pr t krijuar nj buton pr komand, nj buton pr
drgim dhe nj buton pr fshirje. Kur shfrytzuesi prdor nj klik mbi kontrolln
HTMLInputButton ai drgon informacionin deri te serveri pr prpunim. Pastaj
prgjigja kthehet prapa deri te browseri juaj nga serveri. Duhet theksuar se me
klikimin e butonit reset nuk fshihen t gjitha kontrollat hyrse n faqe por kthehen
n gjendjen origjinale, si n momentin kur faqja sht hapur. Kur prdoret lidhja n
mes kontrollave HTMLInputText dhe HTMLTextArea, mund t krijohet nj faqe me
hyrje t vrtetuar (pasword) ose hyrje pr vrtetim t shfrytzuesit (user name), e cila
do t prpunohet nga serveri. Edhe kjo kontroll nuk ka tag mbylls. Prmes vetis
type deklarohet se far tipi sht kontrolla button, submit ose reset, ndrsa
prmes vetis value shnohet vlera q dshirohet t paraqitet mbi buton.
Shembull 6:
N kt shembull po e deklarojm nj HTMLInputText kontroll, dy kontrolla
HTMLInputButton dhe nj HTMLGeneric kontroll. Kur butoni submit
shtypet ather do t ekzekutohet subrutina, ndrsa kur shtypet butoni reset
do t pastrohet teksti i shkruar n kontrolln InputText. Submit subrutina do t
shkruaj mesazhin e mirseardhjes prmes elementit p. Kodi pr kt shembull
do t jet:

<script runat="server">
Sub submit(sender As Object, e as EventArgs) <!--submit subrutina-->
if emri.value<>"" then <!--ketu kemi nj degzim q thot se nse n kontrolln
InputText ka nj vler, paraqite mesazhin "Mirsevjen s bashku me at vler
n ekran-->
p1.InnerHtml="Miresevjen " & emri.value & "!"
end if
End Sub
</script>
<html>
<body>
<form runat="server">
Shenoni emrin tuaj: <input id="emri" type="text" size="30" runat="server" />
<br /><br />
<input type="submit" value="Submit" OnServerClick="submit" runat="server"
/>
<!--kontrolla InputButton me tipin "submit, me nj klik mbi kt buton do t
ekzekutohet subrutina me emrin submit-->
<input type=reset value=Pastro runat=server/> <!--kontrolla
HTMLInputButton me tipin "reset, e cila do ta pastroj fushn me tekst dhe do ta
kthej n gjendjen e nnkuptueshme-->
<p id="p1" runat="server" /> <!--kontrolla HTMLGeneric-->
</form>

18
</body>
</html>









Figura 8. Kontrolla HtmlInputButton

Kontrolla HTMLInputCheckBox
Kontrolla HTMLInputCheckBox prdoret pr t kontrolluar elementin <input
type=checkbox>. N HTML, ky element prdoret pr t krijuar nj buton
kontrollues. Kjo kontroll mundson zgjedhjen e disa opcioneve njkohsisht.
Mirpo, kur klikojm mbi nj checkbox kontroll, e dhna nuk postohet
(drgohet) deri tek serveri, gjendja e checkbox-it drgohet tek serveri pr
prpunim ather kur prdorim kontrolln si sht HTMLInputButton. Edhe kjo
kontroll nuk ka tag mbylls. Prmes vetis name q posedon kjo kontroll, futen
vlerat identike pr elementin, ndrsa prmes vetis type specifikohet se kemi t
bjm me vetin checkbox. Kjo kontroll prfshin ngjarjen serverchange e cila
shfaqet kur gjendja e kontolls ndryshohet.
Shembull:
Shembull pr kt kontroll do ta paraqesim m von s bashku me disa
kontrolla hyrse (input).

Kontrolla HTMLInputRadioButton
Kontrolla HTMLRadioButton prdoret pr t kontrolluar elementin <input
type=radiobutton>. N HTML, ky element prdoret pr t krijuar nj buton
kontrollues. Mund t krijohet grup i kontrollave duke futur n vetin name vlern e

19
njejt pr t gjith, ndrsa pr dallim nga kontrolla HTMLCheckBox ktu ka mundsi
t zgjedhet vetm nj opcion. Gjithashtu ktu nuk mund t postohen t dhnat n
server vetm nse zgjedhet nj opcion, por kjo mund t bhet prmes kontrollave
HTMLButton, HTMLInputButton ose HTMLInputImage. Edhe ktu mund t
shfrytzohet ngjarja serverchange e cila shfaqet kur ndryshon gjendja e
radiobutonit.

Shembulli 7:
N kt shembull kemi paraqitur tri kontrolla HTMLInputRadioButton, nj
HTMLGeneric dhe nj HTMLInputButton pr zgjedhjen e njrs nga ngjyrat
q e preferoni dhe keni mundsi t zgjidhni vetm njrn nga ngjyrat. Pas
shtypjes s butonit submit tek ather do t submitohen t dhnat (drgohen
t dhnat tek serveri) sepse ather do t ekzekutohet subrutina. Kodi pr kt
shembull do t jet:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
if r1.Checked=True then <!--nse zgjedhet vlera e par q ka vlern unike "r1
do t ekzekutohet kodi tek elementi "p1-->
p1.InnerHtml=" Ngjyra e preferuar sht e kuqe"
else
if r2.Checked=True then <!--nse zgjedhet vlera e dyt q ka vlern unike "r2
do t ekzekutohet kodi me elementi "p1-->
p1.InnerHtml="Ngjyra e preferuar sht e gjelbrt"
else
if r3.Checked=True then <!--nse zgjedhet vlera e tret q ka vlern unike
"r3 do t ekzekutohet kodi tek elementi "p1 si n vazhdim-->
p1.InnerHtml="Ngjyra e preferuar sht e kaltrta"
end if
end if
end if
End Sub
</script>
<html>
<body>
<form runat="server">
<p>Select your favorite color:
<br />
<input id="r1" name="col" type="radio" runat="server">Kuqe</input>
<br />
<input id="r2" name="col" type="radio" runat="server">Gjelbrt</input>
<br />
<input id="r3" name="col" type="radio" runat="server">Kaltr</input>
<br /> <!--kontrollat input q kan vler t njejt n vetin name ndrsa vler
unike n vetin "id dhe jan deklaruar se jan kontrolla t serverit-->
<input type="button" value="Submit" OnServerClick="submit" runat="server"/>
<p id="p1" runat="server" />
</form>
</body>
</html>

20


Kontrolla HTMLInputText
Kontrolla HTMLInputText prdoret pr t kontrolluar elementet <input
type=text> dhe <input type=password>. N HTML, kto kontrolla jan
prdor pr t krijuar nj fush me tekst dhe me fjalkalim (pasword). Kto kontrolla
lejojn pr t krijuar nj vij t veant tekstboksi pr t marr nj tekst hyrs nga
shfrytzuesi,

ndrsa kur vetis type i ndajm vlern password, ather tekstin q e fut
shfrytzuesi do t jet i maskuar. Mund t kontrollohet numri i karakterve duke e
futur vetin maxlength (numri maksimal i karaktereve). Me vetin size
kontrollohet gjersia e tekstboks-it ndrsa vetia value i jep nj vler t
nnkuptueshme tekst boks-it. Atributi id paraqet vlern unike pr elementin ndrsa
ai runat=server specifikon se elementi sht nj kontroll e serverit.

Shembulli:
Shembull pr kt kontroll kemi paraqitur n shum shembuj t mhershm
dhe do t paraqesim edhe n shembujt e m vonshm.

Kontrolla HTMLInputImage
Kontrolla HTMLInputImage prdoret pr t kontrolluar elementin <input
type=image>. N HTML, ky element prdoret pr t krijuar nj buton hyrs duke
prdorur nj imazh, n vend t butonit t zakonshm shtyps. Edhe kjo kontroll nuk
ka tagun mbylls. Prmes vetis Align tregohet rreshtimi i imazhit, prmes vetis
Alt ipet prshkrim i shkurtr kur vendoset mausi mbi imazh, prmes vetis
borders caktohet gjrsia e skajeve t imazhit. Ngjarja q prdor kjo kontroll
sht OnServerClick, me ka ekzekutohet funksioni q posedon at emr kur
klikohet mbi imazh. Vetia SRC tregon vendin (burimin) ku gjendet imazhi.

Shembull:
Shembull pr kt kontroll do ta paraqesim m von s bashku me disa
kontrolla hyrse (input).

Kontrolla HTMLInputFile
Kontrolla HTMLInputFile prdoret pr t kontrolluar elementin <input
type=file>. N HTML, ky element prdoret pr t br nj upload fajllit n
server. Vlen t ceket se nuk ka tag mbylls kjo kontroll. Kjo kontroll shfrytzohet
pr t dizajnuar leht faqen e cila lejon shfrytzuesin t uplodoj fajlle tekstuale ose
binare nga browseri te direktoriumi q i caktohet Web Server-it.

21

Shembulli 8:
N kt shembull kemi deklaruar nj kontroll HTMLInputFile, nj
HTMLInputButton dhe tri kontrolla HTMLGeneric n nj fajll .aspx. Kur
butoni drgues shtypet ather do t ekzekutohet subrutina. Emri i fajllit dhe
tipi i fajllit do t shfaqen n faqe, prderisa fajlli vetveten e uplodon n
direktoriumin C t serverit. Kodi pr kt shembull do t jet:

<script runat="server">
Sub submit(Sender as Object, e as EventArgs) <!--kur ekzekutohet kjo subrutin
do t shfaqet emri i fajllit dhe kapaciteti i tij -->
emrif.InnerHtml=MyFile.PostedFile.Filename
gjatsiK.InnerHtml=MyFile.PostedFile.ContentLength
Fajlliim.PostedFile.SaveAs("c:\uploadfile.txt")
End Sub
</script>
<html>
<body>
<form method="post"
enctype="multipart/form-data" runat="server"> <!--Ne kete rast shihet q
sht prdorur vetia "method me vlern post q do t thot fajlli t postohet deri
te serveri-->
<p>
Zgjedh fajllin pr t uploduar n server:
<input id="Fajlliim" type="file" size="40" runat="server"> <!--kontrolla
HTMLInlputFile pr t treguar serverit q kemi t bjm me fajll-->
</p>
<p>
<input type="submit" value="Uplad!" OnServerclick="submit"
runat="server">
</p>
<p>
<div runat="server"> <!--kontroll HTMLGeneric-->
Emri I fajllit: <span id="emrif" runat="server"/><br />
Kapaciteti I fajllit: <span id="gjatsiK" runat="server"/> bajta
</div>
</p>
</form>
</body>
</html>

Kontrolla HTMLInputHidden
Kontrolla HTMLInputHidden prdoret pr t kontrolluar elementin <input
type=hidden>. N HTML, kjo kontroll prdoret pr t krijuar nj fush hyrse t
fshehur. Kjo kontroll sht pjes e forms, por ajo asnjher nuk shfaqet n form.
Gjithashtu kjo kontroll nuk prmban tag mbylls. Atributi id sht unik dhe
atributi runat=server tregon se kontrolla sht e serverit. Kjo kontroll e ka
ngjarjen serverchange kur prmbajtja e elementit t ndryshohet.




22

Shembulli 9:
N kt shembull ne kemi deklaruar disa kontrolla por ka sht me rndsi n
kt shembull kemi deklaruar kontrolln HTMLInputHidden. N kt rast kur
shtypet butoni submitues do t ekzekutohet subrutina. Subrutina me emrin
submit vlern e fajllit t fshehur e barazon me vlern e marrur nga fusha,
dhe kur futet vlera pr her t dyt n fush ajo e shfaq vlern e par t
fshehur prmes elementit p. Kodi pr kt shembull do t jet:

<script runat="server">
Sub submit(Source As Object, e As EventArgs) <!--subrutina me emrin submit q
do t ekzekutohet pasi t klikohet mbi butonin "submitues-->
hidden1.Value=string1.Value <!--deklarimi i variabls hidden1 si string
variabl-


p1.InnerHtml="Vlera e fshehur= " + hidden1.Value <!--do t shfaqet mesazhi
"vlera e fshehur = " plus edhe vlera e par e fshehur-->
End Sub
</script>
<html>
<body>
<form runat="server">
Shkruaj ca tekst: <input id="string1" type="text" size="25" runat="server" />
<input type="submit" value="Submit" OnServerClick="submit" runat="server"
/>
<input id="hidden1" type="hidden" runat="server" /> <!--kontrolla me tipin
"hidden e cila n kt rast e fsheh vlern e shkruar n kontrolln
HTMLInputText->
<p id="p1" runat="server" />
</form>
</body>
</html>
Kontrolla HTMLTable
Kontrolla HTMLTable prdoret pr t kontrolluar elementin <table>. N
HTML, ky element prdoret pr t krijuar tabela. Nj kontroll e till sht e ndrtuar
nga rows (rreshtat) dhe cells (kolonat). Kontrolla HTMLTable lejon gjithashtu t
modifikohet pamja e tabels. Me vetin BGColor mund t specifikohet ngjyra e
tabels, me vetin Border gjersia e skajeve t tabels, me vetit BorderColor
ngjyra e skajeve si dhe gjersin dhe gjatsin e tabels me vetit width dhe
height.
Duke prdorur vetit Cellspacing dhe Cellpadding mund t kontrollohet
hapsira n mes kolonave dhe hapsira n mes prmbajtjes s kolons dhe skajeve t
kolons

Shembull:
Shembull pr kt kontroll do ta paraqesim m von s bashku me disa
kontrolla tjera.

23

Kontrolla HTMLTableRow
Kontrolla HTMLTableRow prdoret pr t kontrolluar elementin <tr>. N
HTML, ky element prdoret pr t krijuar rreshta t tabels. Duke prdorur vetin
BgColor kontrollohet ngjyra e nj rreshti, me vetin BorderColor kontrollohet
ngjyra e skajeve t rreshtit si dhe gjatsia dhe gjersia prmes vetive Height dhe
Width. Ktu vlen t ceket se kontrolla ka edhe tagun mbylls </tr>. Rreshtimi
vertikal dhe horizontal i prmbajtjes s kolons n rresht kontrollohet me prdorimin
e vetive Align dhe VAlign.

Shembull:
Shembull pr kt kontroll do ta paraqesim m von s bashku me disa
kontrolla tjera.


Kontrolla HTMLTableCell
Kontrolla HTMLTableCell prdoret pr t kontrolluar elementet <td> dhe
<th>. N HTML, kto elemente prdoren pr t krijuar kolonn (ose celulat) e tabels
dhe kokn e celulave t tabels.
Pra elementi <td> prezenton t dhnat e kolons, prderisa elementi <th>
prezenton kokat e kolonave. Prmbajtja e kolons <th> kur shfaqet n tabel gjithher
sht bold (me ngjyr t plot t trash) dhe vlera e saj gjendet n qendr. Prmes
vetis BgColor caktohet ngjyra e kolons, ndrsa ngjyra e skajeve t kolons
caktohet prmes vetis BorderColor. Gjatsia dhe gjersia e kolonave caktohet
prmes vetive height dhe width. Me vetin Colspan paraqitet numri i
kolonave q do ti z hapsira e nj kolone, ndrsa me vetin Rowspan paraqitet
numri i rreshtave q do ti z hapsira e nj kolone.
Shembulli 10:
N kt shembull kemi paraqitur dy HTMLSelect kontrolla dhe kontrollat
HTMLInputTabel, HTMLInputRow dhe HTMLInputCell. Me an t kontrolls
select kemi mundsi t zgjedhim numrin e kolonave dhe rreshtave, q pas
shtypjes s butonit me vlern Paraqite tabelen, do t ekzekutohet subrutina
me emrin submit dhe do t paraqitet tabela. Kodi pr kt shembull do t jet:

<script runat="server">
Sub submit(sender As Object, e As EventArgs)
Dim row,numrows,numcells,j,i <!--deklarimi i variablave-->
row=0 <!--variabls "row i ndahet vlera 0-->
numrows=rows1.Value
numcells=cells1.Value
for j=1 to numrows
Dim r As New HtmlTableRow()
row=row+1
for i=1 to numcells
Dim c As New HtmlTableCell()
c.Controls.Add(New LiteralControl("rreshti " & j & ", kolona " & i))

24

r.Cells.Add(c)
next
t1.Rows.Add(r)
t1.Visible=true
next
End Sub
</script>
<HTML>
<body>
<form runat="server"><p>
Rreshtat e tabeles:
<select id="rows1" runat="server"> <!-kontrolla select, q pas selektimit dhe
submitimit nga butoni do t paraqet numrin e rreshtave-->
<option value="1" >1</option> <!--opcioni i par zgjedhs-->
<option value="2">2</option> <!--opcioni i dyt zgjedhs-->
<option value="3">3</option> <!--opcioni i tret zgjedhs-->
</select>
<br>
Kolonat e tabeles:
<select id="cells1" runat="server">
<option value="1">1</option> <!--opcioni i par zgjedhs-->
<option value="2">2</option> <!--opcioni i dyt zgjedhs-->
<option value="3">3</option> <!--opcioni i tret zgjedhs-->
<option value="4">4</option> <!--opcioni i katrt zgjedhs-->
</select>
<br><br>
<input type="submit" value="Paraqite tabelen" runat="server"
OnServerClick="submit"></p> <!--kontrolla HTMLInputButton, pr submitim t t
dhnave-->
<table id="t1" border="1" runat="server" visible="false">
</table>
</form>
</body>
</HTML>
25

Pjesa e dyt
ASP Server Kontrollat


ASP Server kontrollat njihen edhe si Web kontrolla apo
edhe si Web Form kontrolla. Prandaj, n vazhdim t ksaj
prmbledhjeje do t prdoret termi Web kontrolla, pr t
nnkuptuar se fjala sht pr Server kontrollat. N vazhdim, n
figurn 1, jan paraqitur pothujase t gjitha Web kontrollat e
mundshme. N kt lm, Microsofti ka futur nj numr t
madh Web kontrollash n kuadr t nejmspejsit
(ang.Namespace) System.Web.UI.WebControls.

Kto kontrolla jan prmbledhur n tri kategori kryesore:
Web kontrollat themelore (bazike),
(ang. Basic Web Controls)
Kontrollat e validimit (ang.
Validation Controls) dhe
ListKontrollat pr t dhnat e
kufizuara (Databound ListControls)

Parimisht, t gjitha Web kontrollat e kan prejardhjen nga nj
klas e prgjithshme e quajtur WebControl. Kshtuq, Web
kontrollat e trashgojn t njejtn bashksi t antarve t
klass. Disa nga antart e ksaj klase q m s shumti
prdoren jan:

BackColor, BorderColor, BorderStyle,
BorderWidth, DataBind Enabled, Font,
ForeColor, Height, Page, Parent, Site,
TabIndex, ToolTip, Visible, Init, Load, Unload,
Dispose, ToString, OnInit, OnLoad dhe
OnDataBinding.

Figura 1. Web Form kontrollat (Server kontrollat)
26

Web kontrollat themelore (Basic Web Controls)
N tabeln n vijim (tabela 1), n pika t shkurtra jan shpjeguar disa nga
funksionet e Web kontrollave m fundamentale (bazike). Disa nga kto kontrolla,
sillen pothuajse ngjashm n funksionet q kryejn. P.sh. prdorimi dhe
karakteristikat e CheckBoxList kontrolls jan pothujase identike me ato t
RadioButtonList kontrolls.
Pr kt arsye, n tabeln vijuese kto kontrolla jan grumbulluar n kt mnyr:

Tabela 1. Web kontrollat themelore

Server Kontrolla Prshkrimi i funksionit

Label Label kontrolla prdoret pr shkruarjen e
teksteve. Mirpo, nse dshirojm t paraqesim
nj tekst statik, ather nuk sht e
domosdoshme t prdorim Label kontrolln, por
n vend t saj mund t prdorim gjuhn HTML.
Prndryshe, Label kontrolln e prdorim
kryesisht kur dshirojm q t bjm
modifikime nprmjet kodit q ekzekutohet n
ann e serverit.

TextBox TextBox kontrolla i mundson
shfrytzuesit q n fushn tekstuale t shkruaj
tekstin e dshiruar. N rastin e prgjithshm,
atributi TextMode i TextBox-it mund t mirret si
SingleLine (d.m.th n fushn tekstuale t
paraqitet vetm nj rresht tekstual), mirpo, kjo
veti mundet gjithashtu edhe t programohet si
MultiLine (me shum se nj rresht n fushn
tekstuale) apo edhe Password (d.m.th, n kt
fush mund t shkruhet edhe fjalkalimi). N
rastin kur prdoret TextBox-i MultiLine,
ather atributi Rows prcakton lartsin e asaj
fushe tekstuale. N qoft se atributi
AutoPostBack sht zgjedhur t jet True,
ather ai gjeneron nj PostBack n ngjarjen
Text_Changed( ) t saj.

Buttons T tre llojet e butonve, funksionet e t
cilve jan shpjeguar m posht, shkaktojn
PostBacks-a kur shfrytzuesi t klikoj mbi to.

27

Button Button kontrollat mund t vendosen
kudo prbrenda ndonj kontrolle poseduese siq
jan DataList-i, DataGrid-i dhe Repeater-i.

LinkButton LinkButton kontrolla bn renderimin e
hiperlinqeve n faqe.

ImageButton ImageButton kontrolla bn t mundur
paraqitjen e imazheve q i prgjigjen klikimeve
t miut. Gjithashtu, kjo kontroll mund t
prdoret si nj hart imazhi. Kjo do t thot se
ne do t jemi n gjendje q saktsisht t
lokalizojm vendin n t cilin ka klikuar
shfrytzuesi.

CheckBox Kjo kontroll i mundson shfrytzuesit t
fut t dhna t tipit Boolean: True ose False apo
Yes ose No.
Atributi Checked (i zgjedhur) i ksaj kontrolle
mund t lidhet me nj fush t datasource-it.
Nga ana tjetr, ngjarja CheckedChanged mund
t prdoret pr AutoPostBack.

ListControls Kto kontrolla rrjedhin prej klass
abstrakte ListControl.

CheckBoxList Kto kontrolla zakonisht shpjegohen n
kuadr t kontrollave t validimit dhe si t tilla
mbeten pr shpjegime n kuadr t ktij lmi !!
DropDownList
ListBox
RadioButtonList

HyperLink Kryesisht paraqitet n form teksti, tekst
ky i cili mund t modifikohet n kuadr t
atributit Text (ang.Text property). Poashtu,
hiperlinku mundet t paraqitet edhe n form t
imazhit i cili caktohet duke prdorur atributin
ImageUrl (ang. ImageUrl property). Nga ana
tjetr, nse n t njejtn koh merren n
prdorim t dyja nga kto atribute (veti), ather,
si veti e nnkuptueshme (default), do t paraqitet
vetia ImageUrl. Mirpo, nse imazhi nuk
ekziston (mund t ndodh pr shkak se sht
marr

28
gabimisht lokacioni ku ndodhet fajlli imazh apo
pr ndonj arsye tjetr!), ather, n vend t
imazhit do t paraqitet vetm pjesa e tekstit e
caktuar me atributin Text.

Image Image kontrolla prdoret zakonisht pr
vendosjen e imazheve n web faqe. Atributi
ImageUrl tregon shtekun (lokacionin) e vend-
ndodhjes s fajllit imazh. N rastin kur fajlli
imazh mungon n at lokacion, ka mundsi q t
caktohet vetm teksti i cili do t paraqitet n
vend t tij, tekst ky i cili modifikohet duke
prdorur atributin AlternateText (ose shkurt Alt).
Pra, Image kontrolla bn paraqitjen vetm t
imazheve n faqet e dshiruara. Nse dshirohet
q t aktivizohen edhe klikimet e miut mbi kto
imazhe, ather, n vend t ksaj kontrolle
prdoret kontrolla ImageButton.
Panel Kjo kontroll mund t prdoret n kuadr
t kontrollave tjera, d.m.th. si kontroll e
brendshme e tyre. Kjo kontroll automatikisht
shndrrohet n HTML kod, nprmjet tagut
<div> t HTML-it.


RadioButton Kjo kontroll prdoret pr t krijuar
radio-butona n web faqe. Kta radio-butona
mund t grupohen pr t mundsuar zgjedhje t
ndryshme aty ku ka mundsi t zgjedhim njrn
nga veorit e ndryshme, p.sh. n rastin e gjinis
(M apo F).

Table Kjo kontroll mundson prdorimin e
HTML tabelave n faqe. Tabelat mund t
ndrtohen ashtu q n kuadr t prmbajtjes s
tyre t futen t dhna statike, mirpo nprmjet
kontrolls Table zakonisht bhet futja e t
dhnave me prmbatje dinamike (d.m.th. me
prmbatje n t ciln do t mund t bhen
modifikime apo ndryshime n t ardhmen!).
Mirpo, kto ndryshime apo modifikime
programore shtes n rreshtat apo kolonat e
tabels, nuk ndikojn drejtprsdrejti n kodin
q sht ruajtur n server. Ndryshimet q bhen
n rreshtat apo kolonat e tabels duhet t
rikonstruktohen pas do postimi (ang. post) n
server. N raste t tilla, si alternativa m t mira

29
pr t kryer nj funksion t till (d.m.th. pr t
kryer modifikimet e nevojshme), preferohet t
prdoren kontrollat si DataList-i ose
DataGrid-i.

Xml Kjo kontroll shrben pr transformimin
e fajllave me prapashtesa t ndryshme, n fajlla
me prapashtesn XML.



Shumica e ktyre Web kontrollave themelore t prshkruara m lart
funskionojn pothuajse ngjajshm me HTML Server kontrollat homologe t tyre.
T gjitha Server kontrollat (Web kontrollat) fillojn me prefiksin asp: n tagjet e tyre.
P.sh. tagu pr Web kontrolln Label shkruhet n formn: <asp: Label>. Edhe
prdorimet e tyre jan pothuajse intuitive. Nga ana tjetr, t gjith shembujt e ilustruar
n kuadr t HTML Server kontrollave, munden q me efikasitet t zgjerohen dhe
modifikohen me futjen n prdorim t Web kontrollave.
N vazhdim, me shembuj konkret do t ilustrohet prdorimi i Web kontrollave.

Prdorimi i ngjarjeve t kontrollave
Deri para disa kohsh, kur .NET-i akoma nuk ishte paraqitur n sken,
vizitorit t ndonj Web-faqeje me shembuj, i sht dashur t klikoj n butona t
ndryshm pr t par rezultatin pr zgjedhjen e ndonj liste t caktuar produktesh q
ai ka vendosur ta paraqes para vetes.
Por, ktu parashtrohet pyetja se, far nse do t kishte mundsi t paraqitjes s ksaj
liste produktesh menjher pasi vizitori t ket br zgjedhjen e dshiruar n kuadr t
ndonj kategorie t caktuar produktesh n at list, duke mos patur nevoj q ai t
klikoj n ndonj buton?. Natyrisht se nj gj e till, pr fat t mir sht e mundur!
Pr t par kt mundsi, n vazhdim kemi nj shembull ilustrues, fajllin Products-
Web2.aspx, i cili sht treguar n figurn 2. N kt faqe nuk shihet t ket ndonj
buton mirpo sa m par q shfrytzuesi t zgjedh nj kategori t produkteve,
menjeher paraqitet nj tabel me produktet q hyjn n kuadr t asaj kategorie
(fig.2).
Kodi i mposhtm do t ekzekutohet kur zgjedhet nj kategori n DropDownList (nga
figura e mposhtme).

30


Figura 2. Prdorimi i DropDownList Box-it pr gjenerimin e ngjarjes postback


Private Sub cboCategory_SelectedIndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles cboCategory.SelectedIndexChanged
Dim cnn As New SqlConnection( _
"Data Source=AMD;Initial Catalog=Northwind;Integrated
Security=SSPI")
Dim cmd As SqlCommand
Dim rdr As SqlDataReader

grdProducts.Visible = True
cmd = New SqlCommand( _
"SELECT ProductID [Product ID], ProductName [Product
Name], UnitsInStock [Units in Stock] FROM Products" _
& " WHERE CategoryID = " &
cboCategory.SelectedItem.Value, _
cnn)
cnn.Open()
rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)

grdProducts.DataSource = rdr
grdProducts.DataBind()
rdr.Close()
cnn.Close()
End Sub


Nga kodi shihet se tabela e cila n ann e serverit sht nj DataGrid, do t mbushet
me produktet q i prkasin kategoris s selektuar n DropDownList. sht me
rndsi, t shihet HTML kodi q gjenerohet n ann e klientit dhe q e bn t

31
mundur realizimin e ksaj ngjarjeje. Do t shohim se ASP.NET ka gjeneruar kodin n
javascript n ann e klientit pr ta shkaktuar (ang. to trigger) ngjarjen, dhe njra
kontroll hyrse e cila sht e padukshme e quajtur __EVENTTARGET , prdoret
pr t treguar se cila kontroll e ka shkaktuar ngjarjen. Ndrsa, kontrolla e dyt
__EVENTARGUMENT, e cila poashtu sht e padukshme, prdoret pr ruajtjen e
ndonj argumenti t ngjarjes, e cila n rastin ton sht vetm nj string i zbrazt. N
vazhdim sht paraqitur HTML kodi i cili gjeneron nj DropDownListBox dhe
shkakton ngjarjen postback n rastin kur vlera e indeksit t tij t ndrrohet:

.
<form name="Form1" method="post" action="Products-Web2.aspx"
id="Form1">
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />

<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape")
> -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>
<span id="Label1">Select a Category:</span>
<select name="cboCategory"
onchange="__doPostBack('cboCategory','')" language="javascript"
id="cboCategory">
<option value="1">Beverages</option>
<option value="2">Condiments</option>
<option value="3">Confections</option>
<option value="4">Dairy Products</option>
<option value="5">Grains/Cereals</option>
<option value="6">Meat/Poultry</option>
<option value="7">Produce</option>
<option value="8">Seafood</option>
</select>
<br> </form>

32

Pjesa e tret
Kontrollat Validuese
Kontrollat Validuese si Web Form Kontrolla
Kontrollat Validuese (Validation Controls) s bashku me Kontrollat Bazike
t Webit ( Basic Web Controls) dhe List-Kontrollat Databound ( Databound
ListControls), jan t njohura si Web Form Kontrolla. T gjitha kto Microsofti i
ka prfshir n nj Namespace System.Web.UI.WebControls, kshtu q Web
Kontrollat trashgojn nj bashksi t prbashkt t antarve t klass dhe e
trashgojn klasn me emrin WebControls. Kto kontrolla jan zhvilluar n mnyr
ekskluzive pr validimin e kontrollave hyrse. Kto kontrolla mundsojn t
kontrollohet nj fushe apo kontroll hyrse dhe t paraqitet mesazh gabimi nse sht
e nevojshme. Shfrytzimi i tyre ka nj rndsi shum t madhe pr aplikacionin, duke
e br at shum m efikas, m t leht dhe gjithashtu me t shpejt pr ta
programuar.
Kontrollat Validuese
Kontrollat validuese mundsojn q t validohet apo t kontrollohet nj fush
apo kontroll hyrse dhe t paraqitet mesazh gabimi nse sht e nevojshme. Kto
kontrolla kan ngjashmri t madhe me server kontrollat tjera, me disa metoda dhe
veti shtes. Fillimisht serveri i trajton ato si kontrolla t padukshme, mirpo me futjen
e ndonj t dhne t gabuar ato bhen t dukshme. Shfrytzimi i ktyre kontrollave
validuese bn q aplikacioni t zhvillohet shum m shpejt dhe t jet m efikas.
Me qllim q t kuptohen kto kontrolla m mir, jan shqyrtuar metodat dhe
vetit e tyre n mnyr individuale me disa shembuj mjaft t thjesht.
Tipet e ndryshme t kontrollave validuese jan:

RequiredFieldValidator - kontrollon nse kontrolla hyrse ka
shnim apo vler.
RegularExpressionValidator- prdoret pr prputhje me ndonj
model apo mostr t caktuar.
CompareValidator- kontrollon nse vlera sht e pranueshme ,
duke e krahasuar me ndonj vler t caktuar ose me
vlern e prmbajtjs s ndonj kontrolle tjeter.
RangeValidator - kontrollon se vlera e kontrolls prkatse sht brenda
nj rangu t caktuar.
CustomValidator- prdoret pr validim n raste m komplekse
ValidationSummary - mundson paraqitjen e t gjitha gabimeve n
nj lokacion t caktuar.
Zakonisht secila kontroll validuese e kryen validimin apo kontrollimin, si n
ann e klientit ashtu edhe n ann e serverit. Pveq kontrolls
RequiredFieldValidator, t gjitha kontrollat tjera validuese e trajtojn nj fush t

33

zbrazt si fush valide, pra kontrolla RequiredFieldValidator duhet t prdoret pr
seciln kontroll hyrse q t mos

ket fush t zbrazt. Mund t prdoren m shum se nj kontroll validuese, pr nj
kontroll hyrse, si p.sh. prdorimi i RequiredFieldValidator dhe RangeValidator
sigurojn q hyrja nuk sht e zbazt dhe sht brenda nj rangu t specifikuar.
Kto kontrolla kan shum atribute apo veti, por do ti cekim vetm disa q
jan m t rndsishme:

ErrorMessage - N rast t ndonj gabimi, sistemi e paraqet kt
mesazh ne lokacionin e kontrolls.
Display Kontrolla validuese sht e padukshme, derisa t futet nj e
dhn e padshirueshme apo e gabueshme. N rast t dhnies s
gabueshme sistemi do ta paraqet nj mesazh gabimi. Mekanizmi i
paraqitjes s mesazhit mund t trajtohet n njren nga kto tri mnyra:
static, dinamic dhe none.
Kontrolla RequiredFieldValidator
Kjo kontroll prdoret kur krkohet q ndonj kontroll hyrse t mos ket
fush t zbrazt, pra kur krkohet q fusha t plotsohet patjeter.
N shembullin e mposhtm, shfrytzuesi pritet q ti fus dy vlera. Nse ai nuk
e plotson njren nga kto dhe klikon butonin submit, sistemi do ta paraqes mesazhin
e gabimit. Pr zhvillimin e ktij aplikacioni dhe pr kontrollimin e fushs nuk duhet
kod shtes, gj q lehtson dhe shpejton mjaft programimin. Kur t klikohet butoni
submit, forma do t drgohet tek serveri dhe ai do ta bj validimin automatikisht.
Pamja run-timee aplikacionit sht paraqitur m posht n figur.


Figura 1.

Poashtu edhe kodi i aplikacionit sht paraqitur m posht dhe shihet se sht mjaft
vetprshkrues.

34

<! Required Field Validator >
<html><head</head>
<title>Shembull nga Required Field
validator</title><body>
<form runat="server"><br>Shkruani emrin:
<asp:TextBox id="txtName" rows="1 " width="50"
runat="server"/>
<asp:RequiredFieldValidator id="validTxtName"
runat="server" controlToValidate="txtName"
errorMessage="Emri duhet t shkruhet" display="static">
</asp:RequiredFieldValidator></br>
Ort e puns?
<asp:TextBox id="txtH" width ="30" runat="server"/>
<asp:RequiredFieldValidator id="validTxtH" runat="server"
controlToValidate="txtH" errorMessage="Ort duhet t
shkruhen"
display="static">
</asp:RequiredFieldValidator></br>
<asp:Button id="btnSubmit" runat="server" text="Submit"
/>
</form></body></html>
Kontrolla RegularExpressionValidator
Kontrolla RegularExpressionValidator prdoret pr prputhje me ndonj
model.
Si shembull, supozojm se vlera e fushs or-pune duhet ti ket nj deri n tri shifra.
N kt rast do ta vendosim kontrolln RegularExpressionValidator pas txtH
kontrolls, dhe n atributin RegularExpression do ta specifikojm mostren /d{1,3}.
Kjo do t detyron sistemin q ta paraqes nj mesazh gabimi nse hyrja sht m
shum se 3 shifra. Kodi i ktij aplikacioni sht paraqitur n vijim:

<%@ Page Language="VB" Debug="true" %>
<html><head</head><body>
<form runat="server"><br>
Shkruaj emrin:
<asp:TextBox id="txtName" rows="1 " width="60"
runat="server"/>
<asp:RequiredFieldValidator id="validTxtName"
runat="server"
controlToValidate="txtName" errorMessage="Emri duhet t
shkruhet" display="static">
</asp:RequiredFieldValidator></br>
Ort e puns?
<asp:TextBox id="txtH" width ="40" runat="server" />
<asp:RequiredFieldValidator id="validTxtH" runat="server"
controlToValidate="txtH" errorMessage="Ort duhet t
shkruhen" display="static">
</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator id="regvH"
runat="server" display="static" controlToValidate="txtH"
errorMessage="ort duhet t jen mes 1-3 numrash"
validationExpression="\d{1,3}">

35
</asp:RegularExpressionValidator></br>
<asp:Button id="btnSubmit" runat="server" text="Submit"
/>
</form></body></html>
Kontrolla CompareValidator
Kontrolla CompareValidator krahason nj hyrje me nj vler t specifikuar
ose me vlern e nj kontrolle tjetr. Mundet gjithashtu t prdoret pr t kontrolluar se
e dhna hyrse sht e ndonj tipi t veqant t t dhnave. N shembullin vijues do t
shtojm edhe nj textbox me emrin txtR, ku shfrytzuesi do ta shnoj mimin pr
or. Dhe t supozojm se dshirojm q tipi i t dhnave t ksaj fushe t jet double,
ku kt e bjm me kontrolln validuese CompareValidator. Nse vlera e fushs sht
double, nuk do t na paraqitet mesazhi i gabimit, por n t kundrten do t paraqitet.
Pamja e aplikacionit n kohn e ekzekutimit sht treguar n figurn 2.


Figura 2.

Kodi i ktij aplikacioni sht i njejt me kodin e katrt por vetm duhet ti
shtohet edhe kjo pjes e kodit
<asp:CompareValidator id="comvR" runat="server"
display="static"
controlToValidate="txtR" errorMessage="Rate must be
numeric"
type="Double" operator="DataTypeCheck">
</asp:CompareValidator></br>

Kontrolla RangeValidator
Kontrolla RangeValidator kontrollon nse shnimi n kontrolln hyrse
sht brenda nj rangu t specifikuar. Supozojm se e prdorim nj textboks q

36
paraqet numrin e antarve t familjes dhe ne dshirojm q vlera e ksaj fushe t jet
brenda nj rangu t caktuar p.sh. 0 deri 10. N kt rast e kemi prdorur atributet
minValue dhe maxValue, q i prkasin ksaj kontrolle, pr t prcaktuar intervalin e
vlers s fushs. N figurn 3 sht paraqitur rezultati i aplikacionit, ndrsa m posht
sht paraqitur kodi shtes.



Figura 3


<asp:RangeValidator id="ranvDependents" runat="server"
display="static" controlToValidate="txtDependents"
errorMessage="Must be from 0 to 10"
type="Integer" minimumValue=0 maximumValue=10>
</asp:RangeValidator></br>

37


Kontrolla CustomValidator
N raste m komplekse, nuk mund t prdoren disa kontrolla validuese pr
validim por prdoret kontrolla CustomValidator. Kur prdoret kjo kontroll,
shfrytzuesi mund ti vendos funksionet e veta me qllim q t kryej ndonj detyr t
caktuar. Supozojm q shfrytzuesi do t vendos t dhna n fushn e numrit t
departamentit dhe ky numr duhet t jet i plotpjestueshm me 10. Me an t
kontrolls CustomValidator detyrohet sistemin q t paraqes nj mesazh gabimi nse
vlera e dhn nuk sht e pranueshme. Kodi shtes, n krahasim me kodin e msiprm
te aplikacionit sht paraqitur m posht:

Cili sht numri i departamentit tuaj?
<asp:TextBox id="txtDeptNum" width ="40" runat="server"
/>
<asp:CustomValidator id="cusvDeptNum" runat="server"
display="static" controlToValidate="txtDeptNum"
onServerValidate="validateDeptNum"
errorMessage="Duhet t jet i plotpjestueshm me 10" >
</asp:CustomValidator></br>
<asp:Button id="btnSubmit" runat="server" text="Submit"
/>
</form></body></html>
<script language="VB" runat="server">
Sub validateDeptNum(source As Object, s as
ServerValidateEventArgs)
If (CInt(s.Value) Mod 10)=0 Then
s.IsValid= True
Else
s.IsValid=False
End If
End Sub
</script>

38

Kontrolla ValidationSummary
Kjo kontroll mundson q t paraqiten t gjitha gabimet n nj lokacion t
caktuar. Kodi pr shtimin e ksaj kontrolle sht paraqitur n vijim, ndrsa rezultati i
aplikacionit sht paraqitur n figurn 4.

<asp:ValidationSummary id="valSummary" runat="server"
headerText="Please correct the following errors"
display="static" showSummary= "True"/>



Figura 4.



39
Pjesa e katrt
Custom Kontrollat
Custom Kontrollat u mundsojn programerve t krijojn kontrolla t reja
sipas funksionalitetit q atyre ju nevojiten. Kto Custom kontrolla mund t
realizohen nga fillimi, t realizohen duke trashguar klas t kontrollave t caktuara
dhe pastaj t modifikohen pr tiu prshtatur nevojave t programerit ose ato mund t
krijohen edhe duke grshetuar disa kontrolla ekzistuese brenda nj Custom kontrolle
t re. Kto Custom kontrolla do t mund t prdoren kudo brenda web forms apo
aplikacionit. Custom kontrollat mund t vendosen n dritaren Toolbox dhe prej aty
t prdoren njlloj sikur t gjitha kontrollat tjera ekzistuese.
Prveq krijimit t user kontrollave t cilat n t vrtet paraqesin web faqe
t vogla t riprdorshme, mund t krijohen edhe Custom kontrolla t kompajluara.
Siq cekm m lart Custom kontrollat mund t krijohen n tri mnyra:

Krijimi i nj Custom kontrolle t derivuar e cila trashgon nj kontroll
ekzistuese

Krijimi i nj kontrolle t prbr (ang. Composite Control) duke grumbulluar
kontrollat egzistuese n nj kontroll t kompajluar t prbashkt

Krijimi i nj Custom kontrolle t prbr duke e trashguar nga namespace-i
Web.UI.WebControl.

Kontrollat e prbra jan t afrta me user kontrollat. Dallimi ky ndrmjet tyre
qndron n at se kontrollat e prbra kompajlohen n fajlla me prapashtesn dll dhe
pastaj prdoren njlloj si prdoren t gjitha server kontrollat.
N vijim do t krijojm nj Librari t Web Kontrollave (ang. Web Control Library)
n t ciln do t krijojm Custom kontrollat q do t zbatohen gjat ktij punimi.
Procedura e krijimit t ksaj librarie sht dhn n vijim: Hapim programin Visual
Studio .NET dhe n dritaren File zgjedhim opcionin New Project. N dritaren New
Project Window, zgjedhim opcionin Visual Basic Projects dhe n dritaren
Templates zgjedhim opcionin Web Control Library t ciln do t emrojm
Custom_Kontrollat












40



Figura 1.

Pas krijimit t projektit do t vrehet q Visual Studio vetvetiu ka krijuar nj
Custom kontroll t kompletuar t emruar WebCustomControl. Para se t
shikojm kt kontroll t krijuar ne do t krijojm nj Web Aplikacion pr ta testuar
at.
N menyn File zgjedhim srish opcionin New Project dhe krijojm nj Web
Aplikacion t ri duke klikuar n opcionin ASP .NET Web Application t cilin do ta
emrojm Web_Faqja_e_Custom_Kontrollave. Para se t mbarojm me krijimin e
projektit t ri duhet t zgjedhim opcionin Add to Solution n mnyr q t dy kto
projekte t prfshihen brenda nj Solucioni.
Gjat ktij punimi do t krijojm disa Custom kontrolla t cilat do ti
testojm nga ky aplikacion. Zakonisht gjat kompajlimit t Custom kontrollave
kopjojm fajllin dll n direktoriumin \bin i faqes ku do t testohet kontrolla. Mnyr
tjetr sht q si shteg dals (ang. output path) t caktojm \bin direktoriumin e faqes
testuese, n kt rast skemi nevoj t kopjojm dll fajllin dhe do t mundemi t
testojm kontrolln m shpejt. Procedura e caktimit t shtegut dals sht dhn n
vijim:
Vendosim kursorin mbi ikonn e projektit CustomControls dhe klikojm
tastin e djatht t miut me rast do t hapet dritarja e treguar n figurn e
mposhtme. Pastaj klikojm n opcionin Properties, me rast do t hapet dritarja e
dhn n figurn 3.
Zgjedhim opcionin Configuration Properties dhe n textboks-in me
mbishkrimin Output Path gjejm (prmes butonit Browse) direktoriumin e faqes
testuese, si sht treguar n figurn 4.
T tri figurat jan dhn m posht.

41



Figura 2.



Figura 3.

42


Figura 4.

Custom Kontrolla ( e nnkuptuar ) e plot
Si pam m lart gjat krijimit t Libraris me Web Kontrolla, Visual Studio
krijoj nj Custom Kontroll t emruar WebCustomControl. Kjo sht nj Custom
Kontroll e plot, e trashguar nga klasa
System.Web.UI.WebControls.WebControl.
Ne mund t testojm kt kontroll n web faqen testuese q krijuam, si n vijim:
Hapim fajllin WebForm1.aspx n projektin Custom_Kontrolla_e_Plote_WebFaqja
dhe shtojm kodin pr t regjistruar kontrolln e re:

<%@ Register TagPrefix="CustomKontrolla"
Namespace="Custom_Kontrolla_e_Plote"
Assembly="Custom_Kontrolla_e_Plote" %>

Ky kod regjistron Custom kontrolln n web faqe prmes tagut @register
dhe dhnies s prefiksit t tagut (CustomKontrolla) si dhe tagjeve Namespace dhe
Assemmbly t cilat identifikojn kontrolln dhe fajllin dll q kjo faqe duhet t
prdor.
Tash faqes testuese mund ti shtojm kontrolln. Kontrolls duhet ti caktojm
edhe atributin Runat q nevojitet pr t gjitha server kontrollat dhe atributin Text i
cili prmban tekstin q kontrolla do t shfaq gjat ekzekutimit. Kontrolls s shtuar
duhet ti caktojm edhe atributin Id. Tagu do t duhej t dukej si n vijim:

<CustomKontrolla:WebCustomControl1 Runat="Server" Text="Tung!"
id="WC1"/>

43


Pas ekzekutimit t programit ose pas hapjes s url-s
http://localhost/Custom_Kontrolla_e_Plote_WebFaqja/webform1.aspx n web faqe
do t paraqitet teksti Tung t cilin m hert ja caktuam atributit Text.
I tr kodi i Custom kontrolls s plot t gjeneruar nga Visual Studio sht dhn
n vijim
Imports System.ComponentMod
Imports System.Web.UI
Imports System.Drawing

<DefaultProperty("Text"),
ToolboxData("<{0}: WebCustomControl1

runat=server></{0}:WebC
ustomControl1>")>

Public Class WebCustomControl1
Inherits System.Web.UI.WebControls.WebControl

Dim _text As String

Public Sub WebCustomControl1()
ViewState("Size") = "1"
End Sub

<Bindable(True), Category("Appearance"),
DefaultValue("")> _
Property [Text]() As String
Get
Return _text
End Get
Set(ByVal Value As String)
_text = Value
End Set
End Property End Class


Si shihet kjo kontroll prmban vetm atributin Text i cili si variabl t fushs s t
dhnave prmban stringun text.

Atributet e Custom kontrollave
Atributeve t Custom Kontrollave mund tiu qasemi njlloj si ju qasemi
atributeve t do klase tjetr. Mund tiu qasemi n mnyr programore (brenda kodit)
apo pas deklarimit t Custom kontrolls duke iu dhn vlera konkrete atributeve t
kontrolls si vepruam edhe me atributin Text n shembullin e faqes testuese, me
rast i vendosem vlern Tung!.
Pra atributit Text t kontrolls iu qasm prmes atributit Text n web faqe. Me
kt rast ndrlidhja ndrmjet atributit Text t implementuar brenda kontrolls dhe
atributit Text n web faqen testuese sht e thjesht pasi q t dy atributet i takojn

44

tipit string, sidoqoft, n raste tjera ASP .NET do t kryej shndrrimin inteligjent t
tipeve t ndryshme t atributeve. Pr shembull, nse gjat realizimit t kontrolls, nj
atributi t saj i caktojm tipin integer, ather vlera q ne i caktojm atributit gjat
instancimit t objektit do t konvertohet nga ASP .NET n tipin e t dhnave integer.

Metoda e Renderimit (ang. Render)
Metoda Render paraqet metodn kye brenda Custom kontrollave. Kjo
metod deklarohet brenda klass baz dhe duhet t shkilet (ang. override) n klasn e
derivuar nse duam q faqes ti mundsojm kontrollin e renderimit.
N shembullin e mposhtm Custom kontrolls do ti shtojm nj atribut t
ri t quajtur Madhesia, ndrkaq faqes testuese q krijuam m hert do ti shtojm nj
buton prmes s cilit do t rrisim madhsin e tekstit duke shfrytzuar atributin
Madhesia t kontrolls. Gjat ktij shembulli gjithashtu do t shfrytzojm objektin
HtmlTextWriter prmes t cilit do shkruajm n browser stringun e dhn n
atributin Text. Klasa HtmlTextWriter trashgon klasn TextWriter dhe ofron
mundsi t shumta t formatizimit t tekstit.
Pr t rritur madhsin e tekstit deklarojm nj atribut t ri t emruar
Madhesia brenda Custom kontrolls. Kodi brenda metods pr renderim duket si n
vijim:

Protected Overrides Sub Render(ByVal output As
System.Web.UI.HtmlTextWriter)
output.Write("<font size = " & Madhesia & ">" &
[Text] & "</font>")
End Sub

Ky atribut Madhesia, duhet t ruaj gjendjen e tij prmes direktivs postback e
cila aktivizohet pasi t klikojm mbi buton. Ky operacion kryhet me an t leximit
dhe regjistrimit n koleksionin ViewState q mirmbahet nga objekti faqe (ang.
page).
Brenda kodit t Custom Kontrolls definojm atributin Madhesia si n vijim:


Public Property Madhesia() As Integer
Get
Return Convert.ToInt32(ViewState("Size"))
End Get
Set(ByVal Value As Integer)
ViewState("Size") = Value.ToString()
End Set
End Property
Metoda Get e atributit e merr vlern q i caktohet atributit prmes ViewState
atributit dhe at e kthen n string, dhe pastaj kt string e konverton n ekuivalentin e
tij integer.

45

Metoda Set e atributit e merr stringun q prfaqson madhsin n atributin
ViewState t kontrolls.
Pr tu siguruar q n fillim se atributi ViewState do t prmbaj nj vler t
arsyeshme, thirret konstruktori prmes t cilit inicializohet atributi ViewState me nj
vler t arsyeshme

Public Sub New()
ViewState("Size") = "1"
End Sub


Konstruktori i msiprm e inicializon vlern q ruhet n atributin ViewState
n vlern 1. M pastaj, si do t tregohet n vijim do klikim i butonit do t azhuroj
atributin Madhsia (Size).
N vijim do t deklarojm edhe nj buton n faqen testuese prmes t cilit do t
ekzekutojm kodin brenda kontrolls.

<asp:Button Runat =Server Text="Zmadho shkronjat" OnClick="Button1_Click"
id="Button1" />

Ndr atributet e butonit kemi deklaruar edhe nj trajtues t ngjarjes q do t
thirret me rastin e klikimit t butonit. Kodi pr trajtuesin e ngjarjes vendoset n fajllin
me prapashtes .aspx.vb t quajtur code-behind page i cili do t hapet nse klikojm
dy her mbi kontrolln e butonit n pjesn dizajnuese t faqes testuese.
Web faqes testuese duhet ti shtojm edhe nj referim pr n fajllin dll t
projektit CustomControls n mnyr q t pranoj objektin e instancuar. Fajlli dll
krijohet gjithmon pasi t jet kompajluar projekti dhe gjendet n direktoriumin \bin.
Referimin e shtojm ashtu q n dritaren Sulution Explorer pozicionohemi mbi
ikonn References dhe klikojm n tastin e djatht t miut, m
rast do t hapet dritarja Add Reference.
N kt dritare zgjedhim opcionin Projects dhe pastaj prmes butonit Browse gjejm
shtegun deri tek /bin direktoriumi i projektit Custom Controls ku gjendet fajlli dll.
Kodi n .aspx.vb fajllin do t do t duket si n vijim

Imports Custom_Kontrolla_e_Plote.WebCustomControl1
Public Class WebForm1
Inherits System.Web.UI.Page
Protected WithEvents Button1 As
System.Web.UI.WebControls.Button
Protected WC1 As
Custom_Kontrolla_e_Plote.WebCustomControl1

+ Web Form Designer Generated Code

Public Sub Button1_Click(ByVal sender As Object, ByVal e As
System.EventArgs)_

46

Handles Button1.Click
WC1.Madhesia += 1
End Sub
End Class

N kodin e msiprm kemi krijuar nj instanc t re t Custom kontrolls
WebCustomControl1 nga projekti Custom_Kontrolla_e_Plote. Instancn e krijuar
e kemi emruar WC1. M posht kemi deklaruar trajtuesin e ngjarjes me rastin e
klikimit t butonit Button1, me rast atributi Madhesia i ksaj kontrolle do t rritet
pr nj.
Pas ekzekutimit t projektit do t vrejm se do her kur klikohet butoni do t rritet
pr nj vlera e variabls s gjendjes Size e me kt edhe madhsia e tekstit.
Pr t ekzekutuar shembullin n InternetExplorer japim shtegun:
http://localhost/Custom_Kontrolla_e_Plote _WebFaqja/webform1.aspx
Pasi t klikojm 3 her n butonin me tekst Zmadho Shkronjat madhsia e shkronjave
do t rritet nga vlera fillestare 1 n vlern 4, pas do klikimi madhsia e shkronjave t
tekstit Tung! do t rritet pr nj. Pas tri klikimeve madhsia e tekstit n browser do
t duket si m posht:



Figura 5.



Krijimi i Custom kontrollave t derivuara
Ka raste kur nuk sht e nevojshme t krijojm nj kontroll nga e para. Ne mund t
zgjrojm vetit dhe metodat e nj kontrolle ekzistuese. Kontrollat ekzistuese mund t
trashgohen n t njjtn mnyr si trashgohen klast.
Si shembull, mund t kodojm nj buton q t tregoj se sa her sht shtypur
(klikuar). Ka aplikacione t caktuara ku nj buton i till do t jet i dobishm. Web
kontrolla Button nuk e ka t implementuar kt mundsi.
Pr t tejkaluar kt kufizim t klass s butonit, ne do t trashgojm nj Custom
kontroll t re nga klasa System.Web.UI.WebControls.Button, si sht treguar n
kodin e mposhtm:

47
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls

' Custom kontrolla trashgon kontrolln button
Public Class ButoniNumrues
Inherits System.Web.UI.WebControls.Button

' Ne konstruktor inicializojme vlerat fillestare
Public Sub New()
Me.Text = "M kliko"
ViewState("Numrimi") = 0
End Sub

' numrimimi si atribut q ruhet atributin ViewState
Public Property Numrimi() As Integer
Get
Return CInt(ViewState("Count"))
End Get
Set(ByVal Value As Integer)
ViewState("Count") = Value
End Set
End Property

' e shkelim metoden OnClick per te inkrementuar numerimin,
' e azhurojme tekstin e butonit dhe pastaj therrasim
OnClick metoden e klases baze

Protected Overrides Sub OnClick(ByVal e As EventArgs)
ViewState("Count") = CInt(ViewState("Count")) + 1
Me.Text = ViewState("Count") & " clicks"
MyBase.OnClick(e)
End Sub
End Class

N fillim e trashgojm klasn e re ButoniNumrues nga klasa ekzistuese Button

Public Class ButoniNumrues
Inherits System.Web.UI.WebControls.Button


Kjo klas e krijuar e ka pr detyr t ruaj gjendjen e saj: t tregoj sa her sht
klikuar butoni. Brenda klass do t deklarojm atributin Numrimi i cili si variabl
interne do t ket vlern e ruajtur n atributin ViewState. Prdorimi i atributit
ViewState sht i nevojshm sepse butoni do ta drgoj (ang. post) web faqen dhe po
t mos prdorej atributi ViewState gjendja paraprake do t humbej.
Definimi i atributit Numrimi sht dhn n vijim:

Public Property Numrimi() As Integer
Get
Return CInt(ViewState("Count"))
End Get
Set(ByVal Value As Integer)
ViewState("Count") = Value

48
End Set
End Property


Pr t nxjerr vlern Count nga atributi ViewState, e prdorim stringun
Count si nj kompenzim n koleksionin ViewState. Ajo q kthehet paraqet nj objekt
t cilin mund ta kthejm n integer.
Pr tu siguruar q atributi Numrimi do t kthej nj vler t arsyeshme at e
inicializojm brenda nj konstruktori. Brenda konstruktorit do t inicializojm edhe
tekstin fillestar q do t prmbaj butoni. Konstruktori do t deklarohet si n vijim:

Public Sub New()
Me.Text = "M kliko"
ViewState("Numrimi") = 0
End Sub


Pasi q ButoniNumrues trashgon klasn Button nuk sht vshtir t
shkelim (ang. override) implementimin e ngjarjes Click. N kt shembull, kur
shfrytzuesi klikon butonin, duhet t rrisim vlern Count t ruajtur n atributin
ViewState si dhe t azhuroj tekstin e mbishkruar n buton ashtu q t tregoj numrin e
klikimeve. Pastaj thrrasim metodn OnClick t klass baz pr t kryer procesimin e
zakonshm t ngjarjes Click.
Kodi burimor pr trajtuesin e ngjarjes Click sht dhn n vijim:

Protected Overrides Sub OnClick(ByVal e As EventArgs)
ViewState("Count") = CInt(ViewState("Count")) + 1
Me.Text = ViewState("Count") & " clicks"
MyBase.OnClick(e)
End Sub
End Class

N fund HTML kodit t forms .aspx ia shtojm kt kontroll t krijuar si
do ti shtonim kontrollat e prbra:

<CustomKontrolla:ButoniNumrues Runat="Server" id="CB1" />

Sikur edhe tek shembulli i mparshm edhe ktu duhet shtuar deklarimin me tagun
Register.

<%@Register TagPrefix="CustomKontrolla"
Namespace="Custom_Kontrolla_e_Trasheguar"
Assembly="Custom_Kontrolla_e_Trasheguar" %>

Pr t ekzekutuar shembullin n InternetExplorer japim shtegun:
http://localhost/Custom_Kontrolla_e_Trasheguar_WebFaqja/webform1.aspx
Pasi t klikojm 5 her n butonin e paraqitur, pamja n browser do t duket si m
posht:


49







Figura 6.

Krijimi i Custom Kontrollave t prbra
Mnyra e tret e krijimit t Custom kontrollave sht me an t kombinimit t
dy apo m shum kontrollave ekzistuese. N shembullin e mposhtm do t formojm
nj kontroll pak m komplekse e cila do t mund t prdoret pr t regjistruar numrin
e krkesave pr libra t caktuara n ndonj librari.
Kontrolla prmes s cils zgjedhim nj apo m shum libra dhe sa her q
klikojm n nj libr kontrolla do t regjistroj vlern se pr t satn her sht klikuar
ai libr.
N HTML fajllin e faqes testuese do t shtojm kodin e pastaj do ta komentojm at:


<%@ Register TagPrefix="CustomKontrolla"
Namespace="Custom_Kontrolla_e_Perbere"
Assembly="Custom_Kontrolla_e_Perbere"%>

<%@ Page Language="vb" AutoEventWireup="false"
Codebehind="WebForm1.aspx.vb"
Inherits="Custom_Kontrolla_e_Perbere_WebFaqja.WebForm1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft Visual
Studio.NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form2" method="post" runat="server">

<CustomKontrolla: Lista_e_Kerkesave_te_Librave Runat="Server"
id="bookInquiry1">

50

<CustomKontrolla:Numruesi_i_Librave
Runat="server" Emri_i_Librit="Programming ASP.NET"
ID="Numruesi_i_Librave1"> </CustomKontrolla:Numruesi_i_Librave>


<CustomKontrolla:Numruesi_i_Librave
Runat="server" Emri_i_Librit="Programming C#"
ID="Numruesi_i_Librave2"> </CustomKontrolla:Numruesi_i_Librave>

<CustomKontrolla:Numruesi_i_Librave
Runat="server" Emri_i_Librit="Teach Yourself C++ 21 Days"
ID="Numruesi_i_Librave3">
</CustomKontrolla:Numruesi_i_Librave>


...

<CustomKontrolla:Numruesi_i_Librave
Runat="server" Emri_i_Librit="XML Web Documents From
Srcatch"ID="Numruesi_i_Librave8">
</CustomKontrolla:Numruesi_i_Librave>

</CustomKontrolla:Lista_e_Kerkesave_te_Librave>
</form>
</body>
</HTML>


Si shihet komponenta Lista_e_Kerkesave_te_Librave prmban nj numr t
elementeve Numruesi_i_Librave . Pr secilin libr tracking t dhn ekziston nga
nj element Numruesi_i_Librave . Kontrolla sht mjaft fleksibile. Mund t ruajm
gjendjen e nj deri n tet librave (si tregohet n shembull), ose fardo numri tjetr
librash. Secili element Numruesi_i_Librave ka atributin Emri_i_Librit i cili shrben
pr t shfaqur emrin e librit q ruhet.
Gjendja e secilit libr ruhet me an t Custom kontrolls Butoni_Numrues.
Deklarimi i ButoniNumrues nuk ndodhet brenda .aspx fajllit, ai sht implementuar
brenda Custom kontrolls Numruesi_i_Librave.
E tr arkitektura sht kontrolls sht dhn n vijim:

1. Custom kontrolla e prbr Lista_e_Kerkesave_te_Librave trashgon klasn
WebControl dhe implementon INamingContainer si do t tregohet m von.

2. Kontrolla Lista_e_Kerkesave_te_Librave ka atributin Controls t cilin e
trashgon nga klasa Control (prmes WebControl) i cili kthen nj koleksion t
kontrollave fmij.

3. Brenda koleksionit Controls ndodhen nj numr i kontrollave
Numruesi_i_Librave

4. Edhe kontrolla Numruesi_i_Librave sht kontroll e prbr, ajo
trashgon klasn WebControl q ndodhet n namespace-in
System.Web.UI.WebControls. Edhe kontrolla Numruesi_i_Librave implementon
interfejsin INamingContainer.

51


a) do instanc e klass Numruesi_i_Librave ka dy atribute, Emri_Librit
dhe Numero.

b) Atributi Emri_Librit implementohet prmes atributit ViewState dhe
inicializohet prmes atributit Emri_i_Librit n fajllin .aspx.

c)Atributi Numrues_i_Librave i delegohet objektit ButoniNumrues, i cili
instancohet n BookContainer. CreateChildControls( ).

Objekti Lista_e_Kerkesave_te_Librave ka dy qllime: shrben si kontejner pr
objektet Numrues_i_Librave dhe prkujdeset q t renderoj veten dhe t siguroj q
objektet Numrues_i_Librave q prfshihen brenda tij t renderohen sipas nevojs.
Pr t kuptuar se si funksionon kodi do ta analizojm pjes pjes. Objekti q
m s shumti prsritet sht objekti ButoniNumrues. Kt objekt e kemi
implementuar edhe n shembullin pr Custom kontrolln e trashguar por tash kemi
br disa ndryshime n t.


Custom kontrolla trashgohet nga klasa Button derives
Public Class ButoniNumrues
Inherits System.Web.UI.WebControls.Button

Private Stringu_i_shfaqur As String

' brenda konstruktorit inicializojm nj vler fillestare
Public Sub New()
Stringu_i_shfaqur = " klikime"
Init()
End Sub

' e mbingarkojm konstruktorin duke i dhn si parametr
stringun q duhet shfaqur (psh., 5 libra)
Public Sub New(ByVal Stringu_i_shfaqur As String)
Me.Stringu_i_shfaqur = Stringu_i_shfaqur
Init()
End Sub

' Sub procedura e mposhtme thirret brenda konstruktorve
pr t inicializuar vlerat fillestare
Private Shadows Sub Init()
If ViewState("Count") Is Nothing Then
ViewState("Count") = 0
Me.Text = "M Kliko"
End If
End Sub

' Atributi Numero q ruhet n atributin ViewState
Public Property Numero() As Integer
Get
Return CInt(ViewState("Numero"))
End Get

52
Set(ByVal Value As Integer)

ViewState("Numero") = Value
End Set
End Property

' e shkelim metoden OnClick pr t inkrementuar numrimin
(count),
' e axhurojm tekstin q shfaqet n buton dhe pastaj
thrrasim metodn invoke t klass baz
Protected Overrides Sub OnClick(ByVal e As EventArgs)
ViewState("Numero") = CInt(ViewState("Numero")) + 1
Me.Text = CStr(ViewState("Numero") & " " &
Stringu_i_shfaqur)
MyBase.OnClick(e)
End Sub
End Class

Pasi q n shembullin e tanishm dshirojm q butoni t tregoj tekstin 5
krkesa e jo 5 klikime, duhet t shkelim funksionin e ngjarjes OnClick q e shfaq
tekstin e butonit.

Me.Text = CStr(ViewState("Numero") & " " & Stringu_i_shfaqur)
N kt rast kemi prdorur variabln private Stringu_i_shfaqur pr t ruajtur vlern
fillestare q do t caktohet n konstruktor.
Private Stringu_i_shfaqur As String

Kt string duhet ta inicializojm brenda konstruktorit. Pr ta mbrojtur kodin e klientit
i cili vese prdor konstruktorin e nnkuptuar (pa parametra), ne do t mbingarkojm
konstruktorin, duke i dhn nj version q merr nj string.

Public Sub New(ByVal Stringu_i_shfaqur As String)
Me.Stringu_i_shfaqur = Stringu_i_shfaqur
Init()
End Sub

Ju mund t modifikoni konstruktorin e nnkuptuar duke i dhn varaibls interne
Stringu_i_shfaqur nj vler tjetr fillestare.

Public Sub New()
Stringu_i_shfaqur = " klikime"
Init()
End Sub

Brenda konstruktorit kemi thirrur metodn Init ( ) e cila e inicializon atributin Count
me vlern 0 dhe vendos tekstin fillestar q do t shfaqet n buton.
Private Shadows Sub Init()
If ViewState("Count") Is Nothing Then
ViewState("Count") = 0
Me.Text = "Click me"
End If
End Sub

53
Pas ktyre modifikimeve, kontrolla ButoniNumrues sht e gatshme t prdoret n
kontrolln e par t prbr, Numrues_i_Librave .
54

Krijimi i kontrolls s prbr Numrues_i_Librave
Kontrolla e prbr Numrues_i_Librave duhet t ruaj dhe t shfaq numrin e
krkesave t bra nj libri t caktuar. M posht do t japim kodin e plot t ksaj
kontrolle:


Public Class Numruesi_i_Librave
Inherits System.Web.UI.WebControls.WebControl
Implements INamingContainer

' e inicializojme anetarin ButoniNumrues
Public btn As ButoniNumrues = New ButoniNumrues("krkesa")

Public Property Emri_i_Librit() As String
Get
Return CStr(ViewState("Emri_i_Librit"))
End Get
Set(ByVal Value As String)
ViewState("Emri_i_Librit") = Value
End Set
End Property

Public Property Numero() As Integer
Get
Return btn.Numero
End Get
Set(ByVal Value As Integer)
btn.Numero = Value
End Set
End Property

Public Sub Reset()
btn.Numero = 0
End Sub

Protected Overrides Sub CreateChildControls()
Controls.Add(btn)
End Sub

End Class

55

Interfejsi INamingContainer
Gjja e par q bie n sy tek klasa Numrues_i_Librave sht implementimi i
interfejsit INamingContainer. Ky sht nj interfejs i zbrazt (ang. Marker Interface)
i cili nuk ka asnj metod. Ky interfejs ka pr qllim t identifikoj nj kontejner
kontroll (ang. ContainerControll ) e cila do t krijoj nj namespace identifikues t
ri, duke garantuar q atributi ID i t gjitha kontrollave fmij do t jet i njjt pr t
gjitha kontrollat brenda aplikacionit.
Klasa Numrues_i_Librave prfshin nj instanc t ButoniNumrues :

Public btn As CountedButton = New
CountedButton("inquiries")

Antari btn sht instancuar n metodn CreateChildControls t trashguar nga
klasa System.Control:


Protected Overrides Sub CreateChildControls()
Controls.Add(btn)
End Sub


Metoda CreateChildControls thirret n prag t renderimit dhe klass
Numrues_i_Librave i ofron mundsin q t shtoj objektin btn si nj kontroll t
prmbajtur (ang. Conteined).

Klasa Numrues_i_Librave nuk ka nevoj t shkel metodn Render; ajo
mjafton t renderoj klasn ButoniNumrues, i cili mund ta renderoj vetn. Sjellja e
nnkuptuar e metods Render sht t renderoj t gjitha kontrollat fmij, andaj nuk
kemi nevoj t shtojm kod pr renderimin e kontrollave fmij.

Klasa Numrues_i_Librave ka edhe dy atribute tjera: Emri_i_Librit dhe
Numero. Emri_i_Librit paraqet stringun q do t shfaqet n kontroll dhe
menaxhohet prmes atributit ViewState. Kodi i ktij atributi sht dhn n vijim:

Public Property Emri_i_Librit() As String
Get
Return CStr(ViewState("Emri_i_Librit"))
End Get
Set(ByVal Value As String)
ViewState("Emri_i_Librit") = Value
End Set
End Property

Numero paraqet numrimin e krkesave t bra pr nj libr t caktuar; ruajtja e ksaj
vlere i lihet klass ButoniNumrues. Kodi i ktij atributi sht dhn n vijim:

Public Property Numero() As Integer

56
Get
Return btn.Numero
End Get
Set(ByVal Value As Integer)
btn.Numero = Value
End Set
End Property

Nuk ka nevoj t vendosim ndonj vler n atributin ViewState, pasi q vet butoni
prkujdeset pr shfaqjen e tekstit q prmban.

Krijimi i kontrolls s prbr Lista_e_Krkesave_ t_ Librave

Secila prej kontrollave Numrues_i_Librave sht prfshir brenda koleksionit t
Kontrollave t Lista_e_Kerkesave_te_Librave. Kjo kontroll nuk ka atribute e as
gjendje. E vetmja metod q prmban sht metoda Render, si sht treguar m
posht:

<ControlBuilder(GetType(Ndrtuesi_i_Numruesit_te_Librave)),
ParseChildren(False)> _
Public Class Lista_e_Kerkesave_te_Librave
Inherits System.Web.UI.WebControls.WebControl
Implements INamingContainer

Protected Overrides Sub Render(ByVal output As
HtmlTextWriter)

Dim gjithsej_Kerkesa As Integer = 0

' Formulojm hederin e tabels
output.Write("<Table border='1' width='90%'
cellpadding='1'" & _
"cellspacing='1' align = 'center' >")
output.Write("<TR><TD colspan = '2' align='center'>")
output.Write("<B> Krkesat </B></TD></TR>")

' nse nuk kemi asnj kontroll t perfshir (ang
contained, paraqit mesazhin e nnkuptuar.
If Controls.Count = 0 Then
output.Write("<TR><TD colspan = '2'>
align='center'")

output.Write("<B> Nuk ka libra n list </B></TD></TR>")
' prndryshe, nse ka kontrolla t prfshira (ang.
contained controls) renderoje seciln prej tyre
Else
' ciklo npr seciln prej kontrollave n
koleksionin e kontrollave dhe
' shfaqe emrin e librit pr seciln kontroll
' pastaj thuaji secils kontroll t renderoj veten

57

Dim current As Numruesi_i_Librave
Dim kontrolla_e_Tanishme As Numruesi_i_Librave

For Each kontrolla_e_Tanishme In Controls
gjithsej_Kerkesa +=
kontrolla_e_Tanishme.Numero
output.Write("<TR><TD align='left'>" & _
kontrolla_e_Tanishme.Emri_i_Librit +
"</TD>")
output.RenderBeginTag("TD")
kontrolla_e_Tanishme.RenderControl(output)
output.RenderEndTag() ' mbyllim
tagun <TD>
output.Write("</TR>")
Next
Dim str_gjithsej_Kerkesa As String
str_gjithsej_Kerkesa = gjithsej_Kerkesa.ToString

output.Write("<TR><TD colspan='2' align='center'> " & _
" Gjithsej Krkesa: " & _
CStr(str_gjithsej_Kerkesa) & "</TD></TR>")
End If
output.Write("</TABLE>")
End Sub

End Class


Atributet ControlBuilder dhe ParseChildren
Klasa Numrues_i_Librave ndrlidhet me klasn
Lista_e_Kerkesave_te_Librave n mnyr q ASP .NET t prkthej elementet e fajllit
.aspx n kodin prkats.
Kjo arrihet prmes atributit ControlBuilder:

<ControlBuilder(GetType(Ndrtuesi_i_Numruesit_te_Librave)),
ParseChildren(False)>

Argumenti i atributit ControlBuilder sht nj objekt Type t cilin e marrim prmes
klass n Ndrtuesi_i_Numruesit_te_Librave, klas kjo q do ta definojm pr t
kthyer tipin e klass Numrues_i_Librave prmes dhnies s tagut t emruar


BookCounter n .aspx fajllin. Kodi pr Ndrtuesi_i_Numruesit_te_Librave sht
treguar m posht:



Friend Class Ndrtuesi_i_Numruesit_te_Librave
Inherits ControlBuilder

58


Public Overrides Function GetChildControlType( _
ByVal emri_i_Tagut As String, ByVal attributes As
IDictionary) As Type
If emri_i_Tagut = "Numruesi_i_Librave" Then
Dim x As Numruesi_i_Librave
Return x.GetType
Else
Return Nothing
End If
End Function

Public Overrides Sub AppendLiteralString(ByVal s As
String)
End Sub

End Class


ASP.NET do ta prdor kt Ndrtuesi_i_Numruesit_te_Librave, i cili
trashgon klasn Numrues_i_Librave, pr t prcaktuar tipin e objektit q tregon
tagu Numruesi_i_Librave. Prmes ksaj ndrlidhjeje, secili prej objekteve
Numruesi_i_Librave do t instancohet dhe do ti shtohet koleksionit kontrollave t
klass Lista_e_Kerkesave_te_Librave.
Atributit t dyt, ParseChildren duhet ti caktohet vlera false pr ti br me
dije ASP.NET_it q i kemi trajtuar atributet fmij dhe se nuk nevojitet trajtim i
mtejm. Vlera false tregon q atributet fmij t prfshira nuk jan atribute t
objektit t jashtm , por kontrolla fmij.

Renderimi
Metoda e vetme q Lista_e_Kerkesave_te_Librave prmban sht metoda e
cila shkel funksionin Render. Kjo metod ka pr qllim vizatimin e tabels, q si
rezultat do t paraqitet n browser, me an t dhnave t menaxhuara nga secila prej
kontrollave fmij Numruesi_i_Librave.
Lista_e_Kerkesave_te_Librave ofron numrimin e t gjitha krkesave t bra. Kodi
numron krkesat duke inicializuar nj variabl integer, gjithsej_Kerkesa n vlern 0
dhe pastaj prsritet npr seciln kontroll me rradh, duke i krkuar secils
kontroll atributin Numero si tregohet m posht:


gjithsej_Kerkesa += current.Numero

Atributi Numero i kontrolls i delegohet atributit Numero t ButoniNumrues, gj
q mund t vrehet gjat debagimit t kodit. I njjti kod renderon seciln prej
kontrollave fmij duke prsritur t njjtin cikl npr seciln prej kontrollave.


For Each kontrolla_e_Tanishme In Controls

59
gjithsej_Kerkesa +=
kontrolla_e_Tanishme.Numero
output.Write("<TR><TD align='left'>" & _
kontrolla_e_Tanishme.Emri_i_Librit +
"</TD>")
output.RenderBeginTag("TD")
kontrolla_e_Tanishme.RenderControl(output)
output.RenderEndTag() ' mbyllim tagun
<TD>
output.Write("</TR>")

Objekti lokal i Numrues_i_Librave, kontrolla_e_Tanishme, i jipet secilit objekt n
koleksionin Controls me rradh:
For Each kontrolla_e_Tanishme In Controls

Me kt objekt mund t marrim vlern e atributit Numero, si u sqarua m par

gjithsej_Kerkesa += kontrolla_e_Tanishme.Numero
dhe pastaj vazhdohet me renderimin e objektit. HtmlTextWriter prdoret s pari pr
t krijuar nj rresht dhe pr t shfaqur emrin e librit, prmes atributit Emri_i_Librit t
objektit t tanishn (kontrolla_e_Tanishme) t Numrues_i_Librave
output.Write("<TR><TD align='left'>" & _
kontrolla_e_Tanishme.Emri_i_Librit + "</TD>")

Pastaj renderojme nj tag TD, dhe brenda ktij tagu ne i tregojm objektit
Numrues_i_Librave t renderoj veten. M n fund e renderojm nj tag TD mbylls
duke prdorur shprehjen e rezervuar RenderEndTag, dhe nj tag t rreshtit
prfundues duke pdorur metodn Write t HtmlTextWriter.
output.RenderBeginTag("TD")
kontrolla_e_Tanishme.RenderControl(output)
output.RenderEndTag() ' mbyllim tagun <TD>
output.Write("</TR>")
Pastaj, kur i themi kontrolls s prfshir ( ang. contained) q t renderoj veten:
kontrolla_e_Tanishme.RenderControl(output)
ajo do t thrras metodn Render t klass Numrues_i_Librave. Meq kt metod
nuk e kemi shkelur, gjat renderimit do t thirret metoda Render e klass baz e cila
i thot secilit object t renderoj veten. I vetmi objekt i prfshir (ang. contained) sht
ButoniNumrues. Pasi q nuk e kemi shkelur metodn Render tek klasa
ButoniNumrues, do t thirret metoda e renderimit t klass baz Button pr t
renderuar butonin.
Pr t ekzekutuar shembullin n InternetExplorer japim shtegun:
http://localhost/Custom_Kontrolla_e_Perbere_WebFaqja/webform1.aspx

60


Pasi t klikojm disa her n butonat pr krkimin e librave t ndryshm, pamja e
web faqes do t duket si n vijim:



Figura 7.



61

Prmbyllje

Teknologjia informative n prgjithsi dhe Interneti n veqanti vazhdojn t
ken ndikim do her e m shum n jetn ton t prditshme. Kshtu Interneti ka
gjetur zbatim pothuajse n t gjitha sferat e jets si pr shembull: informim, edukim,
argtim, komunikim, marketing etj. Agjensit informative bjn publikimin e
informatave, institucionet e ndryshme publikojn aktivitetin e tyre, kompanit afariste
bjn promovimin dhe reklamimin e veprimtarive por edhe shitjen e produkteve t
tyre, universitetet publikojn programet arsimore, shpallin konkurset por gjithashtu
mundsojn shkollimin n distanc. T gjitha kto mundsi kan ardh n shprehje
prmes teknologjive t ndryshme pr zhvillimin e web aplikacioneve. Nj ndr kto
teknologji sht edhe ASP.NET-i si pasardhse e ASP-s e zhvilluar nga Microsofti
pr krijimin e web aplikacioneve t lehta, t shpejta, t sigurta dhe interaktive.
Prderisa verzionet para .Net-it paraqitnin vshtirsi n realizimin e faqeve interaktive
si dhe ndjekja dhe prmirsimi i gabimeve n kod nga zhvilluesit ishte shum e
paprshtatshme, ASP.NET-i ka eliminuar kto mangsi duke mundsuar prdorimin e
dy gjuhve t reja: VB.NET dhe C#, t cilat jan komplet t orientuara n
objekte.Gjat zhvillimit t web formave n ASP.NET mund t prdoren kto lloje t
kontrollave: HTML Server Kontrollat, ASP Server Kontrollat, Kontrollat Validuese
dhe Custom Kontrollat. Secila prej tyre i ka prparsit e veta varsisht prej natyrs s
aplikimit.
HTML Server Kontrollat paraqesin HTML elemente t cilat prmes atributeve
t tyre bhen t programueshme n server,
ASP Server Kontrollat paraqesin gjeneratn e re t kontrollave, t cilat jan
m t pasura me veqori, dhe m t lehta pr tu programuar e pr tu
kontrolluar nga zhvilluesi, gjithashtu n kt grup ekzistojn kontrolla t
specializuara si pr shembull AdRotator apo Calendar.
Kontrollat pr Validim jan zhvilluar n mnyr ekskluzive pr validimin e t
dhnave hyrse. Kto kontrolla mundsojn t kontrollohet (validohet) vlera e
nj fushe apo kontroll hyrse dhe t paraqitet mesazhi i gabimit. Shfrytzimi i
tyre ka nj rndsi shum t madhe pr aplikacionin, duke e br at shum
m efikas, m t leht dhe gjithashtu me t shpejt pr ta programuar.
Custom kontrollat u mundsojn programerve t krijojn kontrolla t reja q
posedojn funksionalitete shtes q atyre ju nevojiten. Kto Custom kontrolla
mund t realizohen duke trashguar klas t kontrollave t caktuara dhe pastaj
t modifikohen pr tiu prshtatur nevojave t programerit ose ato mund t
krijohen edhe duke grshetuar disa kontrolla ekzistuese brenda nj Custom
kontrolle t re.

Pra krejt n fund mund t themi se kto kontrolla kan ndihmuar q t krijohen
aplikacione t mdha me lehtsi t madhe pr zhvilluesit, por edhe t afrta me
shfrytzuesin.



62


Summary

Information technology in general and Internet in particular, continue to
influence our every days life. So, Internet is used almost in every field of life such as:
Information, Education, Entertainment, Communication, Marketing etc. News
Agencies communicate their information; business companies promote their activities
and even sell their products; universities publish their educational programs, their
announcements and even organize lessons and exams in distance. These are only a
few from so many possibilities which were offered by several technologies for
developing Web applications. One of these technologies is ASP.NET, which follows
ASP, built by Microsoft, for developing interactive, safe and robust web applications.
Because the versions prior to .NET had their difficulties in creating interactive pages,
and also tracking and eliminating code errors by developers was very uncomfortable
to them. ASP.NET has eliminated these difficulties by using two new programming
languages: VB.NET and C#, which are completely object oriented. During developing
web forms in ASP.NET different type of controls can be used: HTML Server
Controls, ASP Server Controls, Validation Controls and Custom Controls. Each type
of these controls has its own advantages depending on the nature of the application.
HTML server controls are HTML elements which through their attributes are
programmable in server.
ASP server controls are the new generation of web forms controls which
possess much more properties that make them easier to program and control
by programmer. There are specialized controls in this group like AdRotator or
Calendar.
Validation controls have been developed exclusively for user input validation.
These controls make possible to validate input values entered by user and
display warning messages. Using these controls is very important to
applications because it makes them very easy to develop, more efficient and
less error prone.
Custom controls allow programmers to create new controls which posses
additional functionalities. They can be created by extending an existing
control or a group of controls to provide additional functionalities.

We can conclude that these variety of controls have helped developers to
create major and user friendly applications.

63

SHTOJCA A
Fjalorthi

ASP.NET Active Server Pages, sht teknologji pr t zhvilluar
web aplikacione.
BROWSER Aplikacioni pr krkim n internet ( p.sh. internet
explorer)
CUSTOM
KONTROLLA
Kontrollat me porosi, nga prdoruesi
DATASOURCE Burim i t dhnave pr kontrolln
FAJLLI DLL Dynamic Linked Library, librari ku gjinden klasat dhe
funksionet e caktuara
HTML HyperText Marked Language, sht nj gjuh q
prdoret nga klienti dhe serveri pr t komunikuar n mes
veti
INTERFEJS Ndrfaqe
NAMESPACE Hapsira e emrtimeve
STRING Varg me karaktere, shkronja ose numra
SUBMIT Buton i cili t dhnat e futura npr kontrolla i dorzon
n server
SUBRUTINA Pjes e kodit e cila mund t thirret nga pjest e tjera t
programit
TAGU Etiketa t cilat identifikojn elementet n HTML
UPLOAD Drgim i fajllit n server
URL URL sht shkurtes nga Uniform Resource Locator e
cila sht adres globale e dokumenteve dhe e resurseve
t tjera n World Wide Web.
WEB SERVERI Server i specializuar pr web aplikacione

64
SHTOJCA B

Ekzekutimi i shembujve

N mnyr q shembujt t cilt gjinden n kt shtojc t mund t
ekzekutohen dhe t shihen rezultatet e tyre, duhet q t plotsohen disa kushte
paraprake.
Kompjuteri t jet s paku Pentium III ,
T jet i instaluar Microsoft Visual Studio .NET 2002,
Shembujt nuk mund t ekzekutohen, me verzione m t vjetra se Microsoft Visual
Studio
.NET 2002,
Shfrytzuesi i kyqur n sistemin operativ t Windowsit t ket autorizimet e
Administratorit.
N vijim jan dhn disa udhzime gjenerale pr ekzekutimin e shembujve, e t cilat
n
mas t madhe do ti ndihmojn lexuesit q ti prdor kta shembuj n mnyr t
drejt
dhe t leht.
Filimisht shembulli i cili dshirohet q t ekzekutohet duhet t kopjohet nga CD-ja ku
gjindet, n ndonj folder n disk. Pastaj nga folderi n fjal zgjedhet fajlli i selektuar
si n figurn n vijim.



Figura 1. Zgjedhja e fajllit pr ekzekutim

65
N vazhdim do t hapet nj dritare tjetr, por tani e Visual Studio .NET-it dhe
shembulli do t jet i gatshm pr ekzekutim. Ekzekutimi do t ndodh n momentin
kur n opcionet e komandave n Menybar, zgjedhet opcioni Debug dhe nga menyja
rnse q do t shaqet me kt rast zgjedhet opcioni Start (Debug Start).



Figura. 2 Mnyrat e ekzekutimit t aplikacionit

Mnyr tjetr e ekzekutimit sht edhe duke shtypur F5 n tastiern e
kompjuterit dhe rezultati do t jet i njjt.

66

Literatura:

ASP.NET
G.Andrew Duthie & Matthew MacDonald
Syngress Publishing, Inc. 2002

ASP.NET Web applications on the .NET Framework
Danny Ryan and Tommy Ryan
Hungry minds Inc. 909 Avenye New York 2002

ASP.NET Bible
Mridula Parihar.
Hungry minds Inc. 909 Avenye New York 2002

ASP.NET - Database programming
Jason Butler and Tony Caudill
Hungry minds Inc. 909 Avenye New York 2002

ASP.NET Validation Controls
Jeff Prosises forthcoming .NET
All material contained herein is copyrighted 2001 by Jeff Prosise.

ASP.NET Web Developer's Guide
Mesbah Ahmed,Garrett, Jeremy Faircloth, Chris Payne.
Syngress Publishing, Inc. 800 Hingham Street Rockland 2002

Programming ASP .NET
Jesse Liberty, Dan Hurwitz OReilly.
Microsoft Press 2002

Designing Microsoft ASP.NET Applications
Douglas J. Reilly
ISBN: 0735613486 Microsoft Press 2002

Referimet n Web:

1. http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/cpgenref/html/cpconaspsyntaxforhtmlcontrols.asp
2. http://www.w3schools.com/aspnet/aspnet_refhtmlcontrols.asp
3. http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/vbcon/html/vbtskaddinghtmlcontrolstowebformspage.asp
4. http://www.asp101.com/lessons/htmlcontrols.asp

Vrejtje: Materiali kryesisht sht marr n referimin e par dhe t dyt n Web
deri me datn 08.09.2004

You might also like