17. november 2007 - 14:09Der 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.
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.
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?
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.
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?
Æ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. :)
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.
Ahh.. :P Nu passerede den pandelappen. Tror det var godt lige at sove på det. :) Du skal have mange tak for din hjælp.
Synes godt om
Ny brugerNybegynder
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.