Utisci korisnika

Hvala Vam na podršci i moram Vam priznati da ste jako ljubazni. Milan Đelić, Valjevo

Pre nepunih mesec dana kupila sam paket kurseva: PRIPREME ZA POLAGANJE CAMBRIDGE INTERNATIONAL DIPLOMA IN BUSINESS. Obično neki opšti utisak formiramo na kraju, ali ja u ovom trenutku želim sa…


Kompletna lista utisaka

Testiranje online

Arhitektura računara

Za one koji žele da znaju više.

Windows OS

Ovo bi svakako trebalo da probate.

Odnosi s javnošću

Koliko znate PR?

Pogledajte još neke od testova

Newsletter

Ukoliko želite da Vas redovno obaveštavamo o novostima sa Link eLearning sajta prijavite se na našu newsletter listu.

Ime:

Prezime:

Email:


Anketa

Arhiva anketa

BAZA ZNANJA


Kurs: Advanced Web Application Technologies

Modul: Kreiranje korisničkih kontrola

Autor: Goran Aritonović

Naziv jedinice: Korisničke kontrole


Materijali vezani uz ovu lekciju:

- Test korisničke kontrole
- Korisničke kontrole (PDF dokument)



Pojam korisničke kontrole

Svaka web strana se može modifikovati tako da se ponovo može upotrebiti na drugoj web strani. Korisničke kontrole omogućavaju da se isti ulazno/izlazni sadržaj koristi na više web strana. Imaju ekstenziju .ascx. Da bi se koristila mora da se iskopira u virtuelni root svake web aplikacije. Za razliku od aspx web strane koja ima @Page direktivu korisnička kontrola ima @Control direktivu. Korisnička kontrola ne može se izvršavati kao nezavisna web strana. Uključuje se u web stranu korišćenjem Register direktive. Sadrže HTML i kod ali ne sadrže tagove <HEAD>, <BODY> i <FORM>.

  

Prednosti korišćenja korisničkih(user) kontrola

Korisničke kontrole su nezavisne celine. Promenljive unutar korisničkih kontrola imaju svoj prostor imena i ne mogu doći u konflikt sa promenljivama sa strane. Moguće je neku korisničku kontrolu koristiti više puta na jednoj istoj web strani. Mogu biti pisane na različitom programskom jeziku u odnosu na stranu koja ih sadrži. Kada se registruje korisnička kontrole se može “prevlačiti” na stranu kao bilo koja web serverska kontrola. Može se deliti između strana web aplikacije.

  

Registracija korisničke kontrole

Da bi se koristila na web strani korisnička kontrola se mora registrivati. To se vrši posredstvom Register direktiv. Atributi ove direktive su Src, TagName i TagPrefix.

<%@ Register src="ProstaPoruka.ascx" mce_src="ProstaPoruka.ascx" TagName="ProstaPoruka" TagPrefix="uc1" %>


Src – je virtuelna putanja do korisničke kontrole.
TagName -  jedinstveno ime za korisničku kontrolu odnosno ime HTML taga koji će biti kreiran dodavanjem kontrole na web formu.
TagPrefiks - određuje jedinstveni prostor imena za kontrolu i kao što samo ime kaže predstavlja prefiks taga kao što asp.nez web serverske kontrole imaju tag prefiks asp.

Sledi prikaz jedne instance korisničke kontrole. Treba napomenuti da se „prevlačenjem“ ascx fajla na formu automatski vrši registracija korisničke kontrole.

<uc1:ProstaPoruka ID="ProstaPoruka1" runat="server" />
        <br />
        <br />
<uc1:ProstaPoruka ID="ProstaPoruka2“runat="server" />

 

Primer korisničke kontrole

Sledi primer realizacije jedne korisničke kontrole. Kao što je rečeno korisnička kontrola pored HTML-a može da sadrži i kod. Korisnička kotrola sdrži atribut Naslov i property Adresa. Posredstvom propertija Adresa čita se i setuje tekst polje TxtAdresa koje je definisano na ascx kontroli.

<%@ Control Language="C#" ClassName="Kontrola2" %>
<script runat="server">
    public string Naslov = "Adresa";
    public string Adresa
    {
        get
        {
            return TxtAdresa.Value;
        }
        set
        {
            TxtAdresa.Value = value;
        }
    }
</script>
<b><%=Naslov%></b>
<br />
<input id="TxtAdresa" type="text" runat="server"/>

 

Primer strane koja hostuje kontrolu

Na web stranu dodata je korisnička kontrola čiji atribut  TagName ima vrednost "Kontrola2" a TagPrefix ima vrednsot "uc1" . Korisničkoj kontroli je dodeljen ID Kontrola2_1. Sada se na vrlo jednostavan način korišćenjem definisanog atributa  Naslov i definisanog propertija Adresa može pristupiti kontrolama koje ulaze u sastav korisničke kontrole. Npr izraz Label1.Text = Kontrola2_1.Adresa  iščitava tekst polje koje ulazi u sastav korisničke kontrole i prikazuje kao tekst labele.

<%@ Page Language="C#" %>
<%@ Register src="Kontrola2.ascx" mce_src="Kontrola2.ascx" TagName="Kontrola2" TagPrefix="uc1" %>
<script runat="server">
    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = Kontrola2_1.Adresa ;
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <uc1:Kontrola2 id="Kontrola2_1" runat="server">
        </uc1:Kontrola2><br />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /><br />
        <br />
        <asp:Label ID="Label1" runat="server"></asp:Label> </div>
    </form>
</body>
</html>

 

Definisanje događaja unutar korisničkih kontrola

Unutar korisničkih kontrola mogu se definisati i događaji. U našem primeru korisnička kontrola sadrži dugme čiji je ID Button1. Unutra ascx fajla definisan je event handler za klik događaj ovog dugmeta.

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Setuj" />


<script>
protected void Button1_Click(object sender, EventArgs e)
    {
        TxtAdresa.Value = "Beograd";
    }
</script>

 

Upotreba kontrola za validaciju

Veoma često su kontrole za validaciju sastavni deo korisničkih kontrola. Ovo toga što se kontrole za validaciju definišu samo na korisničkoj kontroli a zatim se ona dodaje na web stranu. Time se značajno smanjuje posao oko validacije u slučaju da na više web strana treba dodati  iste web kontrole sa pripadajućim kontrolama za validaciju. Korisnička kontrola sadrži tekst polja za unos imena I datuma rođenja. Definisane su odgovarajuće validacione kontrole kao i svojstva kojim se čita odnosno postavlja vrednost tekst polja. Ovako kreirana korisnička kontrola se može hostovati na više strane web aplikacije.

<script>
protected void Button1_Click(object sender, EventArgs e)
    {
        TxtAdresa.Value = "Beograd";
    }
</script>

<br />
Ime:               
<asp:TextBox ID="TxtIme" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1"
runat="server" ErrorMessage="*" ControlToValidate="TxtIme">
</asp:RequiredFieldValidator><br />
<br />
Datum rođenja:
<asp:TextBox ID="TxtRodjenje" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server“
 ErrorMessage="*" ControlToValidate="TxtRodjenje">
</asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server"
ErrorMessage="format dd/mm/yyyy" Type="Date"
ControlToValidate="TxtRodjenje"
Operator="DataTypeCheck">
</asp:CompareValidator>


 


Smatrate da je ova lekcija korisna?  Preporučite je. Broj preporuka:0


Molimo Vas unesite svoje podatke i dobićete pristup besplatnim lekcijama.

Ime: 
Prezime: 
Email: