Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Client-side code za serversku asp.net kontrolu

[es] :: .NET :: ASP.NET :: Client-side code za serversku asp.net kontrolu

[ Pregleda: 2814 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Client-side code za serversku asp.net kontrolu23.02.2007. u 11:11 - pre 208 meseci
asp.net 2 je u pitanju mada je verovatno nebitno.
Imam jedan button za koji imam server-side kod za click dogadjaj. Ono sto bih hteo da uradim je da dodam i obradu dogadjaja na strani klijenta. Konkretno, hocu da disable-ujem button nakon klika da neko ne bi kliknuo vise puta. Problem je sto ne mogu da dodam OnClick atribut jer nije u pitanju html a ne znam da li ce se neka funkcija u JavaScript-u automatski smatrati (na osnovu imena) event handler-om tog dogadjaja (nisam bas preterano iskusan sa JS).
 
Odgovor na temu

Vranac
Vranac Srdjan
Software developer
Novi Sad, Vojvodina

Član broj: 3493
Poruke: 353
*.ptt.yu.

Jabber: vranac@elitesecurity.org
ICQ: 64150005
Sajt: www.linkedin.com/in/vrana..


+1 Profil

icon Re: Client-side code za serversku asp.net kontrolu23.02.2007. u 12:06 - pre 208 meseci
Ukoliko sam dobro razumeo,
u property-ima buttona imas onClientClick, koji treba da poziva JS funkciju kad klijent klikne dugme...
Pretpostavicu da je dugme na samom formu (nije u okviru DG-a, Repeatera ili neke druge kontrole)
JS funkcija ide recimo ovako:
Code:

<script type="text/JavaScript">
<!--
    function ButtonDisabledState(id, checkState)
    {
        var btn = document.getElementById(id);
        if (btn != null)
           btn.disabled = checkState;
    }
//-->
</script>


Recimo da se dugme zove btnSubmit, na njegov onClientClick dodas ButtonDisabledState('btnSubmit', true);

tako da izgleda ovako:
Code:

<asp:Button ID="btnSubmit" runat="server" Text="Button" OnClientClick="ButtonDisabledState('btnSubmit',true);" />


I to ce disableovati dugme kada kliknes na njega, i onda uraditi redovan postback
Idle mind is the devils playground, in my case it turned out to be an amusement park.

Sustina problema ove zemlje:
Legeonar_: Sto pre treba da shvatite da je EU propast i da se tamo mora raditi,a ne samo biti zaposlen.
http://www.elitemadzone.org/p1864861

Nobody Remains Virgin, Life Fucks Everyone
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: Client-side code za serversku asp.net kontrolu23.02.2007. u 12:28 - pre 208 meseci
Odlicno, to je to. Nisam probao jos, ali jeste to :)
Zahvaljujem.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Client-side code za serversku asp.net kontrolu23.02.2007. u 15:10 - pre 208 meseci
Nazalost, to nije to, iz dva razloga:

1. Vazniji, kad se button.disabled postavi na true, zaustavlja se proces submitovanja. Cak iako ubacis btn.form.submit() nece odraditi kako treba posto ce post back "zaboraviti" koje dugme je pritisnuto i nece biti pozvan server side handler
2. Cak i da kod radi, radice samo za root-kontrole. Ako na formu stavis grid pa u njega button, njegov id vise nece biti Button1, nego neka kobasica tipa GridView1$ctl02$Button1, sto ne mozes znati unapred pre renderovanja grida.

asp.net1.1 je imao neke manuelne korake da se ovo sve resi, u asp.net 2.0 resava se jos elegantnije preko ClientScriptManager-a. Za ovaj primer napravi se sledeca dinamicka kontrola i onda se ona koristi umesto fabricke button kontrole gde god je potreban auto-disable:

Code:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MyCustomControls
{
    [ToolboxData("<{0}:MyVanishingButton runat=server></{0}:MyVanishingButton>")]
    public class MyVanishingButton : Button
    {
        public MyVanishingButton()
        { }

        protected override void OnPreRender(EventArgs e)
        {
            string postback = Page.ClientScript.GetPostBackEventReference(this, "");
            OnClientClick = "this.disabled = true; " + postback;
        }
    }
}



Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: Client-side code za serversku asp.net kontrolu23.02.2007. u 15:31 - pre 208 meseci
Da, upravo sam otkrio da nece uraditi submit. Pokusacu da konvertujem ovo u VB i ubacim u sam .aspx fajl jer ne mogu da koristim code behind.
 
Odgovor na temu

Vranac
Vranac Srdjan
Software developer
Novi Sad, Vojvodina

Član broj: 3493
Poruke: 353
*.ptt.yu.

Jabber: vranac@elitesecurity.org
ICQ: 64150005
Sajt: www.linkedin.com/in/vrana..


+1 Profil

icon Re: Client-side code za serversku asp.net kontrolu23.02.2007. u 15:50 - pre 208 meseci
@mmix:
U pravu si.

Dobro dosao nazad.


Idle mind is the devils playground, in my case it turned out to be an amusement park.

Sustina problema ove zemlje:
Legeonar_: Sto pre treba da shvatite da je EU propast i da se tamo mora raditi,a ne samo biti zaposlen.
http://www.elitemadzone.org/p1864861

Nobody Remains Virgin, Life Fucks Everyone
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Client-side code za serversku asp.net kontrolu23.02.2007. u 15:51 - pre 208 meseci
Citat:
Shadowed: Da, upravo sam otkrio da nece uraditi submit. Pokusacu da konvertujem ovo u VB i ubacim u sam .aspx fajl jer ne mogu da koristim code behind.


Sto ne?
Stavise, ako ne koristis codebehind, cemu asp.net

Mislim da neces moci da ovo konvertujes tako jednostavno posto poziv GetPostBackEventReference() metoda ne daje samo poziv callback metoda vec i osigurava da neophodne javascript komponente budu renderovane kao podrska callback-u.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: Client-side code za serversku asp.net kontrolu23.02.2007. u 16:49 - pre 208 meseci
Zato sto sajt hostujem na svom kompu a backup mi je free hosting koji ne podrzava codebehind. Sajt je mali (dva .aspx fajla) tako da cu kada uskoro kupim hosting lako prebaciti u codebehind.

Citat:
Stavise, ako ne koristis codebehind, cemu asp.net

Lakse mi je sa Framework-om nego sa objektima u asp3 :)
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Client-side code za serversku asp.net kontrolu23.02.2007. u 16:52 - pre 208 meseci
Citat:
Shadowed: Zato sto sajt hostujem na svom kompu a backup mi je free hosting koji ne podrzava codebehind. Sajt je mali (dva .aspx fajla) tako da cu kada uskoro kupim hosting lako prebaciti u codebehind.



Ok, do tad mala preporuka, asp.net2 podrzava on-the-fly kompajliranje. Sve .cs (.vb) source fajlove koje stavis u App_Code folder u rootu aplikacije ce biti kompajlirani dinamicki od strane asp.net-a kad se aplikacija podize. Tu npr mozes da stavis klasu sa kontrolom.

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: Client-side code za serversku asp.net kontrolu

[ Pregleda: 2814 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.