Avatar billede saudoo Nybegynder
17. november 2007 - 14:09 Der er 12 kommentarer og
1 løsning

Kald mellem User Controls

Hej eksperten,
Dette spørgsmål sidder virkeligt og nager, så håber meget i kan hjælpe mig på vej, endnu engang. :)

Jeg sidder lidt og arbejder med UserControls, for første gang, i Asp.Net (Vb.NET), og er så stødt ind i et problem.

Problemer består i at jeg meget gerne vil have den ene usercontrol til at kunne gøre noget ved den anden user control. Altså hvis jeg f.eks trykker på en knap i den ene, skal knappen i den anden forsvinde.

Det ville jo være så utroligt let, hvis jeg bare kunne sætte nogle egne properties på mine controls, og så køre en refresh ala:

Dum uc1 As mpuc
uc1 = CType(Page.FindControl("MyControl"), mpuc)
uc1.Refresh()

Men det er så langt jeg er kommet, og det er kun i tankerne.

Håber i kan hjælpe mig. Tak :)
Avatar billede neoman Novice
17. november 2007 - 14:17 #1
Det kan du :
du kan "snakke" med en uc ved at give den Publi properties, som så kan settes/gettes i din kode. Din uc2 som skulle gøre noget ved uc1 kan også have en public property. I page koden kan den ene så sættes lig den anden.

Det med "refresh" - hver knap man trykker på bevirker jo postback, og så vil det hele blive redisplayet med de værdier der nu blev sat for de de public properties for uc'erne.
Avatar billede saudoo Nybegynder
17. november 2007 - 14:24 #2
Oh.. Ja.. Men så skal det bare siges at jeg også bruger Ajax.Net. Hvis jeg så ikke stod i den situation, hvordan ville du så tænke at jeg skulle håndtere det?
Avatar billede neoman Novice
17. november 2007 - 14:28 #3
Du kan refreshe UpdatePanel1 ved at i koden kalde UpdatePanel1.Update
Avatar billede neoman Novice
17. november 2007 - 14:32 #4
Og der er i princippet ingen forskel mellem alm postback og "partiel" postback - hele din kode blive gennemløbet under alle omstændigheder - med ajax er der så kun de udvalgte dele af skærmen som bliver opdateret.
Avatar billede neoman Novice
17. november 2007 - 14:37 #5
øh "update" vs. "partial update" skulle der ha' stået:)
Avatar billede saudoo Nybegynder
17. november 2007 - 14:42 #6
AH okay.. tak for din hjælp. :)

Jeg har lige et sidste spørsgmål. Håber du kan svare mig på det..
Jeg har i min kode for "knap1.ascx" lavet sådan en lille hurtig en:
    Public Property Vis as Boolean
        Get
            return _vis
        End get
        Set
            litTekst.Visible = Vis
        End set
    End Property

Hvis jeg så går ind og sætter egenskaben vis på en knap til "true", så skjuler den indholdet, ligegyldigt om Vis er sat til true eller false.
Hvorfor sker det?
Avatar billede neoman Novice
17. november 2007 - 14:44 #7
skal det ikke hedde:
    Public Property Vis as Boolean
        Get
            return litTekst.Visible
        End get
        Set
            litTekst.Visible = value
        End set
    End Property
Avatar billede neoman Novice
17. november 2007 - 14:48 #8
eller
    Public Property Vis as Boolean
        Get
            return litTekst.Visible
        End get
        Set (ByVal value As Boolean)
            litTekst.Visible = value
        End set
    End Property
Avatar billede saudoo Nybegynder
17. november 2007 - 15:07 #9
Jeg er også rigtig god til at huske hvordan tingene skal gøres, og til at overveje hvad jeg gør. :P

Du skal have mange tak for din hjælp. Lige endeligt et svar. :)
Avatar billede neoman Novice
17. november 2007 - 15:16 #10
:P
Avatar billede saudoo Nybegynder
17. november 2007 - 23:09 #11
Æhm.. Jeg troede godt nok jeg havde udtænkt noget snedigt... Men jeg kan ikke tænke mig til hvordan jeg skal få en knap i een control, til at aktivere noget der skal ske i en anden control...

Tror vist det pt. går ud over min forstand. Men på den anden side så havde jeg det også sådan med "position: relative;" engang... :P Hvis du stadig er her, må du meget gerne hjælpe mig, og om nødvendigt vil jeg meget gerne oprette endnu et spørsgmål. :)
Avatar billede neoman Novice
18. november 2007 - 12:31 #12
Jeg tror det ville være smartest med et nyt spørgsmål - så kan andre også bidrage og evt få points (jeg har ikke monopol på det jo:) Et hint: I Page Life Cycle, groft sagt, kører Page_Load, derpå alle de handlers trigget af klik på skærmen, og inden det hele sendes til klienten kører der et pageevent som hedder PreRender. I handleren for denne kan man altid lave lidt opsamling på hvad der er blevet ændret (eller ej) af diverse event handlers undervejs.
Avatar billede saudoo Nybegynder
18. november 2007 - 13:08 #13
Ahh.. :P Nu passerede den pandelappen. Tror det var godt lige at sove på det. :) Du skal  have mange tak for din hjælp.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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