Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 4.014 pregleda

Najnovija ↓

Client-side code za serversku asp.net kontrolu 23.02.2007. u 12:11 · pre 239 meseci #1
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).
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Client-side code za serversku asp.net kontrolu 23.02.2007. u 13:06 · pre 239 meseci #2
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
Potpis
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
Re: Client-side code za serversku asp.net kontrolu 23.02.2007. u 13:28 · pre 239 meseci #3
Odlicno, to je to. Nisam probao jos, ali jeste to :)
Zahvaljujem.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Client-side code za serversku asp.net kontrolu 23.02.2007. u 16:10 · pre 239 meseci #4
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;
        }
    }
}


Potpis
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ć
Re: Client-side code za serversku asp.net kontrolu 23.02.2007. u 16:31 · pre 239 meseci #5
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.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Client-side code za serversku asp.net kontrolu 23.02.2007. u 16:50 · pre 239 meseci #6
@mmix:
U pravu si.

Dobro dosao nazad.

Potpis
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
Re: Client-side code za serversku asp.net kontrolu 23.02.2007. u 16:51 · pre 239 meseci #7
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.
Potpis
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ć
Re: Client-side code za serversku asp.net kontrolu 23.02.2007. u 17:49 · pre 239 meseci #8
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 :)
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Client-side code za serversku asp.net kontrolu 23.02.2007. u 17:52 · pre 239 meseci #9
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.
Potpis
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ć
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme