Seminarski Rad

26
FAKULTET ZA INFORMACIONE TEHNOLOGIJE SEMINARSKI RAD Internet programiranje u .NET tehnologiji TEMA Pregled serverskih kontrola Calendar, FileUpload, Panel, MultiView, Wizard i XML Mentor: Student: Broj indeksa: Januar,godine

Transcript of Seminarski Rad

Page 1: Seminarski Rad

FAKULTET ZA INFORMACIONE TEHNOLOGIJE

SEMINARSKI RAD

Internet programiranje u .NET tehnologiji

TEMA

Pregled serverskih kontrola

Calendar, FileUpload, Panel, MultiView, Wizard i XML

Mentor: Student:

Broj indeksa:

Januar,godine

Page 2: Seminarski Rad

Internet programiranje u .NET tehnologiji

2

Sadržaj

1. Kontrola Calendar ................................................................................................................... 2

2. Kontrola File Upload ................................................................................................................ 9

3. Kontrola Panel ...................................................................................................................... 11

4. MultiView i View kontrola ....................................................................................................... 14

5. Wizard kontrola .................................................................................................................... 18

6. XML kontrola ....................................................................................................................... 22

7. Zaključak .............................................................................................................................. 26

8. Literatura ............................................................................................................................. 27

Page 3: Seminarski Rad

Internet programiranje u .NET tehnologiji

3

1. Kontrola Calendar

Kontrola Calendar omogućava vam da prikažete kalendar na web stranici. Calendar se može koristiti kada tražite od korisnika da izabere određeni datum ili vremenski period. Korisnici mogu tako da se lako kreću

između godina, mjeseci i dana. Kontrola Calendar je složena i moćna serverska kontrola koju možete koristiti da dodate pravi kalendar na svoju stranicu. Kontrola Calendar je izvedena direktno iz klase

WebControl kao što je prikazano na slici 1.

Slika 1: Osobine kontrole Calendar

Kontrola Calendar je prikazana kao <asp:Calendar> element u Source prozoru. Ona može da sadrži

sopstveni stil radi promijene izgleda kontrole. Kada se izrenderuje na korisnikovom Web pregledniku, kontrola generira HTML <table> element i niz povezanih JavaScript elemenata.

Kontrola Calendar se može koristiti da se izabere jedan datum ili više datuma. To kontroliše svojstvo SelectionMode. Ono se može podesiti na jedno od slijedećih vrijednosti:

Page 4: Seminarski Rad

Internet programiranje u .NET tehnologiji

4

-Day Omogućava izbor jednog datuma.

-DayWeek Omogućava izbor ili jednog datuma ili cijele sedmice. -DayWeekMonth Omogućava izbor jednog datuma, cijele sedmice ili cijelog mjeseca.

-None Ne dozvoljava da izaberete ni jedan datum.

Kontrola Calendar sadrži mnoga dodatna svojstva koje se mogu koristiti da se podesi format i ponašanje

ove kontrole. Tabela 1 sadrži spisak svojstva kontrole Calendar i njihove opise.

Svojstvo: Opis:

Caption Naslov u kalendaru.

CaptionAlign Poravnanje naslova:Gore (Top), Dolje (Bottom), Lijevo (Left), Desno (Right) ili Nije podešeno (NotSet).

CellPadding Razmak između svake ćelije i njene ivice.

CellSpacing Razmak između ćelija.

DayHeaderStyle Stil koji će se primijeniti na radne dane.

DayNameFormat Format za imena radnih dana:Prvo slovo (FirstLetter), Prva dva slova (FirstTwoLetters), Cijeli naziv (Full), Kratki naziv

(Short), Najkraći naziv (Shortest).

DayStyle Podrazumjevani stil za dan u kalendaru.

FirstDayOfWeek Dan u sedmici koji će biti prikazan u prvoj koloni kontrole Calendar.

NextMonthText Tekst koji se prikazuje za prelazak u naredni mjesec; „>“je podrazumjevana vrijednost.

Ovo funkcioniše samo ako je ShowNextPrevMonth svojstvo istinito.

NextPrevFormat Svojstvo koje postavlja format za prelazak na slijedeći i prethodni

mjesec.Može se podesiti na CustomText

(podrazumjevano),FullMonth (na primjer Januar) ili

ShortMonth(na primjer Jan).

NextPrevStyle Stil koji se primjenjuje na tekst za prelazak na slijedeću i predhodni mjesec.

OtherMonthDayStyle Svojstvo koji određuje stil za dane na kalendaru koji su prikazani ali nisu u tekućem mjesecu.

PrevMonthText Tekst koji se prikazuje za prelazak na prethodni mjesec ; koji je

podrazumjevano “<“.Ovo je moguće samo ako je ShowNextPrevMonth svojstvo istinito.

SelectedDate Datum koji je odabran od strane korisnika

SelectedDates Kolekcija vrijednosti DateTime predstavlja sve datume koji su

izabrani od strane korisnika.Ovo svojstvo sadrži samo jedan datum kada

SelectionMode svojstvo postavljeno na

Page 5: Seminarski Rad

Internet programiranje u .NET tehnologiji

5

Tabela 1: Spisak svojstava kalendara i njihovi opisi.

CalendarSelectionMode.Day što dozvoljava izbor samo jednog dana.

SelectedDayStyle Stil izabranog dana.

SelectionMode Vrijednost koja pokazuje koliko dana može biti izabrano.Vrijednost

može biti Day, DayWeek, DayWeekMonth ili None.

SelectMonthText Tekst prikazan u koloni za mjesec .Podrazumjevana vrijednost je „>>“.

SelectorStyle Stil za selektore sedmice i mjeseca.

SelectWeekText Tekst selektora sedmice.

ShowDayHeader Indikator koji određuje da li treba da bude neki dan prikazan.

ShowGridLines Indikator koji određuje da li treba mrežna linija biti prikazana.

ShowTitle Indikator koji određuje da li treba naslov biti prikazan.

TitleFormat Svojstvo koje postavlja format za prikazivanje mjeseca (Month) ili

mjeseca i godine (MonthYear).

TitleStyle Stil za naslov.

TodayDayStyle Stil današnjeg dana.

TodaysDate Današnji datum.

UseAccessibleHeader Kontrola, kada je ovo svojstvo istinito,generiše <th> zaglavlje dana(podrazumjevana vrijednost) ili kada je

podešeno na neistinto generiše <td> za zaglavlja

dana da budu kompatibilna sa verzijom 1.0 .NET okruženja.

VisibleDate Svojstvo koje određuje koji mjesec prikazati u kalendaru.

WeekendDayStyle Stil dana vikenda.

Page 6: Seminarski Rad

Internet programiranje u .NET tehnologiji

6

Kontrola Calendar takođe objavljuje nekoliko događaja sa kojima se može raditi. Primarni događaj, SelectionChanged, se dešava nakon što korisnik izabere datum na kontroli. Događaj SelectionChanged izaziva PostBack kada korisnik izabere novi datum. Unutar obrađivača događaja pristupate izabranim datumima preko svojstva SelectedDates. Svojstvo SelectedDate jednostavno pokazuje na jedan izabrani

datum SelectedDates kolekcije.

Događaj VisibleMonthChanged takođe izaziva PostBack kada korisnik izabere da se vidi neki drugi

mjesec. Ovaj događaj možete obraditi ako morate da odgovorite na korisnikovo prebacivanje između mjeseci u kontroli.

Kontrola Calendar se obično koristi kao kontrola za biranje datuma. Međutim, ona se takođe može

koristiti da prikaže planirani raspored. Tehnika da bi se koristila kontrola Calendar da prikaže planirani

raspored i željene dane kao što su praznici je da se kontrola napravi dovoljno široko da prikaže tekst za svaki dan. Onda možete da dodate kontrolu Label (ili druge kontrole) u Controls kolekciju Cell objekata u

DayRender obrađivaču događaja.Događaj DayRender u kontroli Calendar pokreće se kada neki dan se priprema za slanje na izlaz. To nije PostBack nego događaj koji se okida na serveru kada se kontrola

renderuje u svoj HTML. To vam omogućava da dodate tekst ili kontrole u dan koji se renderuje.

Slijedeći primjer pokazuje kako se kontrola Calendar može koristiti da prikaže planirani raspored. U ovom

primjeru, kreirana je Web stranica i na stranicu je dodana kontrola Calendar. Slijedeći kôd je dodat u

priključenu stranicu da pokaže kako se svojstva kontrole Calendar mogu podesiti u programskom kôdu a događaji u kontroli Calendar se mogu koristiti da se izrenderuju pojedinačni dani.

//C# public partial class CalendarCSharp : System.Web.UI.Page

{

Hashtable _scheduleData;

protected void Page_Load(object sender, EventArgs e) { _scheduleData = GetSchedule();

Calendar1.Caption = "Personal Schedule";

Calendar1.FirstDayOfWeek = FirstDayOfWeek.Sunday; Calendar1.NextPrevFormat = NextPrevFormat.ShortMonth;

Calendar1.TitleFormat = TitleFormat.MonthYear;

Calendar1.ShowGridLines = true; Calendar1.DayStyle.HorizontalAlign = HorizontalAlign.Left; Calendar1.DayStyle.VerticalAlign = VerticalAlign.Top; Calendar1.DayStyle.Height = new Unit(75); Calendar1.DayStyle.Width = new Unit(100);

Calendar1.OtherMonthDayStyle.BackColor = System.Drawing.Color.Cornsilk;

Calendar1.TodaysDate = new DateTime(2009, 2, 1); Calendar1.VisibleDate = Calendar1.TodaysDate;

}

private Hashtable GetSchedule()

{

Hashtable schedule = new Hashtable();

Page 7: Seminarski Rad

Internet programiranje u .NET tehnologiji

7

schedule["2/9/2009"] = "Vacation Day";

schedule["2/18/2009"] = "Budget planning meeting @ 3:00pm"; schedule["2/24/2009"] = "Dinner plans with friends @ 7:00pm";

schedule["2/27/2009"] = "Travel Day";

schedule["3/5/2009"] = "Conf call @ 1:00pm"; schedule["3/10/2009"] = "Meet with art director for lunch";

schedule["3/27/2009"] = "Vacation Day";

return schedule; }

protected void Calendar1_SelectionChanged(object sender, EventArgs e)

{

LabelAction.Text = "Selection changed to: "+ Calendar1.SelectedDate.ToShortDateString(); }

protected void Calendar1_VisibleMonthChanged(object sender MonthChangedEventArgs e)

{

LabelAction.Text = "Month changed to: " + e.NewDate.ToShortDateString();

}

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)

{ if (_scheduleData[e.Day.Date.ToShortDateString()] != null) { Literal lit = new Literal(); lit.Text = "<br />";

e.Cell.Controls.Add(lit);

Label lbl = new Label(); lbl.Text = (string)_scheduleData[e.Day.Date.ToShortDateString()];

lbl.Font.Size = new FontUnit(FontSize.Small);

e.Cell.Controls.Add(lbl);

}

} } Ovaj kôd podešava svojstva kontrole Calendar, kao što su stil i veličina, u obrađivaču događaja

Page_Load .Metoda GetSchedule se dodaje da se popuni kolekcija željenih datuma. U obrađivača događaja Calendar1_DayRender dostupni su Date i Cell dana koji se renderuje. Ako se naiđe na željeni

datum, kreira se Label koja sadrži željeni datum, i ona se dodaje u Controls koleciju Cell objekata.Kada je

prikazana Web stranica, željeni datumi su izrenderovani na kontrolama Calendar, što je prikazano na Slici 2.

Page 8: Seminarski Rad

Internet programiranje u .NET tehnologiji

8

Slika 2: Izrenderovana Calendar kontrola prikazuje raspored

Page 9: Seminarski Rad

Internet programiranje u .NET tehnologiji

9

2. Kontrola FileUpload

Kontrola FileUpload se koristi da omogući korisniku da izabere i pošalje neku datoteku na server. Kontrola prikazuje polje za unos i dugme Browse. Korisnik može ili ukucati naziv fajla i putanju do njega u polje za

unos ili da klikne taster Browse i izabere fajl. Kontrola FileUpload je izvedena direktno iz klaseWebControl kako je prikazano na Slici 3.

Slika 3:Svojstva FileUpload kontrole

Kontrola FileUpload je prikazana kao <asp:FileUpload> element u Source prozoru.Ona nema nikakav

unutrašnji sadržaj tako da možete napisati ovaj element kao samostojeći. Ova kontrola generira <input type=”file”> element kada se izrenderuje u HTML.

Kontrola FileUpload ne izaziva naknadno PostBack ka Web serveru. Nakon što izabere fajl, korisnik će da izazove PostBack koristeći drugu kontrolu, kao što je Button. PostBack omogućuje da fajl bude prebačen

na server kao da su poslati podaci. Na serveru, izvršavanje stranice ne teče dok fajl ne bude skroz prebačen u memoriju servera.

Navedena svojstva daće vam razne načine da pristupite ubačenom fajlu:

- FileBytes Fajl je prikazan kao niz bajtova. - FileContent Fajl je prikazan kao tok podataka.

- PostedFile Fajl je prikazan kao objekat tipa HttpPostedFile. Ovaj objekat ima zanimljiva svojstva, kao što su vrsta sadržaja (ContentType) i dužina sadržaja (ContentLength).

Morate da ispitate svaki fajl koji je prebačen na server da bi odredili da li ga treba uskladištiti; možete

ispitati osobine kao što su naziv i veličina fajla i Multipurpose Internet Mail Extensions (MIME) tip, koja precizira tip fajla koji je prebačen. Kada ste spremni da uskadištite fajl možete koristiti metodu SaveAs iz kontrole FileUpload ili iz objekta HttpPostedFile.

Možete uskladištiti fajl na bilo koju lokaciju za koju imate dozvolu da kreirate fajlove.Podrazumjevano

atribut requireRootedSaveAsPath u elementu konfiguracije httpRuntime u fajlu Web.config je postavljen na istinito ,što znači da morate da obezbijedite apsolutnu putanju da bi mogli snimiti fajl. Možete dobiti

apsolutnu putanju koristeći metodu MapPath klase HttpServerUtility i proslijeđujući metodu tild (~) operator,koji predstavlja aplikacioni korjenski folder.

Page 10: Seminarski Rad

Internet programiranje u .NET tehnologiji

10

Maksimalna veličina datoteke koja može biti otpremljena zavisi od vrijednosti MaxRequestLength atributa httpRuntime konfiguracijskog elementa u Web.config fajlu.Ako korisnici ipak pokušaju da otpreme

datoteku koja je veća od MaxRequestLength,otpremanje neće uspjeti.

SIGURNOSNO UPOZORENJE Kontrola FileUplad omogućava korisnicima da prebace fajlove ali ne pokušava da utvrdi zlonamjernost prebačenih fajlova. Kontrola FileUpload nema način da filtrira po

tipovima fajlova koje korisnik hoće da prebaci, ali možete ispitati osobine fajla, kao što su naziv i

ekstenzija fajla, kao i ContentType, nakon što je fajl uspješno prebačen.

Iako možete napisati skript na strani klijenta da ispitate fajl koji će biti prebačen,zapamtite da je ispitivanja na strani klijenta pogodnost za poštenog korisnika.Zlonamjerna osoba lako može da ukloni sa

Web stranice kôd za ispitivanje.

U ovom primjeru, Web stranica je kreirana i kontrola FileUpload je dodata na stranicu. Osim toga, dodat

je Button na stranicu koja se koristi da se prebaci fajl na server putem mehanizma PostBack. Dodan je folder na Web sajtu nazvan Uploads. Slijedeći kôd je dodat u priključenu stranicu da pokaže kako svojstva

kontrole FileUpload mogu da se podese i fajl može da se prebaci i memoriše.

//C# protected void Button1_Click(object sender, EventArgs e)

{ if (FileUpload1.HasFile) {

Label1.Text = "File Length: " + FileUpload1.FileBytes.Length

+ "<br />"

+ "File Name: " + FileUpload1.FileName + "<br />" + "MIME Type: "

+ FileUpload1.PostedFile.ContentType; FileUpload1.SaveAs(MapPath("~/Uploads/" + FileUpload1.FileName));

} else {

Label1.Text = "No file received."; } } Web stranica je prikazana na Slici 4. Kada se fajl izabere i klikne na dugme Submit,programski kôd

provjerava da li je fajl prebačen. Ako je fajl uspješno prebačen, informacija o tome se upisuje u kontrolu Label radi prikazivanja. Fajl se onda memoriše u folder Uploads. Web sajt zahtijeva apsolutnu putanju,

zato MapPath vrši pretvaranje iz relativne putanje koja je data u apsolutnu putanju. Na kraju, fajl je

memorisan.

Page 11: Seminarski Rad

Internet programiranje u .NET tehnologiji

11

Slika 4.Kontrola FileUpload poslije otpremanja datoteke

Page 12: Seminarski Rad

Internet programiranje u .NET tehnologiji

12

3. Kontrola Panel

Kontrola Panel se koristi kao kontejnerska kontrola. Ona može biti veoma korisna kada morate da grupišete kontrole i radite sa njima kao jednom jedinicom. Čest primjer je potreba da se prikaže i sakrije

grupa kontrola. Kontrole Panel su takođe korisne programerima koji razvijaju kontrole sa karticama ili

uključi/isključi funkcionalnost.Kontrola Panel je izvedena direktno iz klaseWebControl što je prikazano na Slici 5.

Slika 5: Svojstva Panel kontrole

U prozoru Source, kontrola Panel je prikazana kao <asp:Panel> element. Ovaj element može mnoge

kontrole imati umetnute unutar sebe.Smatra se da su te kontrole sadržane u panelu. U HTML izlazu, kontrola Panel generira <div> element unutar preglednika.

Postoje neka svojstva kojih morate da budete svjesni kada radite sa kontrolom Panel.Svojstvo

BackImageUrl može se koristiti da prikaže pozadinsku sliku u kontroli Panel. HorizontalAlignment vam

omogućava da primjenite horizontalno poravnanje kontrola koje su u Panel. SvojstvoWrap precizira da li unutrašnje kontrole u Panel automatski prelaze u slijedeći red kada bi bio red duži od širine kontrole

Panel. Svojstvo DefaultButton određuje taster na formi na koji se virtualno klikne kada je panel u fokusu a korisnik pritisne Enter na tastaturi.Svojstvo DefaultButton se može podesiti na ID bilo koje kontrole na

vašoj web formi koja ima implementiran IButtonControl interfejs.

Kao primjer,razmotrimo stranicu za prijavu na sistem.Možete da želite taster koji omogućava korisniku da

ukine vidljiivost ove prijave.Slijedeći primjer pokazuje HTML <body> aspx datoteke. <body> <form id="form1" runat="server"> <div> <asp:Button ID="ButtonShowHide" runat="server" Text="Login: hide form" width="200" onclick="ButtonShowHide_Click"/>

<asp:Panel ID="Panel1" runat="server" BackColor="Beige" Width="200"> <asp:Label ID="Label1" runat="server" Text="User name: "></asp:Label>

<br />

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

Page 13: Seminarski Rad

Internet programiranje u .NET tehnologiji

13

<br /> <asp:Label ID="Label2" runat="server" Text="Password: "></asp:Label>

<br /> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <br />

<asp:Button ID="ButtonLogin" runat="server" Text="Login" /> </asp:Panel>

</div> </form>

</body>

Kôd za prikazivanje i sakrivanje ove prijave je jednostavan.Morate da obradite događaj klika na uključi/isključi taster i onda promjeniteVisible svojstvoPanel kontrole.Slijedeći primjer pokazuje to:

//C# protected void ButtonShowHide_Click(object sender, EventArgs e)

{ Panel1.Visible = !Panel1.Visible; if (Panel1.Visible)

{

ButtonShowHide.Text = "Login: hide form"; } else {

ButtonShowHide.Text = "Login: show form"; } Prikaz web stranice je dat na slici 6. Klikom na taster Show/Hide sakriva se panel i sve njegove kontrole a

klikom na taster opet prikazuje Panel i sve njegove kontrole.

Slika 6: Kontrola Panel sa tasterom za uključivanje/isključivanje vidljivosti

Page 14: Seminarski Rad

Internet programiranje u .NET tehnologiji

14

4. MultiView i View kontrole

Poput Panel kontrole, MultiView i View su takođe kontejnerske kontrole. One se koriste za grupisanje

drugih kontrola.Ovo je korisno kada želite da koristite i upravljate grupom kontrola kao jednom cjelinom.

MultiView služi da sadrži višeView kontrola.Kontrola View mora biti sadržana u MultiView.Ove dvije

kontrole uvijek idu zajedno.

MultiView je osmišljena da sadrži mnogo kontrola tipa View.Omogućava vam da sakrijete jedan i da onda

prikažete drugi View korisniku. MultiView se takođe koristi za kreiranje čarobnjaka,gdje svaka kontrola

View u okviru MultiView predstavlja slijedeći korak ili stranicu u čarobnjaku. MultiView i View direktno

nasljeđuje Control klasu ,kao što je prikazano na slici 7.

Slika 7:Svojstva MultiView i View kontrola

MultiView i View ne proizvode nikakve direktne HTML elemente pri renderovanju jer su ove kontrole u

suštini serverske kontrole koje upravljaju vidljivošću svojih potomak-kontrola.U prozoru Source MultiView

kontrola predstavljena je kao <asp:MultiView>,a View kontrola je predstavljena kao <asp:View>

elemenat ugnježden unutar kontrole MultiView.

Page 15: Seminarski Rad

Internet programiranje u .NET tehnologiji

15

Možete da koristite svojstvo ActiveViewIndex ili SetActiveView metodu za promjenu prikazane View

kontrole.Ako je ActiveViewIndex postavljen na -1, onda nijedna View kontrola nije prikazana.Ako

proslijedite nevažeći View ili null vrijednost u metodu SetActiveView,onda

HttpException je generisan. Imajte na umu da samo jedna View kontrola može biti aktivna u jednom

trenutku.

Kao primjer, zamislite stranicu za registraciju korisnika gdje trebate provesti korisnika kroz proceduru

registracije na vašem sajtu.Možete da koristite jednu MultiView kontrolu i tri View za upravljanje ovim

procesom. Svaka View kontrola predstavlja jedan korak u tom procesu.Izgled takve stranica je prikazan

na slici 8.

Slika 8:MultiWiev i View na stranici

Da bi ispravno radila stranica u ovom primjeru,tasteri na stranici su postavljeni da budu komandnog

tipa.Kada korisnik klikne na taster, CommandName svojstvo iz CommandEventArgs provjerava se da bi

utvrdili koji je taster pritisnut.Na osnovu ovih informacija,MultiView pokazuje (ili sakriva) slijedeće View

kontrole.Slijedi primjer:

Page 16: Seminarski Rad

Internet programiranje u .NET tehnologiji

16

//C# public partial class ViewControl : System.Web.UI.Page

{ protected void Page_Load(object sender, EventArgs e) {

MultiView1.ActiveViewIndex = 0;

}

protected void Button_Command(object sender, CommandEventArgs e) { switch (e.CommandName) {

case "Step1Next": MultiView1.ActiveViewIndex = 1;

break;

case "Step2Back": MultiView1.ActiveViewIndex = 0;

break;

case "Step2Next": MultiView1.ActiveViewIndex = 2;

break;

case "Step3Back": MultiView1.ActiveViewIndex = 1;

break;

case "Finish":

//hide control from user to simulate save

MultiView1.ActiveViewIndex = -1;

break;

}

}

} Kada je stranica prikazana,prvi korak je vidljiv korisniku. Kada on klikne Next obrada se onda odvija na

serveru i Button_Command se pokreće.Stranica se mijenja i prikazuje drugu kontrolu View na osnovu

rezultata ovog događaja .Slika 9 prikazuje kontrolu MultiView na djelu.

Page 17: Seminarski Rad

Internet programiranje u .NET tehnologiji

17

Slika 8: MultiView se koristi za prebacivanje između View kontrola na serveru

Page 18: Seminarski Rad

Internet programiranje u .NET tehnologiji

18

5. Wizard Kontrola

Wizard kontrola je složena kontrola koja se koristi da prikaže niz WizardStep kontrola korisniku, jedan

po jedan, kao dio procesa prikupljanje podataka od korisnika.Wizard kontrola zasniva se na MultiView i

View kontrolama koje su prethodno predstavljene. One pružaju funkcionalnost koja osigurava da samo

jedna WizardStep kontrola je vidljiva u jednom trenutku i omogućava da prilagodite većinu aspekata

Wizard i WizardStep kontrola.Najznačajnija upotreba Wizard kontrole je da omogući zahvatanje od

korisnika velike količine podataka razbijanjem podatka u logičke cjeline, ili korake.Wizard kontrola

prikazuje korisniku korake koji mogu biti validirani, ili na kraju cijelog procesa, ili kraju svakog koraka.

Sigurno možete da postići isti rezultat pomoću zasebnih Web stranica za svaki korak,ali Wizard

konsoliduje proces prikupljanja podataka u jednoj Web stranici.

Wizard kontrola naslijeđuje CompositeControl klasu.Kontrola koristi BaseWizardStep kontrolu, koja

naslijeđuje View kontrolu. Ovaj model je prikazan na slici 9. Primjetimo da Wizard kontrola ima u sebi

WizardSteps kolekciju koja sadrži korisnički interfejs za svaki korak koji će biti kreiran od strane

programera.Kao što se može na slici vidjeti,postoji spisak mnogih stilova koji mogu biti primjenjeni na

dijelove Wizard kontrole;tako ova kontrola može biti značajno prilagođena sopstvenim potrebama.

Slika 9:Wizard i WizardStep hijerarhija klasa sa svojstvima

Page 19: Seminarski Rad

Internet programiranje u .NET tehnologiji

19

Wizard kontrola sadrži zaglavlje koje se može prilagoditi da prikazuje informacije koje su specifične za

korak sa kojim se korisnik trenutno bavi. Wizard kontrola takođe sadrži oblast sa spiskom svih koraka

koja se može koristiti da bi ste brzo došli do određenog koraka.Takođe možete da kroz programski kôd

kontrolišete koji korak je prikazan; niste ograničeni na linearno kretanje kroz korake.

Ugrađena navigaciona funkcionalnost određuje koji tasteri su prikazani na osnovu StepType vrijednosti.

BaseWizardStep klasa sadrži StepType svojstvo koje može imati slijedeće vrijednosti:

- WizardStepType.Auto Renderuje tastere za navigaciju na osnovu lokacije postavljene unutar

WizardSteps svojstva.To je podrazumjevana vrijednost.

- WizardStepType.Complete Ovo je zadnji korak.Nema navigacionih tastera.

- WizardStepType.Finish Ovo je posljednji korak u prikupljanju podataka. Finish i Previous

tasteri su prikazani.

- WizardStepType.Start Ovo je prvi korak koji da se pojavljuje i ima samo Next taster.

- WizardStepType.Step Ovo je bilo koji međukorak između Start i Finish koraka. Previous i Next

tasteri su prikazani.

U ovom primjeru,Wizard daje korisnicima mogućnost da izaberu opcije za auto.U stvarnom izboru za auto

mnogo više bi opcija bilo na na raspolaganju.Ovo diktira pojednostavljene opcije za korisnika(i na taj

način opravdava korišćenje Wizard kontrole).

Da bih ste kreirari web formu za ovaj primjer morate dodati Wizard kontrolu na stranicu.Unutar Wizard

kontrole su WizardStep kontrole,po jedan za svaki izbor,i to:exterior, interior, options i summary.Exterior

korak sadrži tri RadioButton kontrole za izbor crvene,plave ili crne spoljašne boje.Izbor unutrašnjosti

sadrži dva RadioButton za izbor kožnih ili tekstilnih sjedišta.Izbor opreme sadrži CheckBox kontrole za

izbor AM/FM radia,grijanje sjedišta,kao i klime. Summary korak sadrži Label kontrolu koja je popunjena

izborima koji su napravljeni u predhodnim koracima.Sva četiri WizardStep ekrana su isječena iz Visual

Studio i stavljeni na sliku 10.

Slika 10:WizardStep kontrole su popunjene sa kontrolama koje će biti prikazane korisniku

Page 20: Seminarski Rad

Internet programiranje u .NET tehnologiji

20

Nakon što su WizardStep kontrole stvorene i svaki korak je popunjen,kôd je napisan u priključenoj

stranici radi popunjavanje kontrole Label u zadnjem koraku.Takođe programski kôd je dodat u obrađivač

događaja Form_Load da se osigura da Wizard se pokrene sa tačno prvim korakom.I na kraju,potreban

kôd je dodat u Wizard1_FinishButtonClick obrađivač događaja za prikazivanje rezultata.Primjer slijedi:

//C# public partial class WizardCSharp : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) {

Wizard1.ActiveStepIndex = 0; } }

protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs

e)

{ Wizard1.Visible = false;

Response.Write("Finished<br />" + Label1.Text);

}

protected void Wizard1_NextButtonClick(object sender, WizardNavigationEventArgs e)

{ if (Wizard1.WizardSteps[e.NextStepIndex].Title == "Summary")

{

Label1.Text = String.Empty; foreach (WizardStep ws in Wizard1.WizardSteps)

{ foreach (Control c in ws.Controls) { if (c is CheckBox) { CheckBox cb = (CheckBox)c; if (cb.Checked)

{

Label1.Text += cb.Text + "<br />";

} }

}

Kada je stranica prikazana, korisnik vidi prvi korak(Exterior).Korisnik može da ide iz koraka u korak,a na

posljednjem koraku će kliknuti Finish.U Summary koraku Label kontrola prikazuje trenutne izbore.Poslije

klika korisnika na Finish,Wizard kontrola će biti sakrivena i sažetak će biti prikazan.

Page 21: Seminarski Rad

Internet programiranje u .NET tehnologiji

21

6. Xml kontrola

Xml kontrola se koristi za prikazivanje sadržaja XML dokumenata.Ova kontrola je korisna ako su vaši

podaci sačuvani u XML formatu i morate da izvršite transformaciju pomoću Extensible Stylesheet

Language(XSL).Podaci se tada mogu izrendovati i prikazati korisniku koristeći Xml kontrolu.Hijerarhija

svojstva i metoda Xml kontrole je prikazana na slici 11.

Slika 11: Xml kontrola(svojstva,metode)

XML dokument koji želite da prikažete se određuje postavljanjem svojstva DocumentSource ili svojstva

DocumentContent. Svojstvo DocumentSource je string koji određuje lokaciju XML dokumenta koji će

onda biti učitan u kontrolu. Svojstvo DocumentContent je string koja sadrži fiksni XML sadržaj.Ako su

svojstva DocumentContent i DocumentSource oba postavljena,onda se koristi ono svojstvo koje je zadnje

postavljeno.

Page 22: Seminarski Rad

Internet programiranje u .NET tehnologiji

22

SvojstvoTransformSource je opcioni string koja sadrži lokaciju transformacionog XSL fajla koji se

primijenjuje na XML dokument.Svojstvo Transform prihvaća Transform objekt koji se može koristiti za

obavljanje transformacije takođe.Ako su oba svojstva postavljena,zadnje postavljeno je važeće.Xml

kontrola dodatno sadrži svojstvo TransformArgumentList koje se koristi da se proslijede argumenti za XSL

transformaciju.

U narednom primjeru,Xml kontrola se koristi za prikazivanje sadržaja XML fajla nakon primjene XSL

transforamcije.XML i XSL fajl su dati ispod:

XML datoteka: ProductList.xml

<?xml version="1.0" encoding="utf-8" ?> <ProductList>

<Product Id="1A59B" Department="Sporting Goods" Name="Baseball" Price="3.00" />

<Product Id="9B25T" Department="Sporting Goods" Name="Tennis Racket" Price="40.00" />

<Product Id="3H13R" Department="Sporting Goods" Name="Golf Clubs" Price="179.00" />

<Product Id="7D67A" Department="Clothing" Name="Shirt" Price="12.00" />

<Product Id="4T21N" Department="Clothing" Name="Jacket" Price="45.00" />

</ProductList>

XSL transformaciona datoteka: ProductList.xsl

<?xml version="1.0" encoding="utf-8" ?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:labs="http://labs.com/mynamespace"> <xsl:template match="/">

<html>

<head> <title>Product List</title>

</head>

<body>

<center> <h1>Product List</h1>

<xsl:call-template name="CreateHeading"/>

</center>

</body> </html>

</xsl:template> <xsl:template name="CreateHeading">

<table border="1" cellpadding="5"> <tr >

<th bgcolor="yellow">

<font size="4" > <b>Id</b>

</font> </th> <th bgcolor="yellow">

Page 23: Seminarski Rad

Internet programiranje u .NET tehnologiji

23

<font size="4" > <b>Department</b> </font>

</th> <th bgcolor="yellow">

<font size="4" >

<b>Name</b>

</font> </th> <th bgcolor="yellow"> <font size="4" >

<b>Price</b>

</font> </th> </tr>

<xsl:call-template name="CreateTable"/>

</table>

</xsl:template> <xsl:template name="CreateTable"> <xsl:for-each select="/ProductList/Product">

<tr>

<td align="center"> <xsl:value-of select="@Id"/>

</td>

<td align="center"> <xsl:value-of select="@Department"/>

</td>

<td> <xsl:value-of select="@Name"/>

</td>

<td align="right"> <xsl:value-of select="format-number(@Price,'$#,##0.00')"/>

</td>

</tr> </xsl:for-each>

</xsl:template> </xsl:stylesheet>

Na stranicu za ovaj primjer Xml kontrola se dodaje.Slijedeći programski kôd je dodat u priključeni fajl da

prikaže XML fajl poslije primjene XSL transformacije:

//C# public partial class XmlControlVb : System.Web.UI.Page

{ protected void Page_Load(object sender, EventArgs e) { Xml1.DocumentSource = "App_Data/ProductList.xml"; Xml1.TransformSource = "App_Data/ProductList.xsl"; }

}

Page 24: Seminarski Rad

Internet programiranje u .NET tehnologiji

24

Kada je stranica prikazana, XML i XSL fajl se učitavaju i rezultat transformacije je prikazan na slici 12.

Slika 12:Rezultat primjene XSL transformacije na XML podatke

Page 25: Seminarski Rad

Internet programiranje u .NET tehnologiji

25

7. Zaključak

Calendar kontrola prikazuje kalendar preko koje korisnici mogu kreirati bilo koji dan u bilo kojoj

godini.Calendar se može konfigurisati da omogući korisnicima da izaberu više datuma,cijelu sedmicu ili

čitav mjesec.Calendar kontrola se zasnima na .NET Framework DateTime,a samim tim podržava čitav niz

datuma koji je dozvoljen po tom objektu.Kalendar kontrola je prilično složena kontrola i ima dosta

programiranja i oblikovanja opcija.

Kontrola FileUpload se koristi da omogući korisniku da izabere i ubaci jedan fajl na server. Kontrola

prikazuje tekst, prozorčić i dugme za pretraživanje. Korisnik može ili ukucati naziv fajla i "putanju" u tekst

prozorčić ili kliknite dugme pretraži i izaberite fajl. Kontrola ubacivanja fajla je izvedena direktno iz klase

WebControl .

Kontrola Panel je izvedena iz WebControl klase.Tako da nasledjuje sva svojstva,metode,i dogadjaje

isto,on nema nikakav metod ili dogadjaj za sebe.

MultiWiev je nova funkcija koja je predstavljena sa visual studio 2005.Glavna prednost MultiWiev kontrole

je da možemo odrediti potrebni prikaz. MultiWiev kontrole pomaže nam da stvorimo različite poglede na

jednoj stranici.

Wizard kontrola eleminiše potrebu da projektuje oblike izvršavanja korak po korak procesa.Ovo

pojednostavlja programerima da dizajnira i pisanje koda.Kontrola obezbjeđuje mehanizam koji

omogućava za lako izgradi željeni wizard kao kolekciju koraka,dodati novi korak ili preurediti korake.

The XML kontrola se koristi za prikazivanje XML dokumenata ili rezultata XSL Transform.Takodje možete

odrediti XSLT document pre nogo što je prikazano na izrazu.

Page 26: Seminarski Rad

Internet programiranje u .NET tehnologiji

26

8. Literatura

[1] http://www.w3schools.com/aspnet/control_xml.asp

[2] http://en.wikipedia.org/wiki/ASP.NET

[3] http://en.wikipedia.org/wiki/.NET_Framework

[4] http://www.w3schools.com/aspnet/control_calendar.asp

[5] http://www.google.com