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

ASP.NET Runtime event handler

[es] :: .NET :: ASP.NET :: ASP.NET Runtime event handler

[ Pregleda: 3575 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ads

Član broj: 127796
Poruke: 13
*.dynamic.sbb.co.yu.



Profil

icon ASP.NET Runtime event handler02.01.2007. u 10:03 - pre 209 meseci
Srećna Nova godina svima.

Imam jedan veeeliki problem i prosto ne verujem da do sada nisam naišao na njega. Kada dodam kontrolu i event handler za nju u Page Load-u sve je ok, međutim kada mi je potrebno da se kontrole prave po izboru korisnika handler jednostavno ne radi. Na par foruma sam pročitao da je se događaji ne mogu registrovati nakon Page Load-a. Da li je tu kraj price? :)
Evo mali kod ko hoce da proba.

Code:

<%@ Page Language="C#" %>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        LinkButton runtimeLK = new LinkButton();
        runtimeLK.Text = "Load";
        runtimeLK.Click += new EventHandler(runtimeLK_Click);
        this.runtime.Controls.Add(runtimeLK);
    }
    protected void LK_Click(object sender, EventArgs e)
    {
        LinkButton runtimeLK = new LinkButton();
        runtimeLK.Text = "Click";
        runtimeLK.Click += new EventHandler(runtimeLK_Click);
        this.runtime.Controls.Add(runtimeLK);
    }
    void runtimeLK_Click(object sender, EventArgs e)
    {
        this.txtMsg.Text = ((LinkButton)sender).Text;
    }
</script>

<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <form id="Test" runat="server">
            <div>
                <asp:LinkButton ID="LK" runat="server" OnClick="LK_Click" Text="Add" />
                <div ID="runtime" runat="server" />
                <asp:TextBox ID="txtMsg" runat="server" />
            </div>
        </form>
    </body>
</html>
 
Odgovor na temu

Dejan Vesic
Dejan Vesic
CEO
IGT Ogranak Beograd
Beograd

Član broj: 84929
Poruke: 217
*.adsl-1.sezampro.yu.

Sajt: www.vesic.org


+1 Profil

icon Re: ASP.NET Runtime event handler03.01.2007. u 07:37 - pre 209 meseci
Sve te akcije odradi u Page_Init event handleru.
 
Odgovor na temu

ads

Član broj: 127796
Poruke: 13
*.dynamic.sbb.co.yu.



Profil

icon Re: ASP.NET Runtime event handler03.01.2007. u 16:28 - pre 209 meseci
Izvini možda se nisam dobro izrazio. Ja sam u ovom kodu napravio linkbutton na čiji klik treba dodati kotrolu i handler. Dakle baš mi je tako nešto potrebno: kada korisnik klikne na link, dodaj različite kotrole i hvataj njihove događaje.
 
Odgovor na temu

Dejan Vesic
Dejan Vesic
CEO
IGT Ogranak Beograd
Beograd

Član broj: 84929
Poruke: 217
*.finsoft.co.yu.

Sajt: www.vesic.org


+1 Profil

icon Re: ASP.NET Runtime event handler03.01.2007. u 16:50 - pre 209 meseci
Kako verovatno na jedan klik dodaješ uvek iste kontrole, zašto ne uradiš sledeće:

- staviš SVE kontrole i sve hendlere na stranu
- grupišeš one koje se "pojave" u okviru panela
- u startu sakriješ taj panel ( .Visible = false)
- na klik ga otkriješ

?

Time ćeš izbeći sve probleme sa dinamičkim dodavanjem kontrola i hendlera.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: ASP.NET Runtime event handler03.01.2007. u 23:08 - pre 209 meseci
Citat:
ads: Dakle baš mi je tako nešto potrebno: kada korisnik klikne na link, dodaj različite kotrole i hvataj njihove događaje.

Dejan ti je lepo odgovorio da se to što hoćeš (mada nisi tačno rekao šta ustvari hoćeš da postigneš, tj. koju funkcionalnost hoćeš da omogućiš korisniku) radi drugačije.

Ja da probam da objasnim zašto ne radi onako kako si zamislio.

Nije problem da napraviš kontrolu u event handleru, ni da joj postaviš event handler. Problem je što taj event handler treba da bude postavljen i u postbacku, tj. kad korisnik klikne na tu dinamički kreiranu kontrolu. Da bi on bio postavljen, tu kontrolu treba da kreiraš i u postbacku: kad u ASP.NETu kreiraš kontrolu dinamički, ona postoji samo u tom ciklusu, da bi postojala i u sledećem postbacku moraš opet da je kreiraš. Mislim da možeš i u page.onload eventu ali treba probati.

Svakako ti je mnogo lakše da radiš kao što je Dejan rekao. Treba napomenuti da se, kada se postavi Visible property kontrole na false, ta kontrola uopšte i ne renderuje, tj. situacija nikako nije ekvivalenta onoj kad u HTML-u postavite display:none.
 
Odgovor na temu

Shevchenko
Nikola Vasiljevski

Član broj: 37756
Poruke: 218
*.dialup.neobee.net.

Sajt: www.vasiljevski.com


+2 Profil

icon Re: ASP.NET Runtime event handler04.01.2007. u 02:08 - pre 209 meseci
Citat:
Dejan Vesic: Kako verovatno na jedan klik dodaješ uvek iste kontrole, zašto ne uradiš sledeće:

- staviš SVE kontrole i sve hendlere na stranu
- grupišeš one koje se "pojave" u okviru panela
- u startu sakriješ taj panel ( .Visible = false)
- na klik ga otkriješ

?

Time ćeš izbeći sve probleme sa dinamičkim dodavanjem kontrola i hendlera.

Definitivno najjednostavniji i najbolji nacin! :)

[Ovu poruku je menjao Shevchenko dana 04.01.2007. u 03:27 GMT+1]
Shoot for the moon. Even if you miss, you'll land among the stars.
Les Brown
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: ASP.NET Runtime event handler

[ Pregleda: 3575 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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