Avatar billede orca Nybegynder
14. december 2003 - 20:04 Der er 3 kommentarer og
1 løsning

Dynamisk tilføjelse af webkontroller og events

Hejsa.

Jeg sidder med et problem som jeg ikke lige umiddelbart kan overskue hvordan løses. Men lad mig først lige komme med lidt intro.

Jeg har en side (default.aspx), på denne har jeg to <asp:Panel /> kontroller (Panel1 og Panel2).

Ydermere opretter jeg et objekt af typen "mitObjekt", dette objekt får tildelt nogle properties, hvorefter jeg tilsidst beder objektet om et html output via funktionen "GetHTML()". Dette HTML udskriver jeg så på min side.

HTML'en objektet returnerer, indeholder to knapper. Disse knap tilhører hver en af de Panels der er på siden. Ved et klik på en af knappen, så skal det respektive panel's Visibility property sættes til true, mens den andens skal sættes til False.

Problemet opstår da selve HTML'en der bliver spyttet ud bliver genereret inde i min komponent, jeg kan således ikke bare lave en <asp:Button />.


Jeg har overvejet følgende, men ved ikke om det kan lade sig gøre:

Jeg laver to funktioner i toppen af min side, hhv, Btn1_OnClick og Btn2_OnClick. Disse funktioner skal så kaldes når man trykker på knappen. Problemet er dog at jeg umiddelbart kun kan medsende javascripts, da mit HTML output som sagt kommer som en streng fra min komponent.

Jeg har også overvejet om man inde i komponenten kan lave et par Button objekter, og så bruge Page.Controls.Add(minButton); (Jeg har en reference til selve siden). Men hvordan sørger jeg for at mine knapper de kommer ind i mit HTML output der hvor de skal? Og hvordan sørger jeg for at de får Btnx_OnClick eventhandlerne tilføjet?


Det kan sagtens tænkes at jeg er helt forkert på den, så jeg håber i kan hjælpe mig lidt her :)
Avatar billede billen Nybegynder
14. december 2003 - 21:10 #1
Hvorfor vil du egentlig ikke bare ligge dine knapper på siden med det samme? Jeg forstår ikke helt ud fra det du skriver, hvorfor du vil generere noget HTML ud fra et objekt!
Avatar billede roger Nybegynder
14. december 2003 - 21:58 #2
kan du ikke bare placere 2 Buttons inde i dit panel ?

Jeg tror ikke jeg er helt med på din hensigt med dit objekt der genererer html output.

Hvis du af årsager vi ikke kender til benytter dette eksempel kan du ikke umiddelbart fange events fra de to knapper, da de slet ikke findes i control hierakiet. Dette kan du omgå vha. event relays.

Se evt. http://www.eksperten.dk/spm/400168
Avatar billede orca Nybegynder
14. december 2003 - 23:23 #3
Ok, jeg kan se at jeg var lidt forkert på den, lad mig uddybe mit projekt lidt mere.

Jeg er ved at lave en faneblads kontrol. Indtil videre initialiseres den på følgende måde:

<TabControl:Common runat="server" id="myTabs">
    <Tab runat="server" id="Generel" Visible="true" Text="Generel">
        Generel
    </Tab>
    <Tab runat="server" id="Indstillinger" Visible="false" Text="Indstillinger">
        Indstillinger
    </Tab>
    <Tab runat="server" id="Test" Visible="false" Text="Test">
        Test
    </Tab>
</TabControl:Common>

Jeg lister således en række "Tabs" inde i mit TabControl tag. For hver af disse Tags kalder jeg en funktion ved navn AddTab inde i TabControl klassen.

Disse Tabs gemmer jeg i en ArrayList, hver tab indeholder en reference til selve Tab'en (Som er et Panel), samt teksten som står i attributen "Text".

Håber i er med så langt :)

Nu til den del jeg endnu ikke er med på. Jeg har lige nu en statisk tabel struktur i html, som laver selve fanebladsstrukturen. I toppen af den skal jeg have tilføjet en række knapper (en knap til hvert faneblad). Når man trykker på en af disse knapper så skal den kalde en funktion som sætter alle de andre Panel's Visibility attribute til "false", og det Panel hvis knap man klikkede på, skal have Visibility attributen "true".

Mit problem er således at disse knapper skal være kontroller, for at de kan lave postbacks, så jeg kan skifte imellem de forskellige Panels. Jeg skal vel så på en eller anden måde tilføje disse knapper dynamisk, af typen Button eller HyperLink. Samtidig skal de ved OnClick kalde en funktion med en parameter, som herefter sørger for at sætte det rigtige Panel til at være synligt, og skjuler de andre.

Men hvordan får jeg tilføjet disse kontroller det rigtige sted iblandt al min statiske html? Og hvordan får jeg dem blandet ind i noget html der bliver genereret dynamisk ud fra antallet af tilføjede Panels?

...

Jeg har på fornemmelsen at det ikke blev særligt forståeligt :/. Men jeg håber i kan hjælpe :)
Avatar billede orca Nybegynder
17. januar 2004 - 22:13 #4
Lukker
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