Avatar billede dingemann Novice
05. marts 2009 - 00:13 Der er 1 løsning

ASP.NET dynamisk genereret objekt

Jeg er løbet ind i et lidt underligt problem der på den ene side virker men med lidt umiddelbart ikke-problematiske modifikationer ikke virker.

For at efterligne gør følgende:

På en tom default.aspx smide følgende i .vb filen

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim peter As New Button()
        peter.CommandName = "tis"
        AddHandler peter.Command, AddressOf peter_click
        Panel2.Controls.Add(peter)
    End Sub

ligeledes oprettes der en sub i samme class:

    Sub peter_click(ByVal s As Object, ByVal e As CommandEventArgs)
        MsgBox("Peter " & e.CommandName)
    End Sub

Kør siden med F5 og ved at trykke på knappen skulle der gerne komme en msgbox frem. Fint!

Ryd al kode og gør følgende:
1) opret en web user control og kald den test.ascx
2) smid en Panel ind på 'test' med navnet Panel1
3) smid følgende i test.ascx.vb-klassen

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim tissemand As New Button()
        tissemand.CommandName = "tralala"
        tissemand.Text = "vi siger tis"
        AddHandler tissemand.Command, AddressOf tissemand_click
        PanelPik.Controls.Add(tissemand)

    End Sub

    Sub tissemand_click(ByVal s As Object, ByVal e As CommandEventArgs)
        MsgBox("Peter " & e.CommandName)

    End Sub

4) hop ind på default.aspx og tilføj en knap og et Panel1. I knappens Click tilføj
        Dim uc As UserControl = CType(Page.LoadControl("usercontrollers/test.ascx"), UserControl)
        Panel1.Controls.Add(uc)

kør siden med F5
Når der trykkes på knappen bliver der indsat en ny knap i Panel1 på default.aspx-siden. Trykker du på denne knap skulle du gerne få msgboxen frem fra test.ascx men det er ikke tilfældet.

Hvis du i punkt 4) istedet (for knappens Click) tilføjer koden til Page_Load og du klikker på knappen 'vi siger tis' så vil du få en msgbox.

Mit spørgsmål er hvorfor er der forskel på at loade fra Page_Load og så fra knappens Click-funktion... jeg vil umiddelbart gerne kunne bruge knappens click-funktion da det vil lette mit arbejde en del i forhold til masterpages osv.
Avatar billede dingemann Novice
12. marts 2009 - 00:00 #1
det lød måske lidt for komplext så nu er spørgsmålet flyttet til http://www.eksperten.dk/spm/867720 med en meget mere brugervenlig version :P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester